HMCCURPC: Multithreaded RPC Server für HMCCU

Begonnen von zap, 22 März 2017, 18:50:13

Vorheriges Thema - Nächstes Thema

Chris8888

Hi,

die Readings werden leider nicht aktualisiert.
Auch kommt ein "Connection lost, retry in 5 seconds" in der FHEM-GUI sobald ich ein Hm-IP-Device anspreche.

Hier das Log von meinem Thermostat nachdem ich in der GUI die Temparatur von 19 auf 20° verstellt habe:

2017.03.27 19:13:00 1: HMCCUDEV: HM_Thermostat_HWR Execution of CCU script or command failed
2017.03.27 19:30:35 2: HMCCUDEV: Addr=000A9569A3A519:1 Name=HmIP-WTH-2 000A9569A3A519:1
2017.03.27 19:30:35 2: HMCCUDEV: Script response =
<xml><exec>/do.exe</exec><sessionId></sessionId><httpUserAgent>User-Agent: fhem</httpUserAgent><r1>false</r1></xml>
2017.03.27 19:30:35 2: HMCCUDEV: Script =
http://192.168.100.65:8181/do.exe?r1=dom.GetObject("HmIP-RF.000A9569A3A519:1.SET_POINT_TEMPERATURE").State(20.0)
2017.03.27 19:30:35 2: HMCCU: GetAttrSubstitute: subst = SET_POINT_TEMPERATURE!#0-12.0:off,#23.0-40:on;WINDOW_STATE!(0|false):closed,(1|true):open;LOW_BAT!(0|false):ok,(1|true):low
2017.03.27 19:30:35 2: HMCCU: HM_Thermostat_Wohnzimmer Devlist = 000A9569A3A519
2017.03.27 19:30:35 2: HMCCU: HM_Thermostat_Wohnzimmer Objects = 000A9569A3A519
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:0, dpt=UNREACH, value=0
2017.03.27 19:30:35 2: HMCCU: FilterReading rm=1, r=.*, dpt=UNREACH chnflt=.* chnnam=Thermostat-Wohnzimmer:0
2017.03.27 19:30:35 2: HMCCU: FilterReading Check 1 = 1 AND UNREACH = .* OR 1 = 0 AND UNREACH = .*
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=0.UNREACH, orgvalue=0 value=0
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:0, dpt=LOW_BAT, value=0
2017.03.27 19:30:35 2: HMCCU: FilterReading rm=1, r=.*, dpt=LOW_BAT chnflt=.* chnnam=Thermostat-Wohnzimmer:0
2017.03.27 19:30:35 2: HMCCU: FilterReading Check 1 = 1 AND LOW_BAT = .* OR 1 = 0 AND LOW_BAT = .*
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=0.LOW_BAT, orgvalue=0 value=ok
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:0, dpt=RSSI_DEVICE, value=-42
2017.03.27 19:30:35 2: HMCCU: FilterReading rm=1, r=.*, dpt=RSSI_DEVICE chnflt=.* chnnam=Thermostat-Wohnzimmer:0
2017.03.27 19:30:35 2: HMCCU: FilterReading Check 1 = 1 AND RSSI_DEVICE = .* OR 1 = 0 AND RSSI_DEVICE = .*
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=0.RSSI_DEVICE, orgvalue=-42 value=-42
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:0, dpt=OPERATING_VOLTAGE, value=2.9
2017.03.27 19:30:35 2: HMCCU: FilterReading rm=1, r=.*, dpt=OPERATING_VOLTAGE chnflt=.* chnnam=Thermostat-Wohnzimmer:0
2017.03.27 19:30:35 2: HMCCU: FilterReading Check 1 = 1 AND OPERATING_VOLTAGE = .* OR 1 = 0 AND OPERATING_VOLTAGE = .*
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=0.OPERATING_VOLTAGE, orgvalue=2.9 value=2.9
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:0, dpt=DUTY_CYCLE, value=0
2017.03.27 19:30:35 2: HMCCU: FilterReading rm=1, r=.*, dpt=DUTY_CYCLE chnflt=.* chnnam=Thermostat-Wohnzimmer:0
2017.03.27 19:30:35 2: HMCCU: FilterReading Check 1 = 1 AND DUTY_CYCLE = .* OR 1 = 0 AND DUTY_CYCLE = .*
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=0.DUTY_CYCLE, orgvalue=0 value=0
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:0, dpt=RSSI_PEER, value=-43
2017.03.27 19:30:35 2: HMCCU: FilterReading rm=1, r=.*, dpt=RSSI_PEER chnflt=.* chnnam=Thermostat-Wohnzimmer:0
2017.03.27 19:30:35 2: HMCCU: FilterReading Check 1 = 1 AND RSSI_PEER = .* OR 1 = 0 AND RSSI_PEER = .*
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=0.RSSI_PEER, orgvalue=-43 value=-43
2017.03.27 19:30:35 2: HMCCU: GetAttrSubstitute: subst = SET_POINT_TEMPERATURE!#0-12.0:off,#23.0-40:on;WINDOW_STATE!(0|false):closed,(1|true):open;LOW_BAT!(0|false):ok,(1|true):low
2017.03.27 19:30:35 2: HMCCU: HM_Thermostat_Wohnzimmer Devlist = 000A9569A3A519
2017.03.27 19:30:35 2: HMCCU: HM_Thermostat_Wohnzimmer Objects = 000A9569A3A519
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:1, dpt=SWITCH_POINT_OCCURED, value=0
2017.03.27 19:30:35 2: HMCCU: FilterReading rm=1, r=.*, dpt=SWITCH_POINT_OCCURED chnflt=.* chnnam=HmIP-WTH-2 000A9569A3A519:1
2017.03.27 19:30:35 2: HMCCU: FilterReading Check 1 = 1 AND SWITCH_POINT_OCCURED = .* OR 1 = 0 AND SWITCH_POINT_OCCURED = .*
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=1.SWITCH_POINT_OCCURED, orgvalue=0 value=0
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:1, dpt=PARTY_MODE, value=0
2017.03.27 19:30:35 2: HMCCU: FilterReading rm=1, r=.*, dpt=PARTY_MODE chnflt=.* chnnam=HmIP-WTH-2 000A9569A3A519:1
2017.03.27 19:30:35 2: HMCCU: FilterReading Check 1 = 1 AND PARTY_MODE = .* OR 1 = 0 AND PARTY_MODE = .*
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=1.PARTY_MODE, orgvalue=0 value=0
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:1, dpt=ACTUAL_TEMPERATURE, value=23.5
2017.03.27 19:30:35 2: HMCCU: FilterReading rm=1, r=.*, dpt=ACTUAL_TEMPERATURE chnflt=.* chnnam=HmIP-WTH-2 000A9569A3A519:1
2017.03.27 19:30:35 2: HMCCU: FilterReading Check 1 = 1 AND ACTUAL_TEMPERATURE = .* OR 1 = 0 AND ACTUAL_TEMPERATURE = .*
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=1.ACTUAL_TEMPERATURE, orgvalue=23.5 value=23.5
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:1, dpt=HEATING_COOLING, value=0
2017.03.27 19:30:35 2: HMCCU: FilterReading rm=1, r=.*, dpt=HEATING_COOLING chnflt=.* chnnam=HmIP-WTH-2 000A9569A3A519:1
2017.03.27 19:30:35 2: HMCCU: FilterReading Check 1 = 1 AND HEATING_COOLING = .* OR 1 = 0 AND HEATING_COOLING = .*
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=1.HEATING_COOLING, orgvalue=0 value=0
2017.03.27 19:30:35 2: HMCCU: GetAttrSubstitute: subst = SET_POINT_TEMPERATURE!#0-12.0:off,#23.0-40:on;WINDOW_STATE!(0|false):closed,(1|true):open;LOW_BAT!(0|false):ok,(1|true):low
2017.03.27 19:30:35 2: HMCCU: HM_Thermostat_Wohnzimmer Devlist = 000A9569A3A519
2017.03.27 19:30:35 2: HMCCU: HM_Thermostat_Wohnzimmer Objects = 000A9569A3A519
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:1, dpt=SET_POINT_TEMPERATURE, value=20.0
2017.03.27 19:30:35 2: HMCCU: FilterReading rm=1, r=.*, dpt=SET_POINT_TEMPERATURE chnflt=.* chnnam=HmIP-WTH-2 000A9569A3A519:1
2017.03.27 19:30:35 2: HMCCU: FilterReading Check 1 = 1 AND SET_POINT_TEMPERATURE = .* OR 1 = 0 AND SET_POINT_TEMPERATURE = .*
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=1.SET_POINT_TEMPERATURE, orgvalue=20.0 value=20.0
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:1, dpt=ACTIVE_PROFILE, value=1
2017.03.27 19:30:35 2: HMCCU: FilterReading rm=1, r=.*, dpt=ACTIVE_PROFILE chnflt=.* chnnam=HmIP-WTH-2 000A9569A3A519:1
2017.03.27 19:30:35 2: HMCCU: FilterReading Check 1 = 1 AND ACTIVE_PROFILE = .* OR 1 = 0 AND ACTIVE_PROFILE = .*
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=1.ACTIVE_PROFILE, orgvalue=1 value=1
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:1, dpt=BOOST_MODE, value=0
2017.03.27 19:30:35 2: HMCCU: FilterReading rm=1, r=.*, dpt=BOOST_MODE chnflt=.* chnnam=HmIP-WTH-2 000A9569A3A519:1
2017.03.27 19:30:35 2: HMCCU: FilterReading Check 1 = 1 AND BOOST_MODE = .* OR 1 = 0 AND BOOST_MODE = .*
2017.03.27 19:30:35 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=1.BOOST_MODE, orgvalue=0 value=0
2017.03.27 19:30:36 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:1, dpt=SET_POINT_MODE, value=0
2017.03.27 19:30:36 2: HMCCU: FilterReading rm=1, r=.*, dpt=SET_POINT_MODE chnflt=.* chnnam=HmIP-WTH-2 000A9569A3A519:1
2017.03.27 19:30:36 2: HMCCU: FilterReading Check 1 = 1 AND SET_POINT_MODE = .* OR 1 = 0 AND SET_POINT_MODE = .*
2017.03.27 19:30:36 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=1.SET_POINT_MODE, orgvalue=0 value=0
2017.03.27 19:30:36 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:1, dpt=HUMIDITY, value=30
2017.03.27 19:30:36 2: HMCCU: FilterReading rm=1, r=.*, dpt=HUMIDITY chnflt=.* chnnam=HmIP-WTH-2 000A9569A3A519:1
2017.03.27 19:30:36 2: HMCCU: FilterReading Check 1 = 1 AND HUMIDITY = .* OR 1 = 0 AND HUMIDITY = .*
2017.03.27 19:30:36 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=1.HUMIDITY, orgvalue=30 value=30
2017.03.27 19:30:36 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:1, dpt=FROST_PROTECTION, value=0
2017.03.27 19:30:36 2: HMCCU: FilterReading rm=1, r=.*, dpt=FROST_PROTECTION chnflt=.* chnnam=HmIP-WTH-2 000A9569A3A519:1
2017.03.27 19:30:36 2: HMCCU: FilterReading Check 1 = 1 AND FROST_PROTECTION = .* OR 1 = 0 AND FROST_PROTECTION = .*
2017.03.27 19:30:36 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=1.FROST_PROTECTION, orgvalue=0 value=0
2017.03.27 19:30:36 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, chnadd=000A9569A3A519:1, dpt=WINDOW_STATE, value=0
2017.03.27 19:30:36 2: HMCCU: FilterReading rm=1, r=.*, dpt=WINDOW_STATE chnflt=.* chnnam=HmIP-WTH-2 000A9569A3A519:1
2017.03.27 19:30:36 2: HMCCU: FilterReading Check 1 = 1 AND WINDOW_STATE = .* OR 1 = 0 AND WINDOW_STATE = .*
2017.03.27 19:30:36 2: HMCCU: HMCCU_UpdateSingleDevice device=HM_Thermostat_Wohnzimmer, readings=1.WINDOW_STATE, orgvalue=0 value=closed


