Homematic Webcontrol

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

ColdFireIce
Beiträge: 407
Registriert: 06.03.2009, 15:38
Wohnort: Karlsruhe
Danksagung erhalten: 1 Mal

Re: Homematic Webcontrol

Beitrag von ColdFireIce » 12.08.2010, 23:55

Hallo Erik,

Ja das ? ist der Standard Zustand. Ich schätze dass die Kommunikation zwischen CCU und dem Server noch nicht richtig funktioniert.
du kannst mal die Datei:

Code: Alles auswählen

<dein server>/includes/php/phpSession_displayArray.php?array=homematic
in einem Browser öffnen. Hier siehst du das PHP-Session-Array welches die Zustände cachet. Wenn hier der Wert "LastGlobalUpdate" auftaucht, dann kannst du sicher sein dass die CCU etwas an den Server geschickt hat. dieser Wert wird nur vom "xmlrpc_server.php" geschrieben.
Als vergleich kannst du dir diese Seite mal beim Simulator anschauen:
http://root.xenorate.com/homematic/incl ... =homematic
Da ich mich leider noch nie mit SSL beschäftigt habe kann ich dir dazu leider kaum etwas sagen. Tut mir wirklich leid.

Viele Grüße
Daniel

PS. Vergiss nicht den Schalter auch mal zu benutzen, bzw zu drücken falls es das aller erste Mal ist. da steht ja auch noch kein Status im PHP-Session Array.

ColdFireIce
Beiträge: 407
Registriert: 06.03.2009, 15:38
Wohnort: Karlsruhe
Danksagung erhalten: 1 Mal

Re: Homematic Webcontrol

Beitrag von ColdFireIce » 13.08.2010, 02:32

Hallo

So nun ist auch das Tutorial da: http://homematic-forum.de/forum/viewtop ... 144#p30144
Ich empfehle damit anzufangen und nicht eine der schon vorhanden Seite zu ändern, bis man weiß was man eigentlich tut ;)

Viele Grüße
Daniel

teddy278

Re: Homematic Webcontrol

Beitrag von teddy278 » 13.08.2010, 05:42

Dieser Beitrag wurde durch den Autor entfernt.
Zuletzt geändert von teddy278 am 12.06.2011, 02:07, insgesamt 1-mal geändert.

ColdFireIce
Beiträge: 407
Registriert: 06.03.2009, 15:38
Wohnort: Karlsruhe
Danksagung erhalten: 1 Mal

Re: Homematic Webcontrol

Beitrag von ColdFireIce » 13.08.2010, 15:01

teddy278 hat geschrieben:Hallo,

klingt so, als wäre das genau das, was ich suche. :) Ich setze es mal auf meine Liste für die langen Winterabende.


Grüße!
teddy
Na dann hoffen wir mal dass es bald schneit. Bei dem aktuellen Wetter kann es ja nicht mehr lange dauern ;)

Viele Grüße
Daniel

ColdFireIce
Beiträge: 407
Registriert: 06.03.2009, 15:38
Wohnort: Karlsruhe
Danksagung erhalten: 1 Mal

Re: Homematic Webcontrol

Beitrag von ColdFireIce » 13.08.2010, 16:16

Hallo zusammen,

Tutorial Lektion 9 in Post 2 hinzugefügt:
http://homematic-forum.de/forum/viewtop ... 901#p30144

Viele Grüße
Daniel

erik
Beiträge: 776
Registriert: 31.10.2007, 13:32
Hat sich bedankt: 6 Mal
Danksagung erhalten: 6 Mal

Re: Homematic Webcontrol

Beitrag von erik » 13.08.2010, 19:24

Hi Daniel,

vielen Dank für die ganzen Infos und auch für das Tutorial.
Einfach klassen. Werde ich mir am Wochenende mal in ruhe reinziehen.
Weiß nun, warum ich gestern so Probleme hatte und ich keien Events angezeigt bekommen habe.

Der RPC Server, der von der CCU angesteuert wird, darf kein SSL oder Passwortschutz haben.
Werde daher einen Apache Webserver konfigurieren, der einerseits intern auf einem Port ohne SSL und PW hört. das gleiche Document Root Verzeichnis auf einem anderen Port mittels SSL und PW Schutz für PDA aus dem Internet.

