[gelöst] Oregon TRX_WEATHER THGR228N Werte zur CCU3 übertragen

Begonnen von JueFi, 04 November 2022, 14:24:21

Vorheriges Thema - Nächstes Thema

JueFi

Leider habe ich kein wirklich passendes Thema gefunden, wo ich mich anhängen kann.

Ich schaffe es, aus FHEM heraus meine Werte für Temperatur und Luftfeuchtigkeit in der CCU3 zu setzen (per HMCCU)
set myCCU var CUxD.CUX9002001:1.SET_TEMPERATURE 20.1
set myCCU var CUxD.CUX9002001:1.SET_HUMIDITY 91

Jetzt möchte ich aber einen Notify erstellen, der mir die Werte automatisch bei Änderung an die CCU schickt.
Das ist mein kläglicher Versuch, der nicht klappt.
define nt.Tmp_T4 notify (TMP_T4.*) {\
  fhem ('myCCU var CUxD.CUX9002001:1.SET_TEMPERATURE ' .$EVTPART1);;\
}

Wie komme ich an die Werte für Temperatur und Luftfeuchte meines Sensors, um die zur CCU zu schicken ?
Im Eventlog kommen die Meldungen für den Temperatur-Sensor in dieser Form:
2022-11-04 14:04:57 TRX_WEATHER Tmp_T4 T: 18.9 H: 66 BAT: ok
Vielen Dank

CoolTux

Gib mal bitte ein list vom Tmp_T4 Device. Bin mir sicher das nicht nur das eine Reading kommt. Das scheint ja das state Reading zu sein. Da gibt es auch noch temperature und humidity bestimmt. Und dann musst Du Deine RegEx setzen.

define nt.Tmp_T4 notify TMP_T4:(temperature|humidity):.*

Und im Notify weiter auswerten
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

Zitat von: JueFi am 04 November 2022, 14:24:21
Jetzt möchte ich aber einen Notify erstellen, der mir die Werte automatisch bei Änderung an die CCU schickt.
Hi,

Tipp: die einfachste Vorgehensweise ist mit Hilfe vom Eventmonitor.
https://wiki.fhem.de/wiki/Event_monitor
Danach kann man optimieren ;)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

JueFi

Vielen Dank euch beiden.

So läuft es jetzt:
Ich habe noch per "Log" eine Debug-Hilfsausgabe ins Logfile eingefügt, die kann natürlich raus.
Und nicht wundern, ich habe einen anderen Sensor benutzt zum Testen (Tmp_T2, statt wie oben Tmp_T4, ist aber der gleiche Typ)
define nt.Tmp_T2 notify (Tmp_T2.*) {\
my $temperature = ReadingsNum("Tmp_T2","temperature",10);;\
my $humidity = ReadingsNum("Tmp_T2","humidity",10);;\
Log 3, "$NAME: CCU Temperatur: $temperature";;;;\
Log 3, "$NAME: CCU Humidity: $humidity";;;;\
fhem ('set myCCU var CUxD.CUX9002001:1.SET_TEMPERATURE ' .$temperature);;\
fhem ('set myCCU var CUxD.CUX9002001:1.SET_HUMIDITY ' .$humidity);;\
}

Otto123

Das Suchmuster ist "nicht schön" prüf mal:
{notifyRegexpCheck('(Tmp_T2.*)')}
das belastet das System unnötig.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

JueFi

Sorry bin nicht so fit.

