HMCCU: Neue Version 4.2 mit neuem RPC Server verfügbar

Begonnen von zap, 29 Januar 2018, 17:24:30

Vorheriges Thema - Nächstes Thema

Maista

Hallo zap,

Update durchgeführt.
Bisher sehe ich keine Probleme im Log.

Danke für die Arbeit!

Gruss Gerd

Init

Hallo zap,

auch bei mir sehen die ersten Tests sehr gut an. Auch das Zusammenspiel zwischen yowsup und hmccu funktioniert nun bei mir.

Wenn mir noch Fehler auffallen, dann werde ich es berichten.

Viele Grüße
Marc

Mave

Zitat von: zap am 04 Februar 2018, 11:49:04
Wenn du keine Probleme mit Modulen hast, die JSON verwenden, erst mal nicht. Mit der nächsten HMCCU Version passiert die Umstellung automatisch, d.h. beim ersten Start wird HMCCU dann HMCCURPCPROC Devices anlegen. So der Plan. Wahrscheinlich aber erst irgendwann im März.

Okay, verstanden.

Vielen Dank.

Mave

Was will mir denn diese Meldung im Log sagen:

CCURPC: I/O error during data processing (Select found no reader)

Vielen Dank.

Grüße Mave

zap

Wenn die Meldung nicht oft kommt, kannst Du das ignorieren. Besagt eigentlich nur, dass der RPC Server Daten an FHEM übergeben wollte, FHEM aber zu beschäftigt war, um diese anzunehmen.
Die Daten werden in dem Fall zwischengespeichert und nach kurzer Zeit nochmal übertragen, d.h. es gehen keine Infos verloren.
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

Mave

Hey zap,

vielen Dank.

Die Meldung kommt immer beim Neustart von FHEM.

Grüße Mave

zap

Die Version 4.2.002 ist eingecheckt und steht morgen per Update zur Verfügung. Für Nutzer von CUxD auf der CCU ist dieses Update dringend empfohlen!

Behobene Fehler:

- Fehler bei der Übertragung von Fließkommawerten aus CUxD behoben
- Befehl "set rpcserver" funktioniert nun auch, wenn per eventMap die Befehle "on" und "off" definiert wurden
- Fehler beim Setzen des RPC Server Status im I/O Device behoben
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

rolf

Hallo zap,

hab gerade den Update durchgeführt.
Funktioniert alles einwandfrei, der RPC-Server ist sehr, sehr schnell und keinerlei Fehlermeldungen im Log.

Danke !!!

Gruss Rolf
System 1: Intel NUC (ubuntu 18.04.1 lts) mit diversen Homematic-Komponenten + CUNO mit Uniroll/Hoermann + RFXTRX mit TFA + EnOcean mit Eltako + Alexa + Harmony + per HMCCU gekoppelter PI3-Raspberrymatic mit HM-IP-Komponenten
System 2: PI2-Raspberry (Jessie) + Signalduino mit Somfy/RTS

gentoo79

Moin @all,

seit der Umstellung bekomme ich keine Temperaturdaten mehr.
Also zur Randinformation. Ich habe über fhem meine Oregon Sensoren laufen und hatte die Werte dann an den CuxD schicken lassen. Jetzt bekomme ich aber immer die Meldung

set Oregon_Sensor_6_bad datapoint 1.SET_HUMIDITY 50 comma C off on off : HMCCUDEV: Oregon_Sensor_6_bad Invalid datapoint
2018.02.21 04:41:15 3: nOregon_Sensor_6_bad_luft return value: HMCCUDEV: Oregon_Sensor_6_bad Invalid datapoint


So sah es bisher in fhem.cfg aus

define myccu HMCCU 192.168.178.4
attr myccu ccuflags procrpc
attr myccu rpcserver on
attr myccu stateFormat rpcstate/state

define Oregon_Sensor_1_flur HMCCUDEV CUX9002001
attr Oregon_Sensor_1_flur IODev myccu
define Oregon_Sensor_2_azimmer HMCCUDEV CUX9002002
attr Oregon_Sensor_2_azimmer IODev myccu
define Oregon_Sensor_3_maurice HMCCUDEV CUX9002003
attr Oregon_Sensor_3_maurice IODev myccu
define Oregon_Sensor_4_lene HMCCUDEV CUX9002004
attr Oregon_Sensor_4_lene IODev myccu
define Oregon_Sensor_5_kueche HMCCUDEV CUX9002005
attr Oregon_Sensor_5_kueche IODev myccu
define Oregon_Sensor_6_bad HMCCUDEV CUX9002009
attr Oregon_Sensor_6_bad IODev myccu

define nOregon_Sensor_1_flur notify Oregon_Sensor_1_flur|THGR228N_b3_4:temperature:.* {\
my $temperature  = ReadingsNum("THGR228N_b3_4","temperature",10);;\
fhem "set Oregon_Sensor_1_flur datapoint 1.SET_TEMPERATURE $temperature comma C off on off";;}