Was mich an der ganzen Geschichte noch stört, das die CCU nach Initialisierung der RPC Schnittstelle immer weiter die Events meldet, auch wenn überhaupt keine Anwendung hinter dem RPC Server liegt und diese abfragt. Wenn ich 1-2 mal kurz am Tag die WebControl Seite aufrufe, ist es viel. Warum soll die CCU andauernd 24/7 die Events senden?

Könnte man hier nicht einen TimeOut definieren, der den RPC Server auf der CCU wieder abmeldet.

Habe dazu in der XML-Doku von EQ§ was gefunden, das nach "Dekativiewrung" aussieht:

4.2.1 init (Seite 11)

Code: Alles auswählen

void init(String url, String interface_id)
Mit dieser Methode teilt die Logikschicht dem Schnittstellenprozess mit, dass sie
gerade gestartet wurde. Der Schnittstellenprozess wird sich daraufhin selbst
initialisieren und z.B. mit listDevices() die der Logikschicht bekannten Geräte abfragen.
Der Parameter url gibt die Adresse des XmlRpc-Servers an, unter der die Logikschicht
zu erreichen ist.
Der Parameter interface_id teilt dem Schnittstellenprozess die Id, mit unter der er
sich gegenüber der Logikschicht identifiziert.
Zum Abmelden von der Ereignisbehandlung wird interface_id leer gelassen.

Könnte man damit nicht das ganze wieder deaktivieren?

Grüße

Erik

ColdFireIce
Beiträge: 407
Registriert: 06.03.2009, 15:38
Wohnort: Karlsruhe
Danksagung erhalten: 1 Mal

Re: Homematic Webcontrol

Beitrag von ColdFireIce » 13.08.2010, 21:37

erik hat geschrieben:Zum Abmelden von der Ereignisbehandlung wird interface_id leer gelassen.
Hallo Erik,

theoretisch Ja, allerdings ist dass bei einer Homepage leider nun mal so eine sache. Man kann sich zwar jedesmal abmelden wenn man die Seite verlässt, allerdings ist das natürlich auch eine zusätzliche Last. Dazu kommt aber noch, dass es einfach nicht geht ;) ich habe es mal implementiert.

in die Seite selbst einfach in das Script unter Event.observe(window, "load", init); einfügen:

Code: Alles auswählen

Event.observe(window, "beforeunload", leave);
// is called when the page is left
// wird aufgerufen, wenn die Seite verlassen wird
function leave(){
	xmlRpc_deinit();
}
ebenso haben sich die Dateien "includes/php/xmlrpc_init.php" und "includes/js/xmlrpc_functions.js" geändert. ich hab die downloads aktualisiert.

2 Sachen wollte ich dazu aber noch anmerken.
1. Wenn du dich immer wieder abmeldest bekommst du natürlich wenn du die Seite aufrufst auch nicht den aktuellen Status angezeigt, bzw. musst ihn immer manuell abfragen.
2. Musst du dich nicht anmelden. wenn du das Framework nur zum steuern benutzen willst kannst du bis auf:

Code: Alles auswählen

site_initOnclickEvent(SITE_devicesArray);
alles was in der init() Funktion aufgerufen wird weg lassen. natürlich representieren die Buttons dann nicht mehr den aktuellen Status und es wäre vielleicht sinnvoller sich eigene Buttons zu bauen und sie mit Funktionen zu belegen wie zB:

Code: Alles auswählen

xmlRpc_setValue("RF", "EEQ0123456:1", "STATE", "false");
um einen Schalter aus zu schalten.

Ich darf wie gesagt noch mal darauf hinweißen dass das Abmelden antscheinend nicht funktioniert. Das haben schon andere die sich mit XML-RPC init beschäftigt haben herrausgefunden. Ich habe dazu sogar schon mal einen Post geschrieben, der allerdings nicht viel zu Tage gefördert hat:
http://homematic-forum.de/forum/viewtop ... nit#p28202
vielleicht sollte man das wirklich mal testen und eQ-3 darauf hinweisen dass ihre Beschreibung der deinitialiserung nicht funktioniert. Der einzige Weg den ich gefunden habe sich von der CCU abzumelden ist sie neuzustarten.
Eingebaut ist es trotzdem mal ;)

