neues modul 98_combine.pm: kombinieren von readings

Begonnen von justme1968, 13 April 2020, 21:42:51

Vorheriges Thema - Nächstes Thema

ergerd

Sorry, ich dachte das wäre implizit klar :-)

Das rote Fragezeichen kommt dann nicht mehr.
FHEM auf RasPi 4, CUNO, ZigBee, 1Wire2WLAN, DS2423, C-Control II, Buderus KM200, LaCrosseGateway, PCA301, ConBee II, LuftdatenInfo, OneWireGW, Div. ESPs u. Shellys

ergerd

Hallo justme1968,

Frage: Wird sich an dem "Problem" mit dem roten Fragezeichen noch etwas ändern? Habe nur ich den Umstand, das ich manchmal im Minutentakt das Fragezeichen wieder bekomme (wenn ich denn vorher Save config geklickt habe)?

Danke und Grüße
ergerd
FHEM auf RasPi 4, CUNO, ZigBee, 1Wire2WLAN, DS2423, C-Control II, Buderus KM200, LaCrosseGateway, PCA301, ConBee II, LuftdatenInfo, OneWireGW, Div. ESPs u. Shellys

istler

#47
Hallo,

danke für das Modul! :-) Es ist doch sehr hilfreich.

Ich habe aber ein Problem: ich habe drei Temperatur-Sensoren kombiniert, aber leider enthält STATE nur ???
Internals:
   DEF        LaCrosse_Kinderzimmer_S:temperature AND LaCrosse_04:temperature AND LaCrosse_Schlafzimmer:temperature = temperature
   FUUID      32e59fd0-2ab2-4f37-a1f8-fa36bf3a05af
   FVERSION   98_combine.pm:0.213660/2020-03-06 ALPHA
   NAME       comb_temp_OG
   NOTIFYDEV  global,LaCrosse_Schlafzimmer,LaCrosse_Kinderzimmer_S,LaCrosse_04
   NR         98
   NTFY_ORDER 50-comb_temp_OG
   STATE      ???
   TYPE       combine
   mayBeVisible 1
   READINGS:
     2021-07-25 00:22:24   temperature     22.8
   helper:
     result_reading temperature
     rules:
       LaCrosse_Kinderzimmer_S:temperature
       AND
       LaCrosse_04:temperature
       AND
       LaCrosse_Schlafzimmer:temperature
     values:
     watch:
       LaCrosse_04:temperature 23.1
       LaCrosse_Kinderzimmer_S:temperature 23.2
       LaCrosse_Schlafzimmer:temperature 22.8
Attributes:


Kombiniere ich nur zwei, scheint es zu funktionieren:
Internals:
   DEF        LaCrosse_08:temperature AND LaCrosse_Arbeitszimmer:temperature = temperature
   FUUID      60f93bd9-f33f-bde3-7151-3e4a1d30c79307f9
   FVERSION   98_combine.pm:0.213660/2020-03-06 ALPHA
   NAME       comb_temp_EG
   NOTIFYDEV  global,LaCrosse_Arbeitszimmer,LaCrosse_08
   NR         95
   NTFY_ORDER 50-comb_temp_EG
   STATE      21.3
   TYPE       combine
   READINGS:
     2021-07-22 11:35:23   state           21.3
     2021-07-25 00:22:22   temperature     22
   helper:
     result_reading temperature
     rules:
       LaCrosse_08:temperature
       AND
       LaCrosse_Arbeitszimmer:temperature
     values:
     watch:
       LaCrosse_08:temperature 22
       LaCrosse_Arbeitszimmer:temperature 22.1
Attributes:


Was mache ich da falsch?

Schöne Grüße
Maik

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

istler

Hi,

das Log sagt dann eine Menge...

Was auffällt, wenn ich das combine im Webbrowser aufrufe, fhem abstürzt.

2021.07.25 09:52:47 4: WEBIPv6_fd00:cafe:beef:1:e39a:1b94:8795:e367_55850 GET /fhem?detail=comb_temp_OG; BUFLEN:0
Can't use an undefined value as an ARRAY reference at ./FHEM/98_combine.pm line 171.
2021.07.25 09:52:47 5: Initializing Type Library:
2021.07.25 09:52:47 1: Including fhem.cfg


Ansonsten wird der Code erfolgreich geladen:
2021.07.25 09:52:48 5: Cmd: >define comb_temp_OG combine LaCrosse_Kinderzimmer_S:temperature AND LaCrosse_Kinderzimmer_N:temperature AND LaCrosse_Schlafzimmer:temperature = temperature<
2021.07.25 09:52:48 5: Cmd: >setuuid comb_temp_OG 32e59fd0-2ab2-4f37-a1f8-fa36bf3a05af<


anscheinend arbeitet der Code auch fehlerfrei:

2021.07.25 09:52:48 5: comb_temp_OG: 23.3
2021.07.25 09:52:48 5: comb_temp_OG: AND 23.2
2021.07.25 09:52:48 5: comb_temp_OG: AND 23.2
2021.07.25 09:52:48 5: comb_temp_OG: = 23.2
2021.07.25 09:52:48 5: Starting notify loop for comb_temp_OG, 1 event(s), first is temperature: 23.2
2021.07.25 09:52:48 5: createNotifyHash
2021.07.25 09:52:48 5: Cmd: >set dum_close_Window_OG close<
2021.07.25 09:52:48 4: dummy set dum_close_Window_OG close
2021.07.25 09:52:48 5: Starting notify loop for dum_close_Window_OG, 1 event(s), first is close
2021.07.25 09:52:48 5: End notify loop for dum_close_Window_OG
2021.07.25 09:52:48 5: Cmd: >set signal send "@maik" "OG: Fenster schliessen! ([LaCrosse_Carport:temperature]°C vs [comb_temp_OG:temperature]°C)"<
2021.07.25 09:52:48 3: signal: Before parse:"@maik" "OG: Fenster schliessen! (24.4<B0>C vs 23.2<B0>C)":
2021.07.25 09:52:48 4: signal: sendMessage called for maik::OG: Fenster schliessen! (24.4<B0>C vs 23.2<B0>C)
2021.07.25 09:52:48 5: Starting notify loop for signal, 1 event(s), first is send "@maik" "OG: Fenster schliessen! (24.4°C vs 23.2°C)"
2021.07.25 09:52:48 5: End notify loop for signal
2021.07.25 09:52:48 5: Starting notify loop for th_temp_in_out_OG, 2 event(s), first is sensor_value: 23.2
2021.07.25 09:52:48 5: End notify loop for th_temp_in_out_OG
2021.07.25 09:52:48 5: End notify loop for comb_temp_OG

...

2021.07.25 10:07:15 5: comb_temp_OG: 23.4
2021.07.25 10:07:15 5: comb_temp_OG: AND 23.2
2021.07.25 10:07:15 5: comb_temp_OG: AND 23.3
2021.07.25 10:07:15 5: comb_temp_OG: = 23.2
2021.07.25 10:07:15 5: Starting notify loop for comb_temp_OG, 1 event(s), first is temperature: 23.2
2021.07.25 10:07:15 5: End notify loop for comb_temp_OG



Bis auf den ersten Hinweis, kann ich nichts auffälliges finden.

Hast du eine Idee, wo nach ich gucken soll?

Danke für den Support.

Gruß
Maik

justme1968

im ersten post gibt es eine neue version. damit sollte der absturz behoben sein.

ich habe mir dein listing von oben noch mal angeschaut. wie kommst du darauf das du nur state bekommst?   READINGS:
     2021-07-25 00:22:24   temperature     22.8
da ist doch das temperature reading.

falls du STATE meinst: dafür musst du stateFormat auf temperature setzen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

istler

#51
Hi Sorry,

der Satz war nicht richtig. Ich habe ihn korrigiert. Ich meinte, dass bei dem combine mit drei Sensoren das STATE nur ??? enthält. Bei dem zweiten Beispiel mit zwei Sensoren enthält STATE die min. Temperatur.
Für beide Kombines benutze ich die selben Befehle:

#combine temp Sensor EG
define comb_temp_EG combine LaCrosse_Wohnzimmer:temperature AND LaCrosse_Arbeitszimmer:temperature = temperature
setuuid comb_temp_EG 60f93bd9-f33f-bde3-7151-3e4a1d30c79307f9

#combine temp Sensor OG
define comb_temp_OG combine LaCrosse_Kinderzimmer_S:temperature AND LaCrosse_Kinderzimmer_N:temperature AND LaCrosse_Schlafzimmer:temperature = temperature
setuuid comb_temp_OG 32e59fd0-2ab2-4f37-a1f8-fa36bf3a05af



Die Sensoren sind alle vom gleichen Typ.

stateFormat habe ich gar nicht benutzt. Trotzdem scheint es bei zwei Sensoren zu funktionieren, bei drei Sensoren nicht mehr!?

Oder habe ich etwas anderes nicht richtig gemacht?

Edit: sehe gerade, dass der STATE beim 2-Fach combine schon uralt ist... Okay. Da ich in <Result> ein <Reading> definiert habe, wird STATE nicht beschrieben. Ist das so richtig?

justme1968

wenn du möchtest das in STATE etwas steht musst du stateFormat setzen das ist in fhem immer so. ausser es gibt ein reading state. dieses wird per default nach STATE kopiert.

combine verwendet state reading wenn ein anderes reading angegeben wird. woher dine alten state kommen kann ich nicht sagen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

bjbrill

Ich wollte nur ein großen Dank aussprechen.
Ich benutze das Modul um Verbaucher zu addieren und um dann den Solarüberschus in der Aquariumheizung zu verbrauchen.

Lg
Ubuntu-Server, Dect200, Jeelink, Unifi, ESP32, Alexa, Tasmota, zigbee2mqtt, OpenDTU.