Nun meine Frage. Was muß ich ich ändern, das es wieder Funktioniert ?

LG
Gentoo79


zap

#24
Mach mal bitte ein

get Oregon_Sensor6_bad deviceinfo

und poste hier die Ausgabe.

Tritt das nur bei diesem Sensor auf?

Du willst also den Datenpunkt 1.SET_HUMIDITY auf den Wert "50 comma C off on off" setzen? Wenn ja, musst du den Wert in doppelte Anführungszeichen setzen.
Hintergrund: Seit 4.2 unterstützt HMCCU das Schreiben in mehrere Datenpunkte mit einem Set Befehl. Daher werden in deinem Fall comma, off und off als Datenpunkte interpretiert. Dh musst nur aufpassen, da du im Notify auch doppelte Anführungszeicbdn verwendest. ggf funktionieren auch einfache.
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

gentoo79

nabend,

bei Befehl von get Oregon_Sensor_6_bad deviceinfo kommt.

HMCCUDEV: Oregon_Sensor_6_bad Execution of CCU script or command failed

es ist bei allen 6 Sensoren so?

Wie muss das denn aussehen mit den doppelten Anführungszeichen
etwa so
define nOregon_Sensor_1_flur notify Oregon_Sensor_1_flur|THGR228N_b3_4:temperature:.* {\
my $temperature  = ReadingsNum("THGR228N_b3_4","temperature",10);;\
fhem ""set Oregon_Sensor_1_flur datapoint 1.SET_TEMPERATURE $temperature comma C off on off"";;}

define nOregon_Sensor_1_flur_luft notify Oregon_Sensor_1_flur|THGR228N_b3_4:humidity:.* {\
my $humidity  = ReadingsNum("THGR228N_b3_4","humidity",10);;\
fhem ""set Oregon_Sensor_1_flur datapoint 1.SET_HUMIDITY $humidity comma C off on off"";;}

zap

Vieelleicht so:

define nOregon_Sensor_1_flur notify Oregon_Sensor_1_flur|THGR228N_b3_4:temperature:.* {\
my $temperature  = ReadingsNum("THGR228N_b3_4","temperature",10);;\
fhem "set Oregon_Sensor_1_flur datapoint 1.SET_TEMPERATURE \"$temperature comma C off on off\"";;}


oder so: (einfache Anführungszeichen vor $temperature und nach off)

define nOregon_Sensor_1_flur notify Oregon_Sensor_1_flur|THGR228N_b3_4:temperature:.* {\
my $temperature  = ReadingsNum("THGR228N_b3_4","temperature",10);;\
fhem "set Oregon_Sensor_1_flur datapoint 1.SET_TEMPERATURE '$temperature comma C off on off'";;}


Warum allerdings get deviceinfo nicht funktioniert ist mir ein Rätsel
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

gentoo79

nabend,

also irgendwie funktioniert das auch nicht.

Als Beispiel habe ich jetzt mal den Senso9r im Flur genommen.
Bei "get Oregon_Sensor_1_flur  deviceinfo kam jetzt das
CHN CUX9002001:0 Flur unten:0
  DPT {b} CUxD.CUX9002001:0.UNREACH = false [RE]
CHN CUX9002001:1 Flur unten:1
  DPT {f} CUxD.CUX9002001:1.TEMPERATURE = 19.100000 [RE]
  DPT {i} CUxD.CUX9002001:1.HUMIDITY = 54 [RE]
  DPT {f} CUxD.CUX9002001:1.HUMIDITYF = 54.000000 [RE]
  DPT {f} CUxD.CUX9002001:1.DEW_POINT = 9.580000 [RE]
  DPT {f} CUxD.CUX9002001:1.ABS_HUMIDITY = 8.850000 [RE]
  DPT {f} CUxD.CUX9002001:1.TEMP_MIN_24H = 0.000000 [RE]
  DPT {f} CUxD.CUX9002001:1.TEMP_MAX_24H = 0.000000 [RE]
  DPT {f} CUxD.CUX9002001:1.HUM_MIN_24H = 0.000000 [RE]
  DPT {f} CUxD.CUX9002001:1.HUM_MAX_24H = 0.000000 [RE]
  DPT {f} CUxD.CUX9002001:1.SET_TEMPERATURE =  [W]
  DPT {f} CUxD.CUX9002001:1.SET_HUMIDITY =  [W]
  DPT {b} CUxD.CUX9002001:1.INSTALL_TEST = false [RW]
CHN CUX9002001:2 Flur unten:2
  DPT {f} CUxD.CUX9002001:2.SETPOINT = 20.000000 [RWE]
  DPT {b} CUxD.CUX9002001:2.STATE = false [RE]
  DPT {f} CUxD.CUX9002001:2.LEVEL = 0.000000 [RE]
  DPT {b} CUxD.CUX9002001:2.SET_INVERT = false [RWE]
  DPT {b} CUxD.CUX9002001:2.INSTALL_TEST = false [RW]
CHN CUX9002001:3 Flur unten:3
  DPT {b} CUxD.CUX9002001:3.STATE = false [RE]
  DPT {b} CUxD.CUX9002001:3.INSTALL_TEST = false [RW]


in der fhem.cfg habe ich folgendes stehen
define myccu HMCCU 192.168.178.4
attr myccu ccuflags procrpc
attr myccu rpcinterfaces BidCos-RF,CUxD,HmIP-RF,VirtualDevices
attr myccu rpcport 2001,8701,2010,9292
attr myccu rpcserver on
attr myccu stateFormat rpcstate/state

define Oregon_Sensor_1_flur HMCCUDEV CUX9002001
attr Oregon_Sensor_1_flur IODev myccu

define nOregon_Sensor_1_flur notify Oregon_Sensor_1_flur|THGR228N_b3_4:temperature:.* {\
my $temperature  = ReadingsNum("THGR228N_b3_4","temperature",10);;\
fhem "set Oregon_Sensor_1_flur datapoint 1.SET_TEMPERATURE $temperature comma C off on off"";;}

define nOregon_Sensor_1_flur_luft notify Oregon_Sensor_1_flur|THGR228N_b3_4:humidity:.* {\
my $humidity  = ReadingsNum("THGR228N_b3_4","humidity",10);;\
fhem "set Oregon_Sensor_1_flur datapoint 1.SET_HUMIDITY $humidity comma C off on off"";;}


aber denoch werden die Daten nicht an den Wrapper (90) von CuxD übertragen.
in der CCU wird nix geändert.

Im log steht dieses
2018.02.22 21:20:43 1: PERL WARNING: String found where operator expected at (eval 101) line 3, at end of line
2018.02.22 21:20:43 3: eval: my $EVTPART0='humidity:';my $EVENT='humidity: 54';my $EVTPART1='54';my $NAME='THGR228N_b3_4';my $SELF='nOregon_Sensor_1_flur_luft';my $TYPE='OREGON';{
my $humidity  = ReadingsNum("THGR228N_b3_4","humidity",10);
fhem "set Oregon_Sensor_1_flur datapoint 1.SET_HUMIDITY $humidity comma C off on off"";}
2018.02.22 21:20:43 1: ERROR evaluating my $EVTPART0='humidity:';my $EVENT='humidity: 54';my $EVTPART1='54';my $NAME='THGR228N_b3_4';my $SELF='nOregon_Sensor_1_flur_luft';my $TYPE='OREGON';{
my $humidity  = ReadingsNum("THGR228N_b3_4","humidity",10);
fhem "set Oregon_Sensor_1_flur datapoint 1.SET_HUMIDITY $humidity comma C off on off"";}: Can't find string terminator '"' anywhere before EOF at (eval 101) line 3.

2018.02.22 21:20:43 3: nOregon_Sensor_1_flur_luft return value: Can't find string terminator '"' anywhere before EOF at (eval 101) line 3.

zap

Get deviceinfo sieht gut aus.

Warum hast du im notify den fhem() Call nicht so angegeben, wie ich es in meinem vorherigen Post vorgeschlagen habe? So wie es jetzt ist, kann es nicht funktionieren, da du zu viele doppelte Anführungszeichen drin hast. Das meckert fhem auch an.

Du kannst auch mal versuchen, den ,, set datapoint" Befehl direkt abzusetzen. Nur um sicher zu gehen, dass zumindest das richtig funktioniert:

set xyz datapoint 1.SET_TEMPERATURE ,,20 comma C off on off"
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

gentoo79

Moin,

also beim absetzten des befehls "set xyz datapoint 1.SET_TEMPERATURE ,,20 comma C off on off"

kommt
HMCCUDEV: Oregon_Sensor_1_flur Invalid datapoint

beim einfügen dieses define nOregon_Sensor_1_flur notify Oregon_Sensor_1_flur|THGR228N_b3_4:temperature:.* {\
my $temperature  = ReadingsNum("THGR228N_b3_4","temperature",10);;\
fhem "set Oregon_Sensor_1_flur datapoint 1.SET_TEMPERATURE '$temperature comma C off on off'";;}

kommt auch nix an.

auch bei
define nOregon_Sensor_1_flur notify Oregon_Sensor_1_flur|THGR228N_b3_4:temperature:.* {\
my $temperature  = ReadingsNum("THGR228N_b3_4","temperature",10);;\
fhem "set Oregon_Sensor_1_flur datapoint 1.SET_TEMPERATURE \"$temperature comma C off on off\"";;}


kommt nix.

Komisch finde ich auch das bei HMCCU der Status auf inactive/ OK steht.

LG
gentoo79