Viele Grüße
Daniel
Zuletzt geändert von ColdFireIce am 17.08.2010, 16:50, insgesamt 1-mal geändert.

chii
Beiträge: 80
Registriert: 26.06.2009, 23:34

Re: Homematic Webcontrol

Beitrag von chii » 14.08.2010, 11:34

Hallo,
ColdFireIce hat geschrieben:Ich darf wie gesagt noch mal darauf hinweißen dass das Abmelden antscheinend nicht funktioniert. Das haben schon andere die sich mit XML-RPC init beschäftigt haben herrausgefunden. Ich habe dazu sogar schon mal einen Post geschrieben, der allerdings nicht viel zu Tage gefördert hat:
viewtopic.php?f=26&t=4458&p=28202&hilit=deinit#p28202
Ich habe das gerade mal mit dem BidCoS-Service ausprobiert (also ohne HomeMatic Zentrale). Da scheint de-init zu funktionieren. Im Anhang ist das Programm (mitsamt Quelltext), mit dem ich getestet hatte. Vielleicht kann das ja jemand mit Zentrale testen.

Gruß
chii
Dateianhänge
HomeMaticInitDemo.zip.txt
(475.22 KiB) 378-mal heruntergeladen

ColdFireIce
Beiträge: 407
Registriert: 06.03.2009, 15:38
Wohnort: Karlsruhe
Danksagung erhalten: 1 Mal

Re: Homematic Webcontrol

Beitrag von ColdFireIce » 15.08.2010, 01:57

Hi.

wäre super wenn das mal jemand testen könnte, und seine Erfahrungen teilen könnte. ich habe diesen bidcos service nicht installiert. Würde mich schon interessieren ob es nun an der CCU oder meinem Script liegt dass ich mich nicht abmelden kann.

Viele Grüße
Daniel

bumaas
Beiträge: 128
Registriert: 29.03.2010, 16:40
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: Homematic Webcontrol

Beitrag von bumaas » 15.08.2010, 18:24

Hallo Daniel,

das sieht ja noch tollen Möglichkeiten aus, die sich mit deinem Framework ergeben. Auch die Erweiterungen für SONOS machen mich sehr neugierig :D

Leider bin ich mit dem Tutorial - trotz deiner tollen Beschreibung - noch nicht sehr weit gekommen.

Ich scheitere meiner Meinung nach am Zugriff auf die Homematic.

Aber der Reihe nach, was habe ich bereits geschafft:
  • WebServer ("server") ist auf einem Synology NAS eingerichtet, inclusive PHP. Er befindet sich im gleichen Netzwerk wie die Homematic.
    --> WebSeiten können angezeigt werden (http://server/homematic/sites/webcontrol/index.html funktioniert)
  • auf der Homematic Homematic habe ich die Firewall deaktiviert (HomeMatic XML-RPC API: Vollzugriff, Remote HomeMatic-Script API: Vollzugriff)
    --> muss hier noch mehr konfguriert werden?
  • includes/globals.inc.php habe ich angepasst:
    define("XMLRPC_SERVER_ADDRESS", "192.168.178.46");
    define("XMLRPC_CLIENT_ADDRESS", "192.168.178.27");
    define("XMLRPC_CLIENT_PATH", "homematic/includes/php/xmlrpc_server.php");
  • dann bin ich mit dem Tutorial gestartet, habe Lektion 1 absolviert (und auch begriffen), hänge nun aber leider bei Lektion 2
    --> trotz der eingetragenen SN eines realen Switches sieht die Seite unverändert aus, d.h. es erscheint kein Icon :(
Leider fehlen mir noch etwas die Zusammenhänge, um selber den Fehler zu finden.

Zwei Punkte fallen mir auf:
  • die angezeigte LED bleibt schwarz und blinkt nicht
  • ein Aufruf von "http://server/homematic/includes/php/phpSession_displayArray.php?array=homematic" zeigt
    {"GEQ0008327:1":{"MOTION":"false","BRIGHTNESS":"36","LastUpdate":"August 03, 2010 19:27:11", ...
    Das sind nicht die Daten von meiner CCU, sondern wohl eher die von deiner?
Hast du für mich einen Tipp, wie ich das Problem einkreisen kann?

Vielen Dank,

Burkhard

Antworten

Zurück zu „Projektvorstellungen“