HMCompanion - Schnittstelle zur CCU

diverse Zusatzsoftware

Moderator: Co-Administratoren

Benutzeravatar
owagner
(verstorben)
Beiträge: 1193
Registriert: 13.05.2008, 19:49
Danksagung erhalten: 1 Mal

Re: HMCompanion - Schnittstelle zur CCU

Beitrag von owagner » 27.12.2010, 13:59

Port 6778 wird benutzt zum Empfang der Callbacks im Rahmen der xml-rpc-Kommunikation mit rfd, hs485 und pfmd, dort nicht hinconnecten -- Port 6770 ist schon der korrekte Port zum Absenden der Befehle. Bitte beachten, dass er den Port erst dann bind()et, wenn die Übertragung der Daten von der CCU abgeschlossen ist.

cbrassel
Beiträge: 5
Registriert: 27.12.2010, 13:30

Re: HMCompanion - Schnittstelle zur CCU

Beitrag von cbrassel » 27.12.2010, 16:59

Super !

mit etwas gedult functionniert es effectif wunderbar !!

Eine letzte frage, mein server is ausserhalb meines netzwerkes, eine idee welche ports von hmcomanion zur CCU geöffnet werden mussen ?

Danke

Claude

Benutzeravatar
owagner
(verstorben)
Beiträge: 1193
Registriert: 13.05.2008, 19:49
Danksagung erhalten: 1 Mal

Re: HMCompanion - Schnittstelle zur CCU

Beitrag von owagner » 27.12.2010, 17:25

Von HMC zur CCU: TCP 2000-2002, 8181
Von CCU zu HMC (wegen Callback): TCP 6778

Balu1973
Beiträge: 54
Registriert: 30.12.2010, 12:24

Re: HMCompanion - Schnittstelle zur CCU

Beitrag von Balu1973 » 02.01.2011, 15:04

Hallo,

ich veruche HMCompanion für eine Langzeitdarstellung meiner Werte in Cacti benutzen.
Wenn ich HMC starte bekomme ich alle 30 Sekunden folgende Meldung:

02.01.2011 14:56:04 com.vapor.hmcompanion.HMC initWatchog
WARNUNG: No XML-RPC request since Thu Jan 01 01:00:00 CET 1970, reiniting

Wenn ich eine Abfrage versuche zeigt er mir die Verbindung aber auch an:

02.01.2011 14:35:40 com.vapor.hmcompanion.Server run
INFO: Accepted connection from /127.0.0.1:55473

Die Funktionen HELP, NAMES und HMGET funktionieren auch, aber mit GET und CGET bekomme ich immer nur einen Punkt zurück. Habe das hier genauer beschrieben: http://homematic-forum.de/forum/viewtop ... =26&t=5831

Hat das was mit den Meldungen zu tun?
Falls es wichtig ist: HMC läuft unter Suse Linux 11.3 und Java Version 1.6. Ich habe es aber auch schon unter Java 1.5 und auch auf einem Windows Rechner versucht - überall das gleiche Bild....

Danke und Gruß,
Balu
8x HM-Sec-RHS, 6x HM-CC-VG-1, 2x HM-PB-4-WM, 6x HM-TC-IT-WM-W-EU, 6x HM-CC-RT-DN, 1x HM-WDS10-TH-O, 1x HMIP-PS, 1x HM-LC-Dim1T-FM, 1x HM-Sec-SCo, 1x HM-ES-TX-WM, 1x HM-LC-Sw4-PCB, 1x HM-WDS30-OT2-SM, 1x CUX28, 1x HmIP-RCV-50, 1x HM-ES-PMSw1-Pl, 1x HmIP-SWD, 1x HMIP-PSM, 2x HM-LC-Dim1TPBU-FM, 1x HmIP-BSL, 1x HM-WDS40-TH-I, 1x HM-LC-Sw1-Pl, 1x HM-LC-Dim1T-Pl-2

Benutzeravatar
owagner
(verstorben)
Beiträge: 1193
Registriert: 13.05.2008, 19:49
Danksagung erhalten: 1 Mal

