Hallo,
kann das funktionieren?
define myNotify_Klima_AN notify Stromzaehler:noPower2:.true && COE_Node_cmi_1.Temp.Aussen > 28 set MQTT2_gosund_klima on
Grüße Josef
Nein, das kann so nicht funktionieren.
Und wenn du gelöste Threads weiter schließt, erkläre ich dir auch nicht warum!
Hallo Josef,
nö das wird so nix :)
Das ist der Trigger Stromzaehler:noPower2:.true der steht allein. Ob der stimmt kann ich nicht sagen. Sieht aber gut aus.
Das ist Deine Bedingung, dafür musst Du nach Perl wechseln COE_Node_cmi_1.Temp.Aussen > 28 -> {if (ReadingsNum("COE_Node_cmi_1.Temp.Aussen","COE_Node_cmi_1.Temp.Aussen",0) > 28) {}}
Leider kann ich nicht erkennen was Geräte Name und was Reading ist. Musst Du ergänzen/ändern.
Das ist der Ausführungsteil set MQTT2_gosund_klima on , der wird gehen.
Jetzt packst Du alles zusammen: {if () {fhem("set MQTT2_gosund_klima on")}}
Gruß Otto
Hallo Otto,
na das dachte ich mir schon dass das so nix wird ::)
verstehe ich dich richtig wenn ich den Perl Aufruf wie folgt in den String packe?
define myNotify_Klima_AN notify Stromzaehler:noPower2:.true {if (ReadingsNum("COE_Node_cmi_1.Temp.Aussen","COE_Node_cmi_1.Temp.Aussen",0) > 28) {}} set MQTT2_gosund_klima on
Grüße Josef
Nein da verstehst Du mich falsch. :o
1. Fehler
Leider kann ich nicht erkennen was Geräte Name und was Reading ist. Musst Du ergänzen/ändern.
2. Fehler
Jetzt packst Du alles zusammen: {if (hier muss deine Bedingung rein) {fhem("set MQTT2_gosund_klima on")}}
Vielleicht helfen diese Links:
https://wiki.fhem.de/wiki/Klammerebenen
https://wiki.fhem.de/wiki/If-condition
Gruß, Joachim
Guten Morgen,
hier meine Geräte:
Stromzähler:
Internals:
DEF /dev/ttyUSB0@9600,8,N,1 SML
DeviceName /dev/ttyUSB0@9600,8,N,1
FD 12
FUUID 5e2d405a-f33f-20ab-ab6c-a5c257e2dc727b4b
MeterType SML
NAME Stromzaehler
NR 91
PARTIAL
STATE G.Verbr: 4169.32 - AKTUELL: 77 - G.Einsp: 2626.31 - GESTERN: 0.00
TYPE OBIS
READINGS:
2020-04-16 07:17:31 1.0.0.2.0.255 1.02.007
2020-04-16 07:17:31 1.0.14.7.0.255 49.9
2020-04-16 07:17:31 1.0.81.7.1.255 239
2020-04-16 07:17:31 1.0.81.7.15.255 290
2020-04-16 07:17:31 1.0.81.7.2.255 119
2020-04-16 07:17:31 1.0.81.7.26.255 254
2020-04-16 07:17:31 1.0.81.7.4.255 275
2020-04-16 07:17:31 1.0.96.5.0.255 1884420
2020-04-16 07:17:31 1.0.96.50.1.255 HLY
2020-04-16 07:17:31 1.0.96.90.2.255 A01A
2020-04-16 06:53:31 1.240.27.27.27.255 0
2020-04-13 15:51:22 Eigenverbrauch 1932.62
2020-04-16 07:17:31 STROMBEZUG.av 65.429
2020-04-16 07:17:31 current_L1 0.94
2020-04-16 07:17:31 current_L2 1.24
2020-04-16 07:17:31 current_L3 0.71
2020-04-16 07:17:31 einsp_kwh 2626.308
2020-04-16 07:17:31 noPower false
2020-04-16 07:17:31 noPower2 false
2020-04-16 07:17:31 power 77
2020-04-15 21:28:26 state opened
2020-04-16 07:17:31 total_consumption 4169316.5
2020-04-16 07:17:31 total_feed 2626308
2020-04-16 07:17:31 verbr_kwh 4169.3165
2020-04-16 07:17:31 voltage_L1 228.1
2020-04-16 07:17:31 voltage_L2 227.8
2020-04-16 07:17:31 voltage_L3 227.5
helper:
BUFFER
EoM 1
SPEED 5
SPEED2 5
TRIGGERTIME 1586978906.72929
Channels:
DEVICES:
60
directions:
Attributes:
event-on-change-reading .*
event-on-update-reading total_consumption, einsp_kwh, STROMBEZUG.av, power, total_feed, noPower2, noPower
icon measure_power_meter
interval 60
room Stromzaehler
stateFormat {sprintf("G.Verbr: %.2f - AKTUELL: %d - G.Einsp: %.2f - GESTERN: %.2f", ReadingsVal($name,"verbr_kwh",0), ReadingsVal($name,"power",0), ReadingsVal($name,"einsp_kwh",0), ReadingsVal($name,"day_last",0))}
userReadings STROMBEZUG.av {movingAverage("Stromzaehler","power",300)}, einsp_kwh {ReadingsVal("Stromzaehler","total_feed",0)/1000}, verbr_kwh {ReadingsVal("Stromzaehler","total_consumption",0)/1000}, noPower:STROMBEZUG.av.* {(ReadingsNum($name,"STROMBEZUG.av",100) < -300 ? 'true' : 'false')}, noPower2:STROMBEZUG.av.* {(ReadingsNum($name,"STROMBEZUG.av",100) < -3000 ? 'true' : 'false')},
Heizungssteuerung:
Internals:
DEF 1
FUUID 5e1983ee-f33f-20ab-f849-19c942d7ad92c253
IODev cmi
LASTInputDev cmi
MSGCNT 474
NAME COE_Node_cmi_1
NR 79
STATE VL: 35.9 - RL: 40.0 - WW: 56.2 - P.Solar: 0
TYPE COE_Node
cmi_MSGCNT 474
cmi_TIME 2020-04-16 07:20:27
READINGS:
2020-04-15 18:40:57 Misch.Hzkr1-auf 0
2020-04-10 09:45:34 Misch.Hzkr1-zu 0
2020-04-15 07:25:37 Misch.Hzkr2-auf 0
2020-04-10 09:45:34 Misch.Hzkr2-zu 0
2020-04-15 20:00:27 Pumpe-Hzkr1 0
2020-04-15 08:07:27 Pumpe-Hzkr2 0
2020-04-15 18:49:37 Pumpe-Solar 0
2020-04-16 07:19:51 SolarAN false
2020-04-16 07:19:51 T.Heizkr.VL1 35.9
2020-04-16 06:54:51 T.Heizkr.VL2 35.2
2020-04-16 07:19:51 T.Kollektor -.4
2020-04-16 07:02:34 THeizkr.RL 40.0
2020-04-16 07:02:34 TSP.mitte 53.4
2020-04-16 07:17:34 TSP.unten 45.6
2020-04-16 07:12:25 TSolar-RL 37.7
2020-04-16 06:57:25 TSolar-VL 35.8
2020-04-16 07:19:51 TWW.Puffer 56.2
2020-04-16 07:12:34 Temp.Aussen 2.7
2020-04-15 17:47:36 Vent.Solar 0
2020-04-15 21:28:26 state defined
helper:
CAN_NODE_ID 1
Attributes:
readingsConfigAnalog 1=T.Kollektor 2=T.Heizkr.VL1 3=T.Heizkr.VL2 4=TWW.Puffer 5=TSP.mitte 6=TSP.unten 7=Temp.Aussen 8=THeizkr.RL 9=TSolar-RL 10=TSolar-VL
readingsConfigDigital 1=Pumpe-Solar 2=Vent.Solar 3=Misch.Hzkr1-auf 4=Misch.Hzkr1-zu 6=Pumpe-Hzkr1 7=Pumpe-Hzkr2 8=Misch.Hzkr2-auf 9=Misch.Hzkr2-zu
room Heizung
stateFormat VL: T.Heizkr.VL1 - RL: THeizkr.RL - WW: TWW.Puffer - P.Solar: Pumpe-Solar
userReadings SolarAN:T.Kollektor.* {(ReadingsNum($name,'T.Kollektor',0) > 60 && ReadingsNum($name,'Pumpe-Solar',0) == 1 && ReadingsNum($name,'TSP.mitte',0) > 50 && ReadingsNum($name,'Temp.Aussen',0) > 10 ? 'true' : 'false')}
MQTT2_gosund_klima ist soweit klar denke ich..
Und dein Frage ist jetzt: Was ist Gerätename und was ist Readingsname?
Der Syntax für die Abfrage ist so, findet man auch in der Doku.
ReadingsNum("Gerätename ","Readingsname",Defaultwert)
also den Gerätenamen findet man hier, da steht der Name hinter NAME:
ZitatNAME COE_Node_cmi_1
Und Readings hast Du reichlich, da setht der Name jeweils zwischen Zeitstempel und Wert :)
ZitatREADINGS:
2020-04-15 18:40:57 Misch.Hzkr1-auf 0
2020-04-10 09:45:34 Misch.Hzkr1-zu 0
2020-04-15 07:25:37 Misch.Hzkr2-auf 0
2020-04-10 09:45:34 Misch.Hzkr2-zu 0
2020-04-15 20:00:27 Pumpe-Hzkr1 0
2020-04-15 08:07:27 Pumpe-Hzkr2 0
2020-04-15 18:49:37 Pumpe-Solar 0
2020-04-16 07:19:51 SolarAN false
2020-04-16 07:19:51 T.Heizkr.VL1 35.9
2020-04-16 06:54:51 T.Heizkr.VL2 35.2
2020-04-16 07:19:51 T.Kollektor -.4
2020-04-16 07:02:34 THeizkr.RL 40.0
2020-04-16 07:02:34 TSP.mitte 53.4
2020-04-16 07:17:34 TSP.unten 45.6
2020-04-16 07:12:25 TSolar-RL 37.7
2020-04-16 06:57:25 TSolar-VL 35.8
2020-04-16 07:19:51 TWW.Puffer 56.2
2020-04-16 07:12:34 Temp.Aussen 2.7
2020-04-15 17:47:36 Vent.Solar 0
2020-04-15 21:28:26 state defined
Der Trigger vom Notify lässt sich aus dem list des Gerätes nur wage bestimmen. Da ist einzig der Eventmonitor ausschlaggebend. Aber prinzipiell sieht der trigger so aus als könnte er funktionieren.
Wie das mit dem Eventmonitor und notify geht steht hier:https://wiki.fhem.de/wiki/Notify
Gruß Otto
die Lösung dürfe wohl das hier sein:
define myNotify_Klima_AN notify Stromzaehler:noPower2:.true { if (ReadingsNum("COE_Node_cmi_1.Temp.Aussen","COE_Node_cmi_1.Temp.Aussen",0) > 28 { fhem ("set MQTT2_gosund_klima on") } }
Danke an BetaUser!
Zitat von: jbraeu am 16 April 2020, 10:11:54
Danke an BetaUser!
Der hatte in dem Thread ja auch die entscheidenden Hinweise :-*
Und dein ReadingsNum ist nach wie vor Schrott - aber ich habe fertig. ::)
Und ein finaler Tipp: Josef: Hab den Mut, probier es einfach aus und lies die Fehler. Auch das hilft!
Trotzdem, dass es "gelöst" ist (wobei ich Otto zustimmen muss: so ganz wird das [noch] nicht tun) noch ein paar Anmerkungen (die nicht direkt mit dem Notify zu tun haben, sondern eher "Gesamtablauf-technischer" Natur sind):
ist wahrsch. (bzw. evtl.) nicht (so) relevant aber wenn z.B. mit Funk, dann kann man nur hoffen, dass dein "noPower2" bzw. das zugehörige Device entsprechend wenig "redseelig" ist (Stichwort: event-on-change-reading), sonst wird ja immer wieder eingeschaltet (gut bei nicht-Funk vielleicht nicht relevant, trotzdem)...
wenn du "Redseeligkeit" brauchst, z.B. wegen Loggen etc., dann gibt es beim Schalten noch die Möglichkeit mit Filter zu arbeiten oder anders zu prüfen, ob nicht schon an ist ;)
und: wer schaltet aus!?
und: wenn der (oder das, könnte ja ein weiteres Notify sein!? Oder schaltest du nur manuell aus!?) der ausschalten will/ausschaltet dann vom "Einschalt-Notify" immer wieder "überstimmt" wird!?
-> auch mal Stichwort "Hysterese"...
Ich habe z.B. einen Luftentfeuchter den ich autom. ein-/ausschalte aber eben mit Hysterese, damit der nicht anfängt "ständig" an/aus zu gehen...
Aber wie geschrieben: das nur am Rande...
Gruß, Joachim
Zitat von: Otto123 am 16 April 2020, 10:16:10
Der hatte in dem Thread ja auch die entscheidenden Hinweise :-*
Und dein ReadingsNum ist nach wie vor Schrott - aber ich habe fertig. ::)
Und ein finaler Tipp: Josef: Hab den Mut, probier es einfach aus und lies die Fehler. Auch das hilft!
Ich hatte in einem anderen Thread das identische Problem was ich auch erst später bemerkt hatte und Beta User hatte die Lösung. Nix für Ungut! Danke für deine Hilfe !
@MadMax-FHEM: ich teste das jetzt mal ob es praxistauglich ist.. Hab Urlaub und Zeit zum spielen:)
wenn es darum geht mehrere zustände mit priorisierung zu kombinieren ist vielleicht auch das hier: https://forum.fhem.de/index.php/topic,110165.msg1041882.html#msg1041882 (https://forum.fhem.de/index.php/topic,110165.msg1041882.html#msg1041882) etwas für dich.
Ich wollte keine Dank - aber ich wollte Dir sagen was passiert wenn man mehrere Fragen im Kopf hat, mehrere Threads parallel öffnet und dann der eigene Kopf durcheinander gerät. Und denen, die Dir helfen wollen machst Du es damit auch nicht gerade leicht. Vor allem nicht mit kurzen ungetesteten Antworten. ::)
Ich weis Otto, mir gehts genauso.. sorry wollt dir nicht auf die Füße treten - du hast mir schon oft geholfen und dafür bin ich nach wie vor sehr dankbar!
Die Perl Syntax kann einen aber auch in den Wahnsinn treiben sobald es ein bisschen umfänglicher wird..
@justme1968: das sieht sehr vielversprechend aus, das zieh ich mir in Ruhe rein und gebe bescheid. Danke