änderung in setreading? BUG?

Begonnen von draddy, 08 März 2022, 09:29:35

Vorheriges Thema - Nächstes Thema

draddy

moin,

gabe es in setreading eine änderung?

habe in meinen ersten fhem stunden (damals, vor 2 wochen  ::))

einen dummy gebaut, mit dem ich gleichzeitig meine Monitore und Beistelllampe schalten kann. (für ein andFHEM widget da dies 90% der anwendungsfälle entspricht)

dazu habe ich ein doif gebaut

([d_Jens:"toggle"] and [?$SELF:"off"] or [d_Jens:"on"]) (set Jens_Light on) (set Jens_Displays on)
DOELSEIF
([d_Jens:"toggle"] and [?$SELF:"on"] or [d_Jens:"off"]) (set Jens_Displays off) (set Jens_Light off)


und ein notify welches den Status vom Monitor an den dummy setzt

Jens_Displays:.*
{my $v1 = ReadingsVal("Jens_Displays","relay","");
fhem("setreading d_Jens state $v1")}


anfangs hatte ich das mit "set d_Jens $v1" gemacht was zur folge hatte,  dass das Licht immer geschaltet wurde, weil natürlich das event getriggert wurde, daher Änderung auf setreading ...

gestern ist mir aufgefallen, das event triggert wieder ... heißt, wenn ich (weil hell genug) NUR den Monitor einschalte, geht mein licht mit an.

hab schon getestet; mit setstate passiert nichts, außer das eben der dummy state geändert wird (so wie es mit setreading auch war und wohl auch sein soll) aber es triggert kein event / und die if nicht.

kann einer der kundigen verifizieren, dass setreading aufeinmal doch events triggert? soll das so, oder läuft bei mir plötzlich irgendwas anders, was vorher einfach "falsch" lief und jetzt zum unerwünschten verhalten führt? ^^


lg
Jens

p.s. bitte keine Komplimente für diese Schönheit an code, inzwischen weiss ich wohl, dass ich viele sachen anders machen könnte (z.b. EVTPART verwenden ...) aber ich habe entschieden, es als  Mahnmal genau so stehen zu lassen.
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

Beta-User

setreading führt zu einem a priori triggernden update des Reading-Werts, das gehört so!

Dein Problem ist weiterhin eher das dummy-Geschubse, denn ein dummy, dessen Events bereits "durch" sind, wird im Rahmen einer laufenden Event-Loop nicht nochmal ausgewertet, selbst, wenn dann weitere Events in die loop kommen.

(Mir ist schon klar, dass das unverständlicher Kauderwelsch ist, sowas taucht aber immer mal wieder auf, siehe z.B. auch hier: https://forum.fhem.de/index.php/topic,124877.msg1194682.html#msg1194682)
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

draddy

hmm dann hab ich 1. die commandref falsch verstanden
und 2. bleibt die frage, warum hat es Anfangs genau so wie gewünscht funktioniert?  :o

Zitat
Dein Problem ist weiterhin eher das dummy-Geschubse, denn ein dummy, dessen Events bereits "durch" sind, wird im Rahmen einer laufenden Event-Loop nicht nochmal ausgewertet, selbst, wenn dann weitere Events in die loop kommen.
dummys sind halt so das erste was einen anspringt xD lasse mich ja gern beleren ^^
wobei, ich aktuell sehr wenige habe. die aktivsten sind halt für 3 Leuchten im Wohnzimmer, welche in 99% der fälle zusammen ein, und ausgeschaltet werden und eben die sache mit meinem Monitor + Lampe. 

für beide fälle brauchte ich eben etwas, was auch in "andFhem" als Widget genutzt werden kann. Als "status" nehme ich eben eins der echten Devices und lasse es per notify an den dummy aktuallisieren, muss ja sonst nix können, als mehrere Geräte mit einem knopf ein und aus zuschalten ohne die einzelschaltbarkeit zu verlieren ;)
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

Beta-User

Zitat von: draddy am 08 März 2022, 11:34:16
hmm dann hab ich 1. die commandref falsch verstanden
Da steht doch: "generiert aber Ereignisse"... Es wird "nur" nicht der "echte" set-Command ausgeführt ;) , also z.B. nicht über eine HUEBridge gesendet.

Zitatund 2. bleibt die frage, warum hat es Anfangs genau so wie gewünscht funktioniert?  :o
Hat es nicht wirklich. Du hast nur die Auswirkung nicht gesehen, weil deine Namenswahl entsprechend war oder das auslösende Device ein anderes wie der dummy...