Hilft dir das?

VG
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

zap

Hast du die Firewall Regeln in der CCU korrekt eingestellt? Seit dem Firmware Update erforderlich
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Chris8888

#17
Hi, ja klar. Hatte ich schon nach dem Umstieg auf die 2.27.7.

Wenn ich den RPC-Server wieder auf intern umstelle läuft alles ganz normal.

VG
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

zap

Die Meldung "HM_Thermostat_HWR Execution of CCU script or command failed" hat nichts mit internem oder externem RPC-Server zu tun. Das funktioniert, sobald du auf intrpc zurück stellst?
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Chris8888

#19
Korrekt!

Ergänzung: Diese Meldung hatte ich zB auch schon mal, wenn ich per Script einige Kommandos parallel über HMCCU ausgeführt habe.
Ich vermute, durch die hohe Last in FHEM mit dem ext. RPC (Connection lost, Reconnect in 5 Sek)kommt es zum gleichen Sympthom. Ist aber geraten...

VG
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

zap

Kannst Du folgenden Befehl über das CCU WebGUI ausführen? (Programme und Verknüpfungen > Programme & Zentraleverknüpfungen" Button "Skript testen":


dom.GetObject("HmIP-RF.000A9569A3A519:1.SET_POINT_TEMPERATURE").State(20.0);


Du wirst keine Ausgabe bekommen. Einfach prüfen, ob die Zieltemperatur geändert wird. Fehler siehst Du nur auf der CCU in der Datei /var/log/messages.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Chris8888

FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

zap

Mysteriös. Hast Du schon mal die CCU neu gestartet? Vorher den RPC-Server stoppen.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Chris8888

Hallo Zap,

gerade gemacht. Keine Veränderung.
Die Readings ändern sich nur, wenn es einen Event des Gerätes gibt. Beim Start ist alles auf "null".
Sobald ich ein Komando absetzen kommt das "connection lost", das Kommando wird aber meistens trotzdem ausgeführt.

Dann habe ich wieder auf den internen Server umgestellt. Läuft sofort.

Dann Update durchgeführt 3.9.011 durchgeführt. Keine Veränderung.
Beim Start des internen Servers taucht jetzt beim Start mehrfach "HMCCU: HMCCU_QueueDeq seperator not found" im Log auf.

Ich habe keine Idee mehr ?!?!

Viele Grüße
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

zap

Ändern sich nur die Readings der HMIP Devices nach dem Start des RPC Servers nicht oder alle?
Was passiert, wenn du für ein Device get update ausführst? Was bei einem get deviceinfo?
Ich werde heute mal meine CCU auf die neuste Firmware updaten. Vielleicht kann ich das dann nachvollziehen.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Chris8888

An der CCU habe ich nur HmIP-Komponenten. Ich habe mal ein wenig weiter getestet:
Ext.Server:
Nach einem Neustart ist alles auf Null, nach ca. 4-5 Min sind aber alle Devices aktuell.
Nach Änderungen direkt am Device: Update in der CCU nach ca 2-3 Sek, fast im gleichen Augenblick kommt in FHEM das "Connections lost..".
Die Readings werden dabei nicht aktuallisiert.
Nach weiteren 4-5 Minuten wird das Reading dann aktuallisiert.

Ein Device get Update aktuallisiert das Reading sofort.
Ein get deviceinfo ändert nichts.

VG
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

Chris8888

Hallo Zap,

konntest du das Problem nachstellen?

Viele Grüße
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

zap

#27
Habe gerade das Update auf die 2.27.8 Firmware gemacht. Läuft.

Kann meine HM-IP Devices ohne Probleme ansprechen. Readings werden korrekt aktualisiert, sowohl manuell als auch per externem RPC Server.

Kannst Du bitte mal die Firewall Einstellungen der CCU posten?

2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Chris8888

Klar!

HomeMatic XML-RPC API: Vollzugriff
Remote HomeMatic-Script API: Eingeschränkt

IP-Adressen für den eingeschränkten Zugriff:
192.168.100.1;
192.168.100.0/16
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

zap

Dann hätte ich nur noch 2 Strohhälme im Angebot: trotzdem die Firewall auf Vollzugriff stellen und das Device in der CCU umbenennen (ohne Leerzeichen).

Ich will dir aber keine großen Hoffnungen machen. Ich glaube nicht, dass es hilft.

Wenn du umbenennst, hinterher ein get devicelist machen.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB