notify funktioniert nicht mehr richtig

Begonnen von mala, 13 März 2019, 16:06:04

Vorheriges Thema - Nächstes Thema

mala

Hallo, habe ein notify, dass vermtl. nach einem Fhem-Update nicht mehr richtig funktioniert. Evtl. hängt es mit folgender Fehlermeldung zussammen, die ich aber leider nicht deuten kann. Es handelt sich um eine Steuerung für eine RGB-Lichtkugel.

Meldung: Messages collected while initializing FHEM:
configfile: the function "ReadingsVal("FL_Lichtkugel","Time",0)" must return a timespec and not .
Please define atRGB 5c890b2f-f33f-08e1-78e1-42861e7fb6c38a74 first

Autosave deactivated

Mein "notifyRGB" sorgt dafür, dass je nach Modus die entsprechenden Hebel gesetzt werden, dass eine RGB Lichtkugel entsprechend reagiert.

DEF:.* {
my $Status = ReadingsVal("FL_Lichtkugel","state",0);
my $RGB = ReadingsVal("FL_Lichtkugel","rgb",0);
if($Status eq "off"){
fhem("set atRGB inactive");
fhem("setreading FL_Lichtkugel rgb 000000");
fhem("set ESP_Lichtkugel rgb 000000");}
elsif($Status eq "Farbe"){
fhem("set atRGB inactive");
fhem("set ESP_Lichtkugel rgb $RGB");}
elsif($Status eq "Fade"){
fhem("set atRGB active");}
}

Die Funktionen "off" und " Fade", lassen sich mit dem notify noch bedienen, aber die Funktion "Farbe" funktioniert seit kurzem nicht mehr.
Mit einem Backup einer SD-Karte von vor einigen Wochen läuft dieses notify einwandfrei.

Evtl. hat jemand eine Idee für mich, Gruß und Dank,
mala

KernSani

Hi,