Zitatdummys sind halt so das erste was einen anspringt xD lasse mich ja gern beleren ^^
Genau deswegen ist meine "Predigt": dummy nur da, wo unbedingt nötig. Ist in den seltensten Fällen nötig...

Zitatwobei, ich aktuell sehr wenige habe. die aktivsten sind halt für 3 Leuchten im Wohnzimmer, welche in 99% der fälle zusammen ein, und ausgeschaltet werden und eben die sache mit meinem Monitor + Lampe. 
Auf das Risiko hin, dass ich mich wiederhole: structure! (Siehe das Beispiel in der Demo-cfg, das hat auch setter für ct und dim, die funtionieren nur teils nicht an allen eingebundenen Devices...).
Das "Sonderthema" eins aus, wenn das andere angeht, sollte per notify auf die eigentlichen Hardware-Devices lösbar sein.
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

draddy

zu 1. und 2. ... wiegesagt, anfangs hatte ich set <dummy> on|off ... natürlich mit dem Ergebnis, das wenn ich den Monitor Device serperat geschaltet habe, auch die Lampe geschaltet wurde, nach google kamm dann setreading zum Einsatz mit dem  Ergebnis, wenn ich den Monitor Geschaltet habe, blieb die Lampe unberührt davon außer ich habe über den dummy sofort geschaltet (also so wie ichs wollte)  gut, hab wegen Wetter und so jetzt immer mit Dummy geschaltet weil eh beides AN oder AUS sollte, bis ich gestern nur den Monitor schalten wollte und die Lampe mit anging ...
seis drum ... mit setstate scheint es wohl zu klappen jetzt ...

structure schau ich mir an! da ist eben das "anfänger" problem wieder, man kennt einfach nicht alles, und, abends im bett commandref statt buch lesen ist nicht so meins, fhem ist halt doch recht massiv und mächtig ;D

von wegen notify ... ja jain, für fälle wie "wenn monitor off, lampe off" ok (müsste ich ja auch sleep nutzen können, das die lampe paar sekunden nach brennzeit hat oder?) grundlegend ist das aber eben etwas "absolutes" mit dem dummy habe ich eben die "wahl" ob ich wirklich beides, oder nur das eine oder andere schalten will. (hoffe spührst wie ich denk) (mache ich alle Lichter im Wohnzimmer aus, oder lasse ich eins an?)
ich gelobe besserung! :)
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

Beta-User

Zitat von: draddy am 08 März 2022, 12:15:15
zu 1. und 2. ...
...ich werde nicht versuchen, das nachzuvollziehen...

Zitat
mit dem dummy habe ich eben die "wahl" ob ich wirklich beides, oder nur das eine oder andere schalten will. (hoffe spührst wie ich denk) (mache ich alle Lichter im Wohnzimmer aus, oder lasse ich eins an?)
Spüren nicht, aber "structure" ist (mit entsprechendem "clientstate_behaviour") genau dafür da, eine "alle ein/aus"-Funktion bereitzustellen, und kann auch "an/aus"-"Szenarien" als Readings abspeichern (und wieder herstellen)...

Falls man was komplexeres braucht, gäbe es noch "LightScene"...

Ad "andFHEM": hatte ich früher auch mal, aber es gibt zwischenzeitlich optisch ansprechendere und v.a. auch flexibere Lösungen. Stichworte: fhemAPP und fhemNative. Zumindest mit ersterem sollte es auch Möglichkeiten der Schaltung von "Strukturen" geben (bitte das manual lesen!).
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

draddy

andFhem is nix schickes, ja, aber wenigstens fhemNativ hat eben auch keine Widgets, sprich ich MUSS eine app öffnen, um eine aktion auszuführen.

mit andFhem hab ich eben einen, wenn auch nicht hübschen, button aufm homescreen den ich einmal antippe, und es wird gemacht was ich will ;)
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

Beta-User

#7
Zitat von: draddy am 08 März 2022, 12:40:48
mit andFhem hab ich eben einen, wenn auch nicht hübschen, button aufm homescreen den ich einmal antippe, und es wird gemacht was ich will ;)
...dafür habe ich die Rhasspy-mobile-App (bzw. deren shortcut-Button), und der kann ich ziemlich viel erzählen :P ...
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

draddy

hmmm, stimmt, mit der müsste ich ja auch auch befehle schicken können, daran hab ich gar nicht gedacht, die hab ich bis vor 3 Wochen noch benutzt (da war mein "smarthome" 2 steckdosen adapter von tp-link und eine avm dect 200 xD)

fu ... meine hausaufgabenliste wird immer länger  ;D ;D ;D
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V