Statt
define nt.Tmp_T2 notify (Tmp_T2.*) {\
soll ich
define nt.Tmp_T2 {notifyRegexpCheck('(Tmp_T2.*)')} {\
probieren ?

Nobbynews

#6
Zitat von: JueFi am 05 November 2022, 11:03:47
define nt.Tmp_T2 {notifyRegexpCheck('(Tmp_T2.*)')} {\
probieren ?
Nein, das war so nicht gemeint.
Du solltest das in der Kommandozeile von FHEM schreiben. Die Ausgabe zeigt Dir dann an, auf welche devices Dein notify reagiert.
Zur Probe kannst Du ja mal eingeben:
{notifyRegexpCheck('(Tmp_T2:temperatue:.*)')}

Die Verbesserung bzw. das Schärfen des Triggers meinte Otto und zwar zu:
define nt.Tmp_T2 notify Tmp_T2:temperature:.*)

Otto123

Zitat von: JueFi am 05 November 2022, 11:03:47
Sorry bin nicht so fit.
nein! Du sollst diesen Code mal in die FHEM Kommandozeile werfen und die Ausgabe versuchen zu verstehen.
Vor allem ist Dein Suchmuster nicht optimal! Die Klammern sind so unnütz und es es fehlt die Trennung Gerätename:Event.
https://fhem.de/commandref_modular_DE.html#notify
Dein Suchmuster lässt das notify auf jeden Event triggern!

Und ich will Dir zeigen wie Du fitter wirst, also lies bitte den Link oben zum Wiki und verstehe ihn.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

CoolTux

{notifyRegexpCheck('TMP_":temperatue:.*|TMP_2:humidity:.*')}

Bei Dir dann

define nt.Tmp_T2 notify TMP_2:temperatue:.*|TMP_2:humidity:.*

Finde ich aber zu viel geschrieben. Geht auch anders.

define nt.Tmp_T2 notify TMP_T2:(temperature|humidity):.*
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

JueFi

Vielen Dank für eure Hilfe

{notifyRegexpCheck('(Tmp_T2.*)')}
in der Commandozeile ergibt diese Ausgabe
(Tmp_T2.*): devspec Tmp_T2 (OK)
reagiert also auf Änderungen im Device Tmp_T2, genau das will ich ja.

Wenn ich
define nt.Tmp_T2 notify Tmp_T2:temperature:.*)
verwende, wird ja eine Änderung in "Humidity" nicht getriggert. Dann müsste ich ein zweites Notify aufsetzen, denke ich. Bringt das wirklich einen Vorteil ?
EDIT: Oder so wie CoolTux vorschlägt, das klingt gut.

ZitatUnd ich will Dir zeigen wie Du fitter wirst, also lies bitte den Link oben zum Wiki und verstehe ihn.
Gelesen habe ich, verstanden ... leider bei weitem nicht.

CoolTux

Schau Dir bitte noch mal mein Post eins über Deinen letzten an
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Nobbynews

#11
Zitat von: JueFi am 05 November 2022, 11:49:41
verwende, wird ja eine Änderung in "Humidity" nicht getriggert. Dann müsste ich ein zweites Notify aufsetzen, denke ich. Bringt das wirklich einen Vorteil ?
Nö, das geht auch in einem notify:
define nt.Tmp_T2 notify Tmp_T2:(temperature|humidity):.*


Edit: CoolTux war schneller.....

Otto123

Das wird der Thread der schludrigen Klammern  ::) ;D
Also das ist die Variante für schreibfaule
define nt.Tmp_T2 notify Tmp_T2:(temperature|humidity):.* {}
Soweit ich weiß, ist die Variante besser fürs System:
define nt.Tmp_T2 notify Tmp_T2:temperature:.*|Tmp_T2:humidity:.* {}

Die gewünschten Werte stehen dann auch schon im $EVENT ($EVTPART1) man kann sich ReadingsNum() sparen. Mit etwas Geschick kann man den Code auch generalisieren. Der erste Ansatz  im ersten Beitrag abgewandelt:
fhem ('set myCCU var CUxD.CUX9002001:1.SET_'.uc($EVTPART0).' '.$EVTPART1)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

JueFi

Wie es aussieht ist die Realität leider doch anders ...

Es kommen nur diese Events von den Thermometern
Events (Filter: Tmp_T2.*)
2022-11-05 16:53:58 TRX_WEATHER Tmp_T2 T: 17.8 H: 56 BAT: ok
2022-11-05 16:54:39 TRX_WEATHER Tmp_T2 T: 17.9 H: 57 BAT: ok
2022-11-05 16:56:01 TRX_WEATHER Tmp_T2 T: 18 H: 56 BAT: ok
2022-11-05 16:57:23 TRX_WEATHER Tmp_T2 T: 18.2 H: 60 BAT: ok
2022-11-05 16:58:04 TRX_WEATHER Tmp_T2 T: 19.3 H: 71 BAT: ok
2022-11-05 16:58:45 TRX_WEATHER Tmp_T2 T: 19 H: 70 BAT: ok
2022-11-05 16:59:26 TRX_WEATHER Tmp_T2 T: 19.3 H: 78 BAT: ok
2022-11-05 17:00:07 TRX_WEATHER Tmp_T2 T: 19.3 H: 80 BAT: ok
2022-11-05 17:00:48 TRX_WEATHER Tmp_T2 T: 19.2 H: 79 BAT: ok
2022-11-05 17:01:29 TRX_WEATHER Tmp_T2 T: 19.1 H: 76 BAT: ok
2022-11-05 17:02:10 TRX_WEATHER Tmp_T2 T: 19 H: 75 BAT: ok
2022-11-05 17:02:51 TRX_WEATHER Tmp_T2 T: 19 H: 72 BAT: ok
2022-11-05 17:03:32 TRX_WEATHER Tmp_T2 T: 18.9 H: 71 BAT: ok
2022-11-05 17:04:13 TRX_WEATHER Tmp_T2 T: 18.9 H: 69 BAT: ok


D.h. ja dann, ich muss den Notify auf notify Tmp_T2.* setzen, wenn ich das richtig sehe.

Trotzdem vielen Dank für Eure Mühe

Viele Grüße

Jürgen

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz