[Gelöst] Notify für Kaffeemaschine

Begonnen von Micky, 09 September 2019, 16:36:19

Vorheriges Thema - Nächstes Thema

Micky

Hi,

da es mittels DOIF nicht so wirklich geklappt hat, versuche ein Notify zu erstellen.

Es geht im Prinzip darum wenn ich die Kaffeemaschine per Taster anschalte, sollte die Kaffeemaschine dann nach ca. 30 min. ausgeschaltet werden.

Hab es testweise auf 30 Sek gestellt, aber das Notify geht den Zweig Befehl sofort durch ohne Pause bzw. Sleep.

Habe bestimmt einige Fehler drinnen.


Kaffeemaschinen_Steckdose:power:.* {
     if (ReadingsNum("Kaffeemaschinen_Steckdose", "power", 0) > 1800 ) {
          fhem("set Pushnachricht msg 'Kaffeemaschine problem' 'TEST test test {(localtime)}''Micky-Iphone' 0 ''");
     }
     if (ReadingsNum("Kaffeemaschinen_Steckdose", "power", 0) > 10 && ReadingsVal("Kaffeemaschine", "state", "off") eq "on" && ReadingsVal("rgr_Residents", "state", "absent") eq "home"){
          fhem("set Pushnachricht msg 'Kaffeemaschine 1tes mal an' 'Kaffemaschine angeschaltet per KNOPF {(localtime)}''Micky-Iphone' 0 ''");
  fhem(";;sleep 30;;set Kaffeemaschine off");
  fhem("set Kaffeemaschine on;;sleep 30");
  fhem("set Kaffeemaschine off;;sleep 1");
  fhem("set Pushnachricht msg 'Kaffeemaschine autoausschaltung' 'Kaffemaschine wird ausgeschaltet {(localtime)}''Micky-Iphone' 0 ''");
     }
if (ReadingsNum("Kaffeemaschinen_Steckdose", "power", 0) > 10 && ReadingsVal("Kaffeemaschine", "state", "off") eq "off" && ReadingsVal("rgr_Residents", "state", "absent") eq "home") {
          fhem("set Pushnachricht msg 'Kaffeemaschine Manuel ein' 'Kaffemaschine wird angeschaltet per APP {(localtime)}''Micky-Iphone' 0 ''");
  fhem("set Kaffeemaschinen_Steckdose off;;sleep 2");
  fhem("set Kaffeemaschine on;;sleep 30");
  fhem("set Kaffeemaschine off;;sleep 1");
  fhem("set Pushnachricht msg 'Kaffeemaschine autoausschaltung Manuel' 'Kaffemaschine wird ausgeschaltet {(localtime)}''Micky-Iphone' 0 ''");
     }
}



ich glaub die sleep greifen aber nicht, evtl. liegt es an den doppelten " ;; "

rabehd

ZitatEs geht im Prinzip darum wenn ich die Kaffeemaschine per Taster sollte die Kaffeemaschine dann nach ca. 30 min. ausgeschaltet werden hab es testweise auf 30 Sek gestellt, aber das Notify geht jeden Befehl sofort durch.

Verstehe ich nicht! Vielleicht helfen ein paar Kommas und Satzenden mehr.
Auch funktionierende Lösungen kann man hinterfragen.

Micky

Sorry habs editiert.

Hoffe jetzt ist es etwas verständlicher.

Beta-User

Sowas sollte man nicht coden:
fhem("set Kaffeemaschine on;;sleep 30");
fhem("set Kaffeemaschine off;;sleep 1");
fhem("set Pushnachricht msg 'Kaffeemaschine autoausschaltung' 'Kaffemaschine wird ausgeschaltet {(localtime)}''Micky-Iphone' 0 ''");


sleep am Ende akzeptiert FHEM nicht mehr, da es FHEM wirklich komplett blockieren würde.

Was "sleep" (der FHEM-Befehl!) eigentich macht, ist einen Internaltimer anzulegen, und die Befehle zeitversetzt abzusetzen. Vermutlich willst du eher sowas erreichen:
fhem("set Kaffeemaschine on;;sleep 30;;set Kaffeemaschine off;;sleep 1;;set Pushnachricht msg 'Kaffeemaschine autoausschaltung' 'Kaffemaschine wird ausgeschaltet {(localtime)}''Micky-Iphone' 0 ''");
Die doppelten ;; sind übrigens notwendig (und bei weiteren Verschachtelungen in jeder Ebene weiter zu verdoppeln), damit später erkennbar ist, in welche Ebene das gehört. Siehe auch cref zu sleep mw. Links.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Micky

genau,

aber irgendwie bekomm ich den ganzen Befehl als Push Nachricht gesendet, hab folgendes probiert:

if (ReadingsNum("Kaffeemaschinen_Steckdose", "power", 0) > 10 && ReadingsVal("Kaffeemaschine", "state", "off") eq "on" && ReadingsVal("rgr_Residents", "state", "absent") eq "home"){
          fhem("set Pushnachricht msg 'Kaffeemaschine 1tes mal an' 'Kaffemaschine wird angeschalter für 30 min {(localtime)}''Micky-Iphone' 0 '';;sleep 30;;set Kaffeemaschine off;;sleep 30;;set Kaffeemaschine off;;set Pushnachricht msg 'Kaffeemaschine autoausschaltung' 'Kaffemaschine wird ausgeschaltet {(localtime)}''Micky-Iphone' 0 ''");
     }

   

Beta-User

Hmm, dann sieht mir das nach einem Problem aus dem msg-Bereich aus.

Kannst du ggf. erst mal so entzerren (ungetestet...):
if (ReadingsNum("Kaffeemaschinen_Steckdose", "power", 0) > 10 && ReadingsVal("Kaffeemaschine", "state", "off") eq "on" && ReadingsVal("rgr_Residents", "state", "absent") eq "home"){
  fhem("set Pushnachricht msg 'Kaffeemaschine 1tes mal an' 'Kaffemaschine wird angeschalter für 30 min {(localtime)}''Micky-Iphone' 0 ''");
  fhem("sleep 30;;set Kaffeemaschine off;;sleep 30;;set Kaffeemaschine off;;set Pushnachricht msg 'Kaffeemaschine autoausschaltung' 'Kaffemaschine wird ausgeschaltet {(localtime)}''Micky-Iphone' 0 ''");
}
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Wernieman

#6
Kannst Du nicht anstatt der sleep ein "at" setzen?

Also mir ist die Ganze Konstruktion etwas "unübersichtlich" ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Micky

Hi,

im notify geht jetzt garnix mehr

Kaffeemaschinen_Steckdose:power:.* {
     if (ReadingsNum("Kaffeemaschinen_Steckdose", "power", 0) > 1 ) {
          fhem("set Pushnachricht msg 'Kaffeemaschine problem' 'Kaffemaschine wird ausgeschaltet {(localtime)}''Micky-Iphone' 0 ''");

}



oder


Kaffeemaschinen_Steckdose:power:.* {
     if (ReadingsNum("Kaffeemaschinen_Steckdose", "power", 0) > 1 ) {
          fhem("set Kaffeemaschine off");
}



liegt also nicht an der Pushnachricht.

notify State ist aktiv.

Hat jemand eine Idee

Danke

Otto123

Zitatnotify State ist aktiv.
Wie jetzt? state -> active und STATE auch? oder steht im STATE eine Zeit?
Siehst Du denn Events im Eventmonitor mit diesem Filter? Kaffeemaschinen_Steckdose:power:.*

Du kannst auch Logeinträge einbauen: -> https://wiki.fhem.de/wiki/Notify

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

Micky

#9
Abend Otto,

ne ich meinte

notify_Kaffeemaschine activ

also das mein notify aktiv ist allerdings passiert nix.

notify_Kaffeemaschine 2019-09-09 23:38:20

ja, im event Monitor ist power als reading und wird ausgegeben :


2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose icon_hash:
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose latitude: 50.1384
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose led_off: 0
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose longitude: 8.6844
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose mac: D8:0D:17:3E:75:A0
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose model: HS110(EU)
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose next_action: HASH(0x4ec3380)
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose oemId: 1998A14DAA86E4E001FD7CAF42868B5E
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose on_time: 703
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose relay_state: 1
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose rssi: -76
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose sw_ver: 1.5.4 Build 180815 Rel.121440
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose type: IOT.SMARTPLUGSWITCH
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose updating: 0
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose on
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose decode_json: ok
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose current: 0.03
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose err_code: 0
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose power: 0.833
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose total: 2.268
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose voltage: 233.32
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose decode_json: ok
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose daily_total: 0.646
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose monthly_total: 2.449
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose daily_average: 612.25
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose watt: 0.833
2019-09-09 23:28:11 TPLinkHS110 Kaffeemaschinen_Steckdose energy: 0.646




Otto123

naja Du hast jetzt meine Frage nicht beantwortet:
Steht im state und im STATE active oder steht im STATE eine Zeit?

Wenn im STATE active steht, hat das notify nie ausgelöst. Ansonsten steht dort die Zeit des letzten Auslösetriggers.

Du hast auch nicht das regEx im Eventmonitor getestet sondern einfach nur Kaffeemaschinen_Steckdose.*  :-X

Aber das regEx sollte eigentlich passen, wenn mit dem was Du im Eventmonitor gezeigt hast und dem regEx  das notify nicht auslösen sollte weiß ich nicht was faul ist.

Das ReadingsNum("Kaffeemaschinen_Steckdose", "power", 0) kannst Du komplett ersetzen durch $EVTPART1 der Wert kommt ja durch den Event schon rein. Ein extra Auslesen kostet nur zusätzlich Energie :)

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

Micky

Hallo Otto,

im state steht erst activ, und nach ca 1/2 min ein Datum und eine Zeit, steht auch im Oberen Post von mir.

Aber irgendwie greift die Bedingung nicht.

rabehd

Dann bau doch ein else in Dein notify, welches Dir einen Eintrag ins Logfile schreibt.
Dann weißt Du, dass notify wird ausgelöst , aber Deine if-Bedingung trifft nicht.
Auch funktionierende Lösungen kann man hinterfragen.

Otto123

Hallo Micky,

Zitat von: Micky am 10 September 2019, 14:31:32
im state steht erst activ, und nach ca 1/2 min ein Datum und eine Zeit, steht auch im Oberen Post von mir.
Dann hast Du ein anderes FHEM als ich.  :-\
Nenn mich Krümelkacker  ;) aber bei mir steht in keinem notify im state ein Datum:

ALLE_ROLLOS_         2019-08-25 22:02:43   state           active
                                           STATE           active
FB12_notify_2        2019-08-25 22:02:44   state           active
                                           STATE           2019-09-08 22:00:26
FHEMinit             2019-08-25 22:02:43   state           active
                                           STATE           2019-08-25 22:03:02
FensterWZR_notify_1  2019-08-25 22:02:59   state           active
                                           STATE           2019-09-01 01:02:47
MyNotify10           2019-08-25 22:02:37   state           active
                                           STATE           active
WohnzimmerGoSleep    2019-08-25 22:02:43   state           disabled
                                           STATE           disabled
initialUsbCheck      2019-08-25 22:02:33   state           disabled
                                           STATE           disabled
n_wetter             2019-08-25 22:03:02   state           inactive
                                           STATE           inactive
nty_Aktor1           2019-08-25 22:02:44   state           active
                                           STATE           active
nty_Aktor2           2019-08-25 22:02:44   state           active
                                           STATE           active
nty_AnrufKlingelt    2019-08-25 22:02:36   state           active
                                           STATE           2019-09-09 12:44:18
nty_GutenMorgen      2019-08-25 22:03:02   state           inactive
                                           STATE           inactive
nty_HausLicht        2019-08-25 22:02:42   state           active
                                           STATE           2019-09-10 10:55:25
nty_Klingel          2019-08-25 22:02:43   state           active
                                           STATE           active
nty_Klingel1         2019-08-25 22:03:02   state           inactive
                                           STATE           inactive
nty_KlingelLong      2019-08-25 22:02:43   state           active
                                           STATE           active
nty_ModRss           2019-08-25 22:02:44   state           active
                                           STATE           active
nty_PIRFront         2019-08-25 22:02:36   state           disabled
                                           STATE           disabled
nty_PIRFront1        2019-08-25 22:02:44   state           disabled
                                           STATE           disabled
nty_PIRTest          2019-08-25 22:03:02   state           inactive
                                           STATE           inactive
nty_RolloLueftungSZ  2019-08-25 22:02:43   state           active
                                           STATE           2019-09-09 23:24:10
nty_RolloRauf        2019-08-25 22:02:36   state           active
                                           STATE           2019-08-30 09:04:33
nty_RolloRunter      2019-08-25 22:02:36   state           active
                                           STATE           active