Re: HMCompanion - Schnittstelle zur CCU

Beitrag von owagner » 02.01.2011, 17:45

Balu1973 hat geschrieben:02.01.2011 14:56:04 com.vapor.hmcompanion.HMC initWatchog
WARNUNG: No XML-RPC request since Thu Jan 01 01:00:00 CET 1970, reiniting
Das bedeutet, dass rfd & Co. keine Callbacks an HMC schicken, also irgendwas mit der Initialisierung schiefgegangen ist.

Wichtig ist, dass bei den Callbacks die CCU zu Deinem Server connecten muss. Daraus, dass die Verbindung vom Server zur CCU klappt (was bei Dir ja der Fall ist, sonst würden die ReGa-Abfragen nicht klappen), kann man leider nicht zwingend schliessen, dass dies umgekehrt auch funktioniert.

Mögliche Ursache:

-- Firewall auf deinem Server verbietet Verbindungen von der CCU (TCP-Port 6778)
-- HMC ermittelt eine falsche lokale IP Deines Servers (die festgestellte IP sollte im Logfile von HMC direkt beim Start stehen)

Viele Grüße,
Olli

Balu1973
Beiträge: 54
Registriert: 30.12.2010, 12:24

Re: HMCompanion - Schnittstelle zur CCU

Beitrag von Balu1973 » 02.01.2011, 17:58

Hallo Olli,

Danke für Deine Antwort.
Eine Firewall ist im Moment noch deaktiviert.

Beim starten von HMC zeigt er mir folgendes an:

cacti:/etc/init.d # ./HMCompanion start
Starting HMCompanion
Done!
cacti:/etc/init.d # 02.01.2011 17:50:19 com.vapor.hmcompanion.HMC serverMode
INFO: HMCompanion V0.14 (C) 2010 Oliver Wagner <owagner@vapor.com>, All Rights Reserved
02.01.2011 17:50:20 com.vapor.hmcompanion.AttributeCache load
INFO: Read 0 entries from hmc.cache
02.01.2011 17:50:20 com.vapor.hmcompanion.HMC serverMode
INFO: Listening for XMLRPC callbacks on binary://127.0.0.2:6778, now init-ing
02.01.2011 17:50:20 com.vapor.hmcompanion.ReGaDeviceCache loadDeviceCache
INFO: Obtaining ReGa channel items
02.01.2011 17:50:20 com.vapor.hmcompanion.ReGaDeviceCache loadDeviceCache
INFO: Obtained 132 ReGa Channel items
02.01.2011 17:50:20 com.vapor.hmcompanion.Server acceptIt
INFO: Accepting connections on ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=6770]


Wenn ich Dich richtig verstanden habe müsste in der fett markierten Zeile meine Server IP stehen - also was mit 192.168.x.y.
Kann man das irgendwo als Parameter mitgeben?

Gruß,
Balu

Zusatz: Wenn ich von einem anderen PC ein telnet auf den Server auf Port 6778 absende kommt eine Verbindung zustande:
c:> netstat -n
TCP 192.168.x.a:58210 192.168.x.z:6778 HERGESTELLT

Benutzeravatar
owagner
(verstorben)
Beiträge: 1193
Registriert: 13.05.2008, 19:49
Danksagung erhalten: 1 Mal

Re: HMCompanion - Schnittstelle zur CCU

Beitrag von owagner » 02.01.2011, 20:34

Ja, das ist der Fehler.

Das Problem ist, dass HMC der CCU sagen muß "bitte melde dich auf dieser IP zurück", und aktuell versucht nun die CCU, bei 127.0.0.2 Callbacks loszuwerden, was natürlich nicht klappt. Das HMC selbst richtig listen()ed, hilft hier nicht. Vermutlich steht bei Dir etwas komisches in /etc/hosts oder so...

Viele Grüße,
Olli

Benutzeravatar
owagner
(verstorben)
Beiträge: 1193
Registriert: 13.05.2008, 19:49
Danksagung erhalten: 1 Mal

Re: HMCompanion - Schnittstelle zur CCU

Beitrag von owagner » 02.01.2011, 20:37

Anbei eine Testversion, probier bitte mal mit

java -Dhmc.localhost=192.168.x.y <restliche Parameter>
Dateianhänge
hmcompanion_v015_test.zip
(61.76 KiB) 153-mal heruntergeladen

Balu1973
Beiträge: 54
Registriert: 30.12.2010, 12:24

Re: HMCompanion - Schnittstelle zur CCU

Beitrag von Balu1973 » 02.01.2011, 20:47

Hallo Olli,

beides die richtigen Ideen!
In meiner Hosts stand für die richtige IP und 127.0.0.1 der gleiche Eintrag. Wenn die Zeile mit 127.0.0.1 gelöscht ist startet HMC richtig.
Oder die neue Version mit dem zusätzlichen Parameter -Dhmc.localhost=192.168.x.y

Es funktioniert jetzt!
Vielen Dank für Deine Hilfe!!

Gruß,
Balu
8x HM-Sec-RHS, 6x HM-CC-VG-1, 2x HM-PB-4-WM, 6x HM-TC-IT-WM-W-EU, 6x HM-CC-RT-DN, 1x HM-WDS10-TH-O, 1x HMIP-PS, 1x HM-LC-Dim1T-FM, 1x HM-Sec-SCo, 1x HM-ES-TX-WM, 1x HM-LC-Sw4-PCB, 1x HM-WDS30-OT2-SM, 1x CUX28, 1x HmIP-RCV-50, 1x HM-ES-PMSw1-Pl, 1x HmIP-SWD, 1x HMIP-PSM, 2x HM-LC-Dim1TPBU-FM, 1x HmIP-BSL, 1x HM-WDS40-TH-I, 1x HM-LC-Sw1-Pl, 1x HM-LC-Dim1T-Pl-2

riggert
Beiträge: 7
Registriert: 17.01.2011, 13:47

Re: HMCompanion - Schnittstelle zur CCU

Beitrag von riggert » 17.01.2011, 14:30

Hallo Olli,

vorab danke für die schöne Middleware.
Ich mache mich z.Z. daran meinen VDR und Homematic zu vereinen.
Damit wäre dann eine Anzeige/Steuerung der homematic Komponenten über das OSD meines Fernsehers möglich, was den WAF der Homematic ca. 250% steigern würde :)
HMC scheint mir die idealle Ausgangsbasis dafür zu sein.
Allerdings läuft im Zeitalter von GreenIT mein VDR nicht 24/7 und damit sind die Status nach Neustart nicht auf dem aktuellsten Stand.
Gibt es eine Möglichkeit die Zustände beim Start von HMC mit dem Wissen der CCU abzugleichen? Oder evtl. sogar periodisch?
Einige Sensoren oder Aktoren senden ihre Stutusupdates in sehr grossen Intervallen oder erst bei Statusänderung.
Als Beispiel z.B. die Fensterdrehgirff-Kontakte oder Jalousieaktoren.
Ist der Server auf dem HMC läuft zu diesen Zeitpunkten down, wird ein falscher Status (naturgemäss) zurückgegeben.

Mir würde es genügen, wenn beim Start von HMC alle Kanäle und deren Zustände gelesen würden und dann im Cache landen.
Es scheint auch so zu sein, dass wenn man HMC nach einem bestimmten Zustand fragt, der noch nicht per Push HMC mitgeteilt wurde, ein leerer Wert zurück gegeben wird.
z.B. GET "Rolladen.xyz" LEVEL -> liefert "" zurück. Erst wenn die Jalousie bewegt wurde und somit der neue Level der Logikschicht gepusht wurde, liefert die selbe Anfrage den korrekten Wert (z.B. 0.5).
Gibt es eine Möglichkeit, beim nicht-existierenden Cache-Entry erst den tatsächlichen Wert zu lesen und dann diesen im Cache abzulegen? Weitere pushes würden entsprechend den cache updaten.
Gruß
Riggert

Antworten

Zurück zu „Sonstige Addons“