zunächst ein mal: Bitte code tags (das # oben über den Emojis im Editor) verwenden, macht das Ganze lesbarer. Poste bitte mal ein List des notifies und der anderen relevanten Geräte. Mit einem notify kann man nichts bedienen - ein Notify reagiert auf Events, daher wäre etwas Zusatzinfo an der Stelle auch noch notwendig.

Ich nehme an, dein "atRGB" ist nichtmehr vorhanden (da falsch definiert) - Dat spielt möglicherweise auch noch eine Rolle - Was sagt denn das Log, wenn das Notify getriggert wird?

Grüße,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

mala

#2
Hallo leider bin ich noch nicht so fit, habe mal screenshots anghängt ich hoffe das hilft schon mal ein wenig. Habe das ganze Projekt von einer anderen Seite mehr oder weniger abgekupfert. Der User ist auch hier aktiv, hat aber leider überhaupt keine Zeit mehr sich um seine Projekte (und Hompage) zu kümmern und hat mich hierher verwiesen. Das "atRGB" ist vorhanden und läuft auch sobald die Fade Funktion der Lampe angestoßen wird. Dieses "atRGB" wir aber kurioserweise immer gelöscht wenn ich meinen Raspi mal auschalte oder Fhem update. Dann muss ich es immer wieder neu erstellen und definieren bis zum nächsten runterfahren des Systems. Hat bisher auch immer gut funktioniert. Hierzu hat der "Entwickler" aber noch keine Idee oder Lösung gefunden.
Wie ich das mit dem Log anstellen kann muss ich mir erst noch anschauen, tue mich leider noch schwer mit der Materie.
Gruß und Dank,
mala

Byte09

#3
nur schnelle vermutungen und kurz angetestet da ich at eigentlich nicht nutze:

es scheint als wäre in dem moment der definition des at das angefragte reading noch nicht besetzt. somit wird hier der ersatzwert 0 angenommen. 0 akzeptiert at aber nicht .

ändere das mal in "00:00:00" inclusive der hochkommata.

der fehler kommt somit nicht aus dem notify, sondern aus dem at bzw dessen definition

gruss Byte09

mala

Hi,
wenn es dann so aussehen sollte funktioniert es nicht.

+*{ReadingsVal("FL_Lichtkugel","Time",00:00:00)} {

es kommt folgende Fehlermeldung:

the function "ReadingsVal("FL_Lichtkugel","Time",00:00:00)" must return a timespec and not syntax error at (eval 113905) line 1, near "00:"

Gruß und Dank,
mala

Byte09


Zitatändere das mal in "00:00:00" inclusive der hochkommata.

+*{ReadingsVal("FL_Lichtkugel","Time","00:00:00")} {

"00:00:00"

Byte09

hast du mal händisch was in der fhem.cfg geändert ? augfgeräumt oder so ?

gruss Byte09



mala

#7
Hi,
das mit der Time-Änderung hat nichts gebracht. Das mit der Fade-Funktion klappt ja, nur das mit dem Umschalten auf eine vordefinierte Farbe
also die Farbe-Funktion läuft nicht an, wenn ich von "Fade" auf "Farbe" umschalte.
Hat alles mal gut funktioniert.
An die config gehe ich nicht ran, löschen tue ich hin und wieder mal Log-Dateien von Thermostaten und ähnl.
Das das atrgb immer wieder gelöscht wird ist ja auch recht lustig und noch nicht zu erklären.
Gruß,
mala


Byte09

#8
es wird ja nicht gelöscht in diesem sinn , sondern aufgrund eines fehlers nur nicht neu definiert bei fhemstart.

das ist die erklärung :
Zitatthe function "ReadingsVal("FL_Lichtkugel","Time",0)" must return a timespec and not


gib mir bitte mal ein list und eine rawdefinition aller beteiligten devicesn ( das ist mir definitiv zu anstrengend mich durch die bilder zu hangeln).

gruss Byte09

mala

#9
So, rawdefinition hab ich wohl gefunden :
defmod ESP_Lichtkugel ESPEasy 192.168.178.62 80 espBridge ESPEasy_Lichtkugel_RGBWW
attr ESP_Lichtkugel IODev espBridge
attr ESP_Lichtkugel Interval 300
attr ESP_Lichtkugel alexaName Testkugel
attr ESP_Lichtkugel colorpicker HSVp
attr ESP_Lichtkugel colorpickerCTcw 6000
attr ESP_Lichtkugel colorpickerCTww 2000
attr ESP_Lichtkugel devStateIcon { ESPEasy_devStateIcon($name) }
attr ESP_Lichtkugel group Licht
attr ESP_Lichtkugel mapLightCmds Lights
attr ESP_Lichtkugel parseCmdResponse Lights
attr ESP_Lichtkugel presenceCheck 1
attr ESP_Lichtkugel readingSwitchText 1
attr ESP_Lichtkugel room ESPEasy,Wohnzimmer
attr ESP_Lichtkugel setState 3
attr ESP_Lichtkugel webCmd ct:pct:rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:rgb FFFF00:rgb FFA500:rgb 8a2be2:toggle:on:off

setstate ESP_Lichtkugel col: rgb ct: 3000 onO: on pct: 0 rgb: ff69b4
setstate ESP_Lichtkugel 2019-03-13 19:12:33 colormode rgb
setstate ESP_Lichtkugel 2019-03-13 19:12:33 ct 3000
setstate ESP_Lichtkugel 2018-07-13 17:50:05 log Lights: unknown command: dim
setstate ESP_Lichtkugel 2019-03-13 19:12:33 onOff on
setstate ESP_Lichtkugel 2019-03-13 19:12:33 pct 0
setstate ESP_Lichtkugel 2019-03-13 19:11:37 presence present
setstate ESP_Lichtkugel 2019-03-13 19:12:33 rgb ff69b4
setstate ESP_Lichtkugel 2019-03-13 19:12:34 state col: rgb ct: 3000 onO: on pct: 0 rgb: ff69b4


defmod FL_Lichtkugel dummy
attr FL_Lichtkugel alexaName Kugel
attr FL_Lichtkugel alias Lichtkugel
attr FL_Lichtkugel devStateIcon {".*Fade:LED_Kugel_RGB .*off:LED_Kugel .*:LED_Kugel@#".ReadingsVal($name, "rgb", "ffffff")}
attr FL_Lichtkugel group Licht
attr FL_Lichtkugel icon LED_Kugel
attr FL_Lichtkugel readingList Zeit,rgb
attr FL_Lichtkugel room Alexa,Homekit,Wohnzimmer
attr FL_Lichtkugel setList Zeit:slider,1,1,20 rgb:colorpicker,rgb state:Fade,Farbe,off
attr FL_Lichtkugel stateFormat state
attr FL_Lichtkugel userReadings Time {sec2time(ReadingsVal("FL_Lichtkugel","Zeit",0))}
attr FL_Lichtkugel webCmd state:Zeit:rgb:rgb FF0000:rgb 00FF00:rgb 0000FF:rgb FFFF00:rgb FFA500:rgb 8a2be2

setstate FL_Lichtkugel Fade
setstate FL_Lichtkugel 2019-03-13 19:16:03 Time 00:00:10
setstate FL_Lichtkugel 2019-03-04 09:46:15 Zeit 10
setstate FL_Lichtkugel 2019-03-13 19:16:03 rgb FFA500
setstate FL_Lichtkugel 2019-03-13 18:50:19 state Fade


defmod atRGB at +*{ReadingsVal("FL_Lichtkugel","Time",0)} { \
my $Status = ReadingsVal("FL_Lichtkugel","state",0);; \
my $Zeit= ReadingsVal("FL_Lichtkugel","Zeit",0);; \
my $rgb = randomRGB();; \
if($Status eq "Fade") {\
fhem("setreading FL_Lichtkugel rgb $rgb");; \
fhem("set ESP_Lichtkugel rgb $rgb $Zeit");;} \
}

setstate atRGB Next: 19:17:13
setstate atRGB 2019-03-13 19:17:09 state Next: 19:17:13


defmod notifyRGB notify .* {\
my $Status = ReadingsVal("FL_Lichtkugel","state",0);;\
my $RGB = ReadingsVal("FL_Lichtkugel","rgb",0);;\
if($Status eq "off"){\
fhem("set atRGB inactive");; \
fhem("setreading FL_Lichtkugel rgb 000000");;\
fhem("set ESP_Lichtkugel rgb 000000");;}\
elsif($Status eq "Farbe"){\
fhem("set atRGB inactive");;\
fhem("set ESP_Lichtkugel rgb $RGB");;}\
elsif($Status eq "Fade"){\
fhem("set atRGB active");;}\
}
attr notifyRGB room Wohnzimmer

setstate notifyRGB 2019-03-13 19:17:53
setstate notifyRGB 2019-03-13 15:30:59 state active


Internals:
   .AttrList  IODev Interval adjustValue colorpicker:RGB,HSV,HSVp colorpickerCTcw colorpickerCTww ctCW_reducedRange ctWW_reducedRange deepsleep:0,1 disable:1,0 disableRiskyCmds disabledForIntervals displayTextEncode:1,0 displayTextWidth do_not_notify:0,1 event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading mapLightCmds:lights,nfx maxCmdDuration:slider,0,0.25,15,1 parseCmdResponse pollGPIOs presenceCheck:1,0 readingPrefixGPIO readingSuffixGPIOState readingSwitchText:1,0,2 rgbGPIOs setState:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,25,50,100 useSetExtensions:0,1 userSetCmds:textField-long wwcwGPIOs wwcwMaxBri:0,1
   DEF        192.168.178.62 80 espBridge ESPEasy_Lichtkugel_RGBWW
   ESP_BUILD  148
   ESP_SLEEP  0
   ESP_UNIT   77
   ESP_VERSION 9
   FUUID      5c4c47c9-f33f-08e1-3d0b-ee6f5af3b1367a95
   HOST       192.168.178.62
   IDENT      ESPEasy_Lichtkugel_RGBWW
   INTERVAL   300
   IODev      espBridge
   LASTInputDev espBridge
   MAX_CMD_DURATION 1
   MSGCNT     5035
   NAME       ESP_Lichtkugel
   NOTIFYDEV  global
   NR         136
   NTFY_ORDER 50-ESP_Lichtkugel
   PORT       80
   STATE      col: rgb ct: 3000 onO: on pct: 0 rgb: 00ff00
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    2.18
   espBridge_MSGCNT 5035
   espBridge_TIME 2019-03-13 19:42:03
   .attraggr:
   .attrminint:
   READINGS:
     2019-03-13 19:42:03   colormode       rgb
     2019-03-13 19:42:03   ct              3000
     2018-07-13 17:50:05   log             Lights: unknown command: dim
     2019-03-13 19:42:03   onOff           on
     2019-03-13 19:42:03   pct             0
     2019-03-13 19:41:53   presence        present
     2019-03-13 19:42:03   rgb             00ff00
     2019-03-13 19:42:04   state           col: rgb ct: 3000 onO: on pct: 0 rgb: 00ff00
   helper:
     fpc        1552485480
     mapLightCmds:
       ct         lights
       off        lights
       on         lights
       pct        lights
       rgb        lights
       toggle     lights
     pm:
       Encode     1
       JSON       1
     received:
       colormode  1552502523
       ct         1552502523
       onOff      1552502523
       pct        1552502523
       rgb        1552502523
   sec:
     admpwd     
Attributes:
   IODev      espBridge
   Interval   300
   alexaName  Testkugel
   colorpicker HSVp
   colorpickerCTcw 6000
   colorpickerCTww 2000
   devStateIcon { ESPEasy_devStateIcon($name) }
   group      Licht
   mapLightCmds Lights
   parseCmdResponse Lights
   presenceCheck 1
   readingSwitchText 1
   room       ESPEasy,Wohnzimmer
   setState   3
   webCmd     ct:pct:rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:rgb FFFF00:rgb FFA500:rgb 8a2be2:toggle:on:off


Internals:
   FUUID      5c4c47c9-f33f-08e1-0648-03a8116018908e43
   NAME       FL_Lichtkugel
   NR         137
   STATE      Fade
   TYPE       dummy
   .attraggr:
   .attrminint:
   .userReadings:
     HASH(0xa8c938)
   READINGS:
     2019-03-13 19:44:23   Time            00:00:10
     2019-03-04 09:46:15   Zeit            10
     2019-03-13 19:44:23   rgb             0000FF
     2019-03-13 18:50:19   state           Fade
Attributes:
   alexaName  Kugel
   alias      Lichtkugel
   devStateIcon {".*Fade:LED_Kugel_RGB .*off:LED_Kugel .*:LED_Kugel@#".ReadingsVal($name, "rgb", "ffffff")}
   group      Licht
   icon       LED_Kugel
   readingList Zeit,rgb
   room       Alexa,Homekit,Wohnzimmer
   setList    Zeit:slider,1,1,20 rgb:colorpicker,rgb state:Fade,Farbe,off
   stateFormat state
   userReadings Time {sec2time(ReadingsVal("FL_Lichtkugel","Zeit",0))}
   webCmd     state:Zeit:rgb:rgb FF0000:rgb 00FF00:rgb 0000FF:rgb FFFF00:rgb FFA500:rgb 8a2be2


Internals:
   CFGFN     
   COMMAND    {
my $Status = ReadingsVal("FL_Lichtkugel","state",0);
my $Zeit= ReadingsVal("FL_Lichtkugel","Zeit",0);
my $rgb = randomRGB();
if($Status eq "Fade") {
fhem("setreading FL_Lichtkugel rgb $rgb");
fhem("set ESP_Lichtkugel rgb $rgb $Zeit");}
}
   DEF        +*{ReadingsVal("FL_Lichtkugel","Time",0)} {
my $Status = ReadingsVal("FL_Lichtkugel","state",0);
my $Zeit= ReadingsVal("FL_Lichtkugel","Zeit",0);
my $rgb = randomRGB();
if($Status eq "Fade") {
fhem("setreading FL_Lichtkugel rgb $rgb");
fhem("set ESP_Lichtkugel rgb $rgb $Zeit");}
}
   FUUID      5c89144a-f33f-08e1-2780-3d65bafff29cc519
   NAME       atRGB
   NR         396
   NTM        19:45:23
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      Next: 19:45:23
   TIMESPEC   {ReadingsVal("FL_Lichtkugel","Time",0)}
   TRIGGERTIME 1552502723.7181
   TRIGGERTIME_FMT 2019-03-13 19:45:23
   TYPE       at
   .attraggr:
   .attrminint:
   READINGS:
     2019-03-13 19:45:16   state           Next: 19:45:23
Attributes:


Internals:
   .COMMAND   {
my $Status = ReadingsVal("FL_Lichtkugel","state",0);
my $RGB = ReadingsVal("FL_Lichtkugel","rgb",0);
if($Status eq "off"){
fhem("set atRGB inactive");
fhem("setreading FL_Lichtkugel rgb 000000");
fhem("set ESP_Lichtkugel rgb 000000");}
elsif($Status eq "Farbe"){
fhem("set atRGB inactive");
fhem("set ESP_Lichtkugel rgb $RGB");}
elsif($Status eq "Fade"){
fhem("set atRGB active");}
}
   DEF        .* {
my $Status = ReadingsVal("FL_Lichtkugel","state",0);
my $RGB = ReadingsVal("FL_Lichtkugel","rgb",0);
if($Status eq "off"){
fhem("set atRGB inactive");
fhem("setreading FL_Lichtkugel rgb 000000");
fhem("set ESP_Lichtkugel rgb 000000");}
elsif($Status eq "Farbe"){
fhem("set atRGB inactive");
fhem("set ESP_Lichtkugel rgb $RGB");}
elsif($Status eq "Fade"){
fhem("set atRGB active");}
}
   FUUID      5c87d007-f33f-08e1-cdea-567d7540ccf54937
   NAME       notifyRGB
   NR         343
   NTFY_ORDER 50-notifyRGB
   REGEXP     .*
   STATE      2019-03-13 19:46:22
   TRIGGERTIME 1552502782.38028
   TYPE       notify
   .attraggr:
   .attrminint:
   READINGS:
     2019-03-13 15:30:59   state           active
Attributes:
   room       Wohnzimmer




Darf ich eigentlich auf die Homepage des eigentlichen "Projektentwicklers" hinweisen ?

Gruß,mala

Otto123

#10
Hi mala,

da gibt es so einen Grundlagenthread :)
https://forum.fhem.de/index.php/topic,71806.0.html

Aus meiner Sicht ist die at Definition laut Doku falsch -> Die geschweifte Klammer wird an der Stelle anders interpretiert?
ZitatThe optional {N} after the * indicates,that the command should be repeated N-times only.

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

bartman121

#11
Ein Fehler ist Readingslist im dummy, dort wird Leerzeichen als Trenner erwartet.

Bis vor kurzem hat fhem aber auch komma akzeptiert. Deswegen geht ES heute nicht mehr. Ersetz mal das komma durch ein Leerzeichen.

Byte09

Ich werde heute abend leider nicht mehr dazu kommen mir das anzuschauen . Schaue morgen , wenn bis dahin nicht gelöst .

Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk


Byte09

Zitat von: bartman121 am 13 März 2019, 19:43:32
Ein Fehler ist Readingslist im dummy, dort wird Leerzeichen als Trenner erwartet.

Bis vor kurzem hat fhem aber auch komma akzeptiert. Deswegen geht ES heute nicht mehr. Ersetz mal das komma durch ein Leerzeichen.

wohl wahr, aber so aus dem bauch raus kann das ja nicht zu dem fehler der at-definition führen , oder ?!

gruss Byte09

mala

Hallo bartman121,
bin total durch den Wind, dein Tipp würde ich gerne noch umsetzten, dann ist für heute Schluss.
Finde aber die Stelle zum ändern nicht. Hast du einen kleinen Tipp für mich?

Gruß und Dank,
mala