nty_SW81             2019-08-25 22:02:43   state           active
                                           STATE           2019-09-10 10:54:52
nty_Schalter         2019-08-25 22:02:44   state           active
                                           STATE           active
nty_SonosPlayerWZStop 2019-08-25 22:02:43   state           active
                                           STATE           2019-09-09 16:43:21
nty_Test1            2019-08-25 22:02:43   state           active
                                           STATE           active
nty_Test2            2019-08-25 22:02:43   state           active
                                           STATE           active
nty_Test3            2019-08-25 22:02:43   state           disabled
                                           STATE           disabled
nty_Test5            2019-08-25 22:03:02   state           inactive
                                           STATE           inactive
nty_Testmail         2019-09-10 11:43:19   state           active
                                           STATE           2019-09-10 11:43:57
nty_TorAuf           2019-08-25 22:02:43   state           active
                                           STATE           2019-09-10 10:54:51
nty_TorZu            2019-08-25 22:02:43   state           active
                                           STATE           2019-09-06 10:36:34
nty_battery          2019-08-25 22:02:43   state           active
                                           STATE           2019-09-09 19:06:51
ser2netUart_notify_1 2019-08-25 22:03:02   state           inactive
                                           STATE           inactive


Dann mach doch aus deinem notify mal dies:
Kaffeemaschinen_Steckdose:power:.* {Log 1, "Das Device $NAME hat ausgeloest, der Event sah so aus: $EVENT"}

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

Micky

Guten Abend,

notify_Kaffeemaschine 2019-09-10 19:01:59

Im Log steht folgendes : "2019.09.10 19:02:59 3: notify_Kaffeemaschine return value: Unknown command {Log, try help."


2019.09.10 19:02:59 3: notify_Kaffeemaschine return value: Unknown command {Log, try help.
2019.09.10 19:02:59 3: TPLinkHS110: Kaffeemaschinen_Steckdose Get end
2019.09.10 19:03:29 3: TPLinkHS110: Kaffeemaschinen_Steckdose Get called. Relay state: 1, RSSI: -72
2019.09.10 19:03:29 2: TPLinkHS110: Kaffeemaschinen_Steckdose Realtime data updated
2019.09.10 19:03:29 3: TPLinkHS110: Kaffeemaschinen_Steckdose Device is an HS110. Got extra realtime data: 0.815 Watt, 231.859 Volt, 0.029 Ampere
2019.09.10 19:03:29 3: TPLinkHS110: Kaffeemaschinen_Steckdose Updating daystat. Data: {"emeter":{"get_daystat":{"day_list":[{"year":2019,"month":9,"day":6,"energy_wh":377},{"year":2019,"month":9,"day":7,"energy_wh":964},{"year":2019,"month":9,"day":8,"energy_wh":462},{"year":2019,"month":9,"day":9,"energy_wh":707},{"year":2019,"month":9,"day":10,"energy_wh":16}],"err_code":0}}}
2019.09.10 19:03:29 2: TPLinkHS110: Kaffeemaschinen_Steckdose Daystat updated
2019.09.10 19:03:29 3: TPLinkHS110: Kaffeemaschinen_Steckdose Updating readings
2019.09.10 19:03:29 3: notify_Kaffeemaschine return value: Unknown command {Log, try help.
2019.09.10 19:03:29 3: TPLinkHS110: Kaffeemaschinen_Steckdose Get end



list notify

Internals:
   .COMMAND   {Log 1, "Das Device $NAME hat ausgeloest, der Event sah so aus: $EVENT"}






   DEF        Kaffeemaschinen_Steckdose:power:.* {Log 1, "Das Device $NAME hat ausgeloest, der Event sah so aus: $EVENT"}






   FUUID      5d764244-f33f-6e03-adcf-e978de8d190175dd
   NAME       notify_Kaffeemaschine
   NOTIFYDEV  Kaffeemaschinen_Steckdose
   NR         186
   NTFY_ORDER 50-notify_Kaffeemaschine
   REGEXP     Kaffeemaschinen_Steckdose:power:.*
   STATE      2019-09-10 19:04:59
   TRIGGERTIME 1568135099.72739
   TYPE       notify
   .attraggr:
   .attrminint:
   READINGS:
     2019-09-10 18:57:54   state           active
Attributes:
   room       Logik



Danke nochmal