Problem bei userReadings / Trigger

Begonnen von Cybers, 04 März 2021, 08:45:41

Vorheriges Thema - Nächstes Thema

Cybers

#15
Zitat von: Otto123 am 04 März 2021, 19:17:56
Besser !
buttons         pressed
Wahrscheinlich so? ;)
attr EnO_FEFA7CE5 userReadings Status:buttons:.* { ReadingsVal($name,"buttons",0) eq "pressed" ? fhem("setreading EnO_01879635 Status offen") : fhem("setreading EnO_01879635 Status geschlossen") }

Da das Reading ,,buttons" entweder released oder pressed ist, habe ich es in .* geändert.

Gerade gesehen, dass du es auch geändert hast.  :)

Danke noch mal! Jetzt muss ich nur noch hinbekommen, dass Homebridge den Status richtig anzeigt...
FHEM 6.3 auf Raspberry PI 4 / Smartvisu
Eltako Serie 14: FAM14, FGW14-USB, FSB14, FSR14-4x, FSR14-2x, FDG14, FTS14-EM in Kombination mit Jung F50 24V Tastern
1-Wire Temperatursensoren
aus alter Zeit:
Gott sei Dank nur noch 3 Homematic Jalousie- & Schaltaktoren! Wer sich mit Funk auskennt, legt Kabel

Otto123

"Perl ternärer Operator"  - ein gewaltiger Begriff für ein Fragezeichen und einen Doppelpunkt. Ich bin da kurz versunken als ich den das erste Mal las.  ;D
ternär -> "aus drei Grundeinheiten bestehend" - ah ja - Bedingung ? wahr : falsch

Es geht also gar nicht um Fragezeichen und Doppelpunkt  ;D ;D ;D

ZitatDa das Reading ,,buttons" entweder released oder pressed ist, habe ich es in .* geändert.
Ja das war mir nach dem Schreiben auch kurz klar geworden ;)
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

Cybers

jetzt habe ich dazu noch eine kleine Ergänzung. Ich möchte, daß zwei Befehle zeitverzögert nacheinander ausgeführt werden. Ich habe das Attribut wie folgt geändert:
attr EnO_FEFA7CE5 userReadings Status { ReadingsVal($name,"state",0) eq "pressed" ? fhem("setreading EnO_01879635 Status 0") : fhem("setreading EnO_01879635 Status 3;sleep 20;setreading EnO_01879635 Status 1") }
Leider klappt die Zeitverzögerung nicht. Was habe ich da falsch gemacht.
FHEM 6.3 auf Raspberry PI 4 / Smartvisu
Eltako Serie 14: FAM14, FGW14-USB, FSB14, FSR14-4x, FSR14-2x, FDG14, FTS14-EM in Kombination mit Jung F50 24V Tastern
1-Wire Temperatursensoren
aus alter Zeit:
Gott sei Dank nur noch 3 Homematic Jalousie- & Schaltaktoren! Wer sich mit Funk auskennt, legt Kabel

Otto123

So wie Du es schreibst ist es der Befehl in der Kommandozeile, da musst Du die ; doppelt schreiben!
attr EnO_FEFA7CE5 userReadings Status { ReadingsVal($name,"state",0) eq "pressed" ? fhem("setreading EnO_01879635 Status 0") : fhem("setreading EnO_01879635 Status 3;;sleep 20;;setreading EnO_01879635 Status 1") }
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

Cybers

Das hatte ich auch schon versucht. Dann wird folgendes in das Reading geschrieben:
3;sleep 20;setreading EnO_01879635 Status 1
FHEM 6.3 auf Raspberry PI 4 / Smartvisu
Eltako Serie 14: FAM14, FGW14-USB, FSB14, FSR14-4x, FSR14-2x, FDG14, FTS14-EM in Kombination mit Jung F50 24V Tastern
1-Wire Temperatursensoren
aus alter Zeit:
Gott sei Dank nur noch 3 Homematic Jalousie- & Schaltaktoren! Wer sich mit Funk auskennt, legt Kabel

TomLee

Bei mir klappt das setreading (in ein anderes Device, wie du es machst) genauso wie du es als erstes gezeigt hast mit nur einem ;

was { ReadingsVal($name,"state",'0') eq "on" ? fhem("setreading Pflanze1 test 0") : fhem("setreading Pflanze1 test 3;sleep 8;setreading Pflanze1 test 2") }

Zeig doch einfach mal ein List, vlt. entgeht dir irgendwas.

Otto123

Am Besten lists von beiden Devices!
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

Cybers

#22
In diesem Device soll das Reading ,,Status" gesetzt werden:
Internals:
   DEF        01879635
   ESP3_DestinationID FFFFFFFF
   ESP3_MSGCNT 13
   ESP3_PacketType 1
   ESP3_RSSI  -91
   ESP3_ReceivingQuality bad
   ESP3_RepeatingCounter 0
   ESP3_SubTelNum 3
   ESP3_TIME  2021-03-24 19:10:28
   FGW14_USB_MSGCNT 10
   FGW14_USB_TIME 2021-03-24 19:10:28
   FUUID      602e83fa-f33f-e675-eb0b-4cbb533670b88559
   IODev      ESP3
   LASTInputDev ESP3
   MSGCNT     13
   NAME       EnO_01879635
   NR         361
   NTFY_ORDER 50-EnO_01879635
   STATE      3;sleep 20;setreading EnO_01879635 Status 1
   TYPE       EnOcean
   CHANGED:
     Status: 3;sleep 20;setreading EnO_01879635 Status 1
   READINGS:
     2021-03-24 19:10:28   Status          3;sleep 20;setreading EnO_01879635 Status 1
     2021-03-24 19:10:28   buttons         pressed
     2021-03-24 19:10:28   channelB        BI
     2021-03-24 19:10:28   state           BI
   helper:
Attributes:
   IODev      ESP3
   alias      Garagentor
   devStateIcon open:fts_garage closed:fts_garage_door_100
   eventMap   on-for-timer:on-for-timer BI:off B0:on
   genericDeviceType garage
   group      Schaltaktor FSR61/8-24V UC
   homebridgeMapping CurrentDoorState=Status,values=1:CLOSED;0:OPEN TargetDoorState=Status,values=1:CLOSED;0:OPEN,cmds=OPEN:on;CLOSED:on
   icon       fts_garage
   manufID    00D
   room       Garage,Homekit,Schaltschrank
   stateFormat {ReadingsVal("EnO_01879635","Status",0)}
   subDef     FFD6FC81
   subType    switch
   switchMode pushbutton
   webCmd     :


dieses Device soll über das Attribut usereadings beim obigen Device das Reading ,,Status" setzen:

Internals:
   DEF        FEFA7CE5
   ESP3_DestinationID FFFFFFFF
   ESP3_MSGCNT 4
   ESP3_PacketType 1
   ESP3_RSSI  -85
   ESP3_ReceivingQuality good
   ESP3_RepeatingCounter 0
   ESP3_SubTelNum 3
   ESP3_TIME  2021-03-24 19:10:28
   FGW14_USB_MSGCNT 4
   FGW14_USB_TIME 2021-03-24 19:10:28
   FUUID      5c473d3a-f33f-e675-bdcb-dc8782697288bbe9
   IODev      ESP3
   LASTInputDev ESP3
   MSGCNT     4
   NAME       EnO_FEFA7CE5
   NR         600
   NTFY_ORDER 50-EnO_FEFA7CE5
   STATE      geschlossen
   TYPE       EnOcean
   OLDREADINGS:
   READINGS:
     2021-03-24 19:10:28   buttons         released
     2021-03-24 19:10:28   state           released
     2018-07-11 20:36:37   teach           RPS teach-in accepted EEP F6-10-00 Manufacturer: no ID
   helper:
Attributes:
   IODev      ESP3
   alias      Garagentor Sensor oben
   eep        F6-10-00
   eventMap   pressed:offen released:geschlossen
   manufID    00D
   model      Eltako_FTS12
   room       Garage
   stateFormat { if(ReadingsVal("EnO_FEFA7CE5","state",0) eq "pressed") {return "offen";} else {return "geschlossen";} }
   subType    switch
   teachMethod RPS
   userReadings Status { ReadingsVal($name,"state",0) eq "pressed" ? fhem("setreading EnO_01879635 Status 0") : fhem("setreading EnO_01879635 Status 3;sleep 20;setreading EnO_01879635 Status 1") }
   webCmd     :
FHEM 6.3 auf Raspberry PI 4 / Smartvisu
Eltako Serie 14: FAM14, FGW14-USB, FSB14, FSR14-4x, FSR14-2x, FDG14, FTS14-EM in Kombination mit Jung F50 24V Tastern
1-Wire Temperatursensoren
aus alter Zeit:
Gott sei Dank nur noch 3 Homematic Jalousie- & Schaltaktoren! Wer sich mit Funk auskennt, legt Kabel

Otto123

#23
zwei semikolon sind im List /DEF definitiv falsch!
Ich hatte von der Kommandozeile gesprochen!
Geht kürzer:
stateFormat Status
Zwei ee aber nur ein Semikolon ?
Zitat2021-03-24 09:53:48   Status          Unknown command slep, try help.
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

Cybers

das eine fehlende ,,e" war ein anfänglicher Schreibfehler. Da kam auch noch das Reading her. Ich habe in meinem letzten Post ein paar Dinge geändert. Vielleicht schaust du da noch mal rein. Mit einem ,,;" hatte ich ja auch schon, klapp leider nicht. Sleep wir nicht ausgeführt. Die Beiden Werte ,,3" und ,,1" werden direkt nacheinander gesetzt.
FHEM 6.3 auf Raspberry PI 4 / Smartvisu
Eltako Serie 14: FAM14, FGW14-USB, FSB14, FSR14-4x, FSR14-2x, FDG14, FTS14-EM in Kombination mit Jung F50 24V Tastern
1-Wire Temperatursensoren
aus alter Zeit:
Gott sei Dank nur noch 3 Homematic Jalousie- & Schaltaktoren! Wer sich mit Funk auskennt, legt Kabel

Otto123

Damit es Prinzipiell nachgestellt werden kann:
defmod D1 dummy
attr D1 room TestD
attr D1 stateFormat Status

defmod D2 dummy
attr D2 room TestD
attr D2 setList pressed no
attr D2 userReadings Status { ReadingsVal($name,"state",0) eq "pressed" ? fhem("setreading D1 Status 0") : fhem("setreading D1 Status 3;;sleep 5;;setreading D1 Status 1") }

Was nicht schön ist:
userReadings Status hat keinen Trigger! Wird also einfach bei jedem Event getriggert! Weiß nicht ob daher das Problem kommt?
Es wird state verwendet, state kommt im Event nicht vor und kann deshalb nicht als Trigger verwendet werden.

Ich hatte schon empfohlen:
attr userReadings Status:buttons:.pressed ...
Versuch es damit. ;)
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