Hauptmenü

DOIF ohne Schneeball

Begonnen von DasQ, 16 Dezember 2018, 11:42:44

Vorheriges Thema - Nächstes Thema

DasQ

Hi,

Also zunächst mal zu der Problem Konstelation.
Ich habe Milight Lampen mit einer RF Fernbedienung, die wiederum hinter Sonoff Touch T1 2 gang hängen.
Also wenn ich jetzt per Fernbedienung die Lampen Schalten will, reagieren die Lampen natürlich nicht, da in den Sonoff ja noch die Relais offen sind.
Jetzt habe ich einen Milight-Hub auf ESP basis gebaut, der das signal der fernbedienung empfangen kann und es via MQTT(2) an Fhem weiterleitet. Dort hab ich bis jetzt, durch ne ganze menge notifyer die signale gekoppelt.
Aber mit Priorität auf die Fernbedienung, die Touch sensor in den sonoff spielen im augenblick noch eine untergeordente rolle.
Sprich dafür hab ich keine Notifyer gebaut und so ergibt sich es, das die schaltzustände, wenn am sonoff geschaltet wir, sich in fhem nicht aktualisiert. (licht bleibt troz aus, auf an hängen.) das ist zwar nur ein optischer mangel, aber es stört dennoch. und unsauber ists ausserdem.

zum einen gefallen mir die vielen notifyer nicht, (mein doz sagte immer, wenn du dreimal das gleiche schreibst, packs in ne schleife)
zum andern gefällt mir nicht, das wenn ich das jetzt fertig in notifyer ausformulier, sehr wahrscheinlich einen schnellball produzier.

also:
fernbedienung schaltet off,
sonoff_off notifyer reagiert und schaltet off
darauf würde ja dann wieder der fernbedienungs notifyer reagieren und auch auf off schalten usw.

das pingpong spiel würde losgehen und der kleine raspi würde vermutlich durchdrehen.

so jetzt hader ich schon seit längerem mit dem DOIF. hab einen nach muster für meine Türklingel Alamierung in der Küche eingebaut und der tut auch genau das was er soll.

jetzt hab ich das wiki von allen seiten bezüglich dem DOIF durchgelesen und bin nun mehr als zuvor verunsichert. da ein versuch mit einer Intervallschaltung gehörig in die hose ging, da es von meim theoretischen verständniss zwar funktionieren sollte, aber es nicht tut. (das ist aber ein anderes thema und ich hoff mir mit den erkenntnissen hier aus dem thread dann selber drauf zu kommen.)

hier mal die definition aus den Sonoff - Milight notifyern

1. Licht_Wz_all:off set MQTT2_SonOff_Wz_Decke off;set MQTT2_SonOff_Wz_Wand off
2. Licht_Wz_all:on set MQTT2_SonOff_Wz_Decke on;set MQTT2_SonOff_Wz_Wand on
3. Licht_Wz_Oben:off set MQTT2_SonOff_Wz_Decke off
4. Licht_Wz_Oben:on set MQTT2_SonOff_Wz_Decke on
5. Licht_Wz_Wand:off set MQTT2_SonOff_Wz_Wand off
6. Licht_Wz_Wand:on set MQTT2_SonOff_Wz_Wand on


ich weis, hässlich, erfüllt aber im groben sein zweck.
und jetzt seit ihr gefragt. wie pack ich das ganze am besten in eine "variable schleife"/ einen "prüfablauf", um es so kurz als möglich als DOIF zu formulieren.

über rege beteidigung würde ich mich sehr freuen.
lasst mich nicht dumm sterben.


Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

MadMax-FHEM

#1
Zitat von: DasQ am 16 Dezember 2018, 11:42:44
also:
fernbedienung schaltet off,
sonoff_off notifyer reagiert und schaltet off
darauf würde ja dann wieder der fernbedienungs notifyer reagieren und auch auf off schalten usw.

das pingpong spiel würde losgehen und der kleine raspi würde vermutlich durchdrehen.

Warum soll da ein Ping-Pong entstehen?
Wenn du das RegEx geschickt wählst, dann kommt es zu keinem Ping-Pong, weil:

set GerätX on

ein Notify mit:

define nGerätY GerätY:on set Irgendwas AufStatusZ

total kalt lässt...

Und ich nheme an, dass die Fernbedienung die den Event auslöst wohl anders heißen wird als das Gerät was dann geschalten wird...



Zitat von: DasQ am 16 Dezember 2018, 11:42:44
hier mal die definition aus den Sonoff - Milight notifyern

1. Licht_Wz_all:off set MQTT2_SonOff_Wz_Decke off;set MQTT2_SonOff_Wz_Wand off
2. Licht_Wz_all:on set MQTT2_SonOff_Wz_Decke on;set MQTT2_SonOff_Wz_Wand on
3. Licht_Wz_Oben:off set MQTT2_SonOff_Wz_Decke off
4. Licht_Wz_Oben:on set MQTT2_SonOff_Wz_Decke on
5. Licht_Wz_Wand:off set MQTT2_SonOff_Wz_Wand off
6. Licht_Wz_Wand:on set MQTT2_SonOff_Wz_Wand on


ich weis, hässlich, erfüllt aber im groben sein zweck.

Erfüllt seinen Zweck?
Zumidest NICHT den mir zu sagen was das sein soll...
(gut ich könnte raten)

Wenn du etwas von deinem "Code" bzw. Versuchen etc. mitteilen willst, ist ein list immer hilfreich:

list GeräteName
in FhemWeb und die Ausgabe dann hier in code-Tags posten...
(auch ein Notifyer das eigentlich notify heißt ist in fhem ein "Gerät"/Device)

Notify (und DOIF) anlegen (lassen) geht ganz einfach mit dem EventMonitor...


Zitat von: DasQ am 16 Dezember 2018, 11:42:44
über rege beteidigung würde ich mich sehr freuen.
lasst mich nicht dumm sterben.

(Rege) Beteiligung hab ich mal gemacht...
...an dem nicht dumm sterben musst du selber arbeiten.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

DasQ

#2
ich wollte mit 6 fast identischen list nicht zu sehr verwirren. das da oben sind schnipsel aus den notifyern.

aber um das noch nachzureichen hier ein list von zwei notifyer

Alles an
Internals:
   DEF        Licht_Wz_all:on set MQTT2_SonOff_Wz_Decke on;set MQTT2_SonOff_Wz_Wand on
   NAME       WzLichtAllSonOff_on
   NOTIFYDEV  Licht_Wz_all
   NR         132
   NTFY_ORDER 50-WzLichtAllSonOff_on
   REGEXP     Licht_Wz_all:on
   STATE      2018-12-16 11:34:52
   TRIGGERTIME 1544956492.07799
   TYPE       notify
   READINGS:
     2018-12-15 18:06:45   state           active
Attributes:
   group      Licht
   room       Wohnzimmer


alles aus
Internals:
   DEF        Licht_Wz_all:off set MQTT2_SonOff_Wz_Decke off;set MQTT2_SonOff_Wz_Wand off
   NAME       WzLichtAllSonOff_off
   NOTIFYDEV  Licht_Wz_all
   NR         133
   NTFY_ORDER 50-WzLichtAllSonOff_off
   REGEXP     Licht_Wz_all:off
   STATE      2018-12-16 11:34:55
   TRIGGERTIME 1544956495.15287
   TYPE       notify
   READINGS:
     2018-12-15 18:06:45   state           active
Attributes:
   group      Licht
   room       Wohnzimmer


und meine vermutung auf dem schneeball beruht auf der tatsache das eben die namen der "gegenläufigen" sonoff und milight ja doch gleich heissen.
ich versuchs aber dennoch nachert gleich mal aus, obs nur mit notifyern gehen würde. unsauber und redundant bleibts trozdem. und schon garnicht variabel.
also nicht so schön als wennes ein DIOF mit alle infragekommenden events (on und off) abfängt und dann richtig umbiegt.

problem ist aber auch, das ich noch mit einer sinnstiftendennamensgebung kämpf. da wär ich für sinnvolle tips auch sehr dankbar.
geht hier ein wenig auch ums "tue dies, lasse das" oder Den sauberen stil.
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

MadMax-FHEM

Eine Schleife bauen bzw. mittels RegEx (das solltest du mal lernen) kann man bei geschickter Namenswahl (man kann auch umbenennen: rename) auch ohne "programmierte Schleife" alle gewünschten Geräte abdecken.

Wenn das nicht geht, ist die Namenswahl evtl. nicht ausreichend gut ;)

Die lists schaue ich mir dann mal an...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

#4
Ein Beispiel:


set MQTT2_SonOff_Wz_Decke on;set MQTT2_SonOff_Wz_Wand on



set MQTT2_SonOff_Wz_.* on


Macht das gleiche bzw. schaltet alle Geräte die eben mit "MQTT2_SonOff_Wz_" anfangen...

Gleiches gilt auch für ein Notify und man kann auch ein "on/off" Notify mit Abfrage bauen:


define nLicht_Wz_OnOff notify Licht_Wz_all:(on|off) {if($EVENT eq "on"){fhem("set Geräte on")}elsif($EVENT eq "off"){fhem("set Geräte off")}}


KEIN! copy/paste code, sondern (teilweise) mit "pseudo-Code"...

Statt nach Perl wechseln ( '{ PERL }' ) ginge auch das fhem-IF: IF (  ) ...

Oder eben DOIF, auch da funktioniert RegEx etc.

Bei einem list von Notify (und nicht Notifyern, wie kommst du auf diesen Namen?) ist auch immer ein list des auslösenden Gerätes (also das den Event auf den das Notify reagiert/reagieren soll) ganz hilfreich...

Und wie geschrieben: eine Erzeugung von Notify DOIF etc. geht ganz einfach mit dem EventMonitor...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

DasQ

#5
Zitat von: MadMax-FHEM am 16 Dezember 2018, 12:21:17
(das solltest du mal lernen)

reguläre ausdrücke sind für mich als fachinformatiker/webdev/usw kein fremdwort.  ;) nur hat mir meine erfahrung gezeigt, das wenn man sich darauf einlässt, und irgendwann mal was ändern muss, an absolut allen stellen anpacken muss, damits dann wieder läuft. ;D

und, ich bin der meinung das man wenn man sich dieser probleme bewusst ist, besser in nem forum danach frägt und sich auf die erfahrung alter hasen verlässt. als zum fünfhunderdreiundneuzigste mal, das rad neu erfindet. :P

link zum thema würde ja reichen, oder ein vielleicht trefender suchbegriff. weil mit meinen suchbegriffen und dieser boardsuche komm ich absolut nicht weiter. da such ich besser via google in dem forum ... das ist oft viel zielführender. :)


Zitat von: MadMax-FHEM am 16 Dezember 2018, 12:29:49
(und nicht Notifyern, wie kommst du auf diesen Namen?)

denglische eigenkreation um mehren Notify einen namen zu geben.

der tip von dir dort drüber ists glaub gewesen, wonach ich gesucht hab
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

MadMax-FHEM

Ja die Forumssuche ist naja ;)

Aber die Definition von notify in fhem ist nun mal "RegEx-basiert" ;)

Wenn was brauchbares dabei war: gut! :)

Wenn nicht einfach weiter fragen...

Dann viel Spaß noch, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Ellert

Zitat von: DasQ am 16 Dezember 2018, 12:11:38
...und meine vermutung auf dem schneeball beruht auf der tatsache das eben die namen der "gegenläufigen" sonoff und milight ja doch gleich heissen.
Im notify wird ein das Suchmuster ergänzt zu ^Suchmuster$, daher gibt es keine Schleife bei ähnlichen Namen.

Du könntest alles zusammenfassen in einem notify oder DOIF, wenn Du im Befehlsteil den Namen des triggernden Gerätes auswertest und dann die entsprechenden Gerätes setzt. Also für
Zitat1. Licht_Wz_all:off set MQTT2_SonOff_Wz_Decke off;set MQTT2_SonOff_Wz_Wand off
2. Licht_Wz_all:on set MQTT2_SonOff_Wz_Decke on;set MQTT2_SonOff_Wz_Wand on
3. Licht_Wz_Oben:off set MQTT2_SonOff_Wz_Decke off
4. Licht_Wz_Oben:on set MQTT2_SonOff_Wz_Decke on
5. Licht_Wz_Wand:off set MQTT2_SonOff_Wz_Wand off
6. Licht_Wz_Wand:on set MQTT2_SonOff_Wz_Wand on

das Suchmuster Licht_WZ_.* verwendest und dann $NAME abfragst und je nach Namen des aulösenden Gerätes und des EVTPART entsprechende Befehle absetzt.

DasQ

#8
Zitat von: Ellert am 16 Dezember 2018, 13:07:07
das Suchmuster Licht_WZ_.* verwendest und dann $NAME abfragst und je nach Namen des aulösenden Gerätes und des EVTPART entsprechende Befehle absetzt.

genau da scheiter ich jetzt dran. wie kann ich das einbauen?

Internals:
   DEF        Licht_Wz_.*:on|off {if($EVENT eq "on"){fhem("set MQTT2_SonOff_Wz_$NAME on")}elsif($EVENT eq "off"){fhem("set MQTT2_SonOff_Wz_$NAME off")}}
   NAME       WzLichtAllSonOff_off
   NR         133
   NTFY_ORDER 50-WzLichtAllSonOff_off
   REGEXP     Licht_Wz_.*:on|off
   STATE      2018-12-16 16:57:58
   TRIGGERTIME 1544975878.2384
   TYPE       notify
   Helper:
     DBLOG:
       state:
         DBLogging:
           TIME       1544975803.09474
           VALUE      active
   READINGS:
     2018-12-16 16:57:19   state           active
Attributes:
   group      Licht
   room       Wohnzimmer


klappt schonmal nicht. wie kann ich den part hinter "Licht_Wz_.*"  also nur das was im ".*" ist, so hinter das MQTT2_SonOff_Wz_  pappen?

018.12.16 17:08:13 3: set MQTT2_SonOff_Wz_Licht_Wz_Wand off : Please define MQTT2_SonOff_Wz_Licht_Wz_Wand first
2018.12.16 17:08:13 3: WzLichtAllSonOff_off return value: Please define MQTT2_SonOff_Wz_Licht_Wz_Wand first
2018.12.16 17:08:13 3: MilightRemoteNotifyer return value: Please define MQTT2_SonOff_Wz first
2018.12.16 17:08:13 3: set MQTT2_SonOff_Wz_Licht_Wz_Decke off : Please define MQTT2_SonOff_Wz_Licht_Wz_Decke first
2018.12.16 17:08:13 3: WzLichtAllSonOff_off return value: Please define MQTT2_SonOff_Wz_Licht_Wz_Decke first
2018.12.16 17:08:13 3: set MQTT2_SonOff_Wz_Licht_Wz_all off : Please define MQTT2_SonOff_Wz_Licht_Wz_all first
2018.12.16 17:08:13 3: WzLichtAllSonOff_off return value: Please define MQTT2_SonOff_Wz_Licht_Wz_all first




Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

MadMax-FHEM

Ich würde alles was etwas "komplizierter" als ein set-Befehl ist in eine myUtils auslagern: https://wiki.fhem.de/wiki/99_myUtils_anlegen

Dort dann als erstes eine Ausgabe der übergeben Parameter machen, also beispielsweise von $NAME und $EVENT...

Wenn ich das mal laufen lassen habe und genau sehe (Logausgaben) was kommt einfah weiter machen, evtl. "split"...

define nAllOnOff notify Licht_Wz_.*:(on|off) {my_setOnOff($NAME, $EVENT)}


sub my_setOnOff($$)
{
  my ($Name, $Event) = @_;
  my @NameParts = split(/_/, $Name);

  Log3(undef, 3, "my_setOnOff    Name: $Name      Event: $Event");
}


usw.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Ellert

Zitat von: DasQ am 16 Dezember 2018, 17:02:43
genau da scheiter ich jetzt dran. wie kann ich das einbauen?
...
klappt schonmal nicht. wie kann ich den part hinter "Licht_Wz_.*"  also nur das was im ".*" ist, so hinter das MQTT2_SonOff_Wz_  pappen?
Wenn Dir reguläre Ausdrücke geläufig sind sollte sowas wie
$NAME =~ / Licht_Wz_(.*)/;
kein Problem sein, denn Du weisst ja das $1 enthält, was Du sucht  ;)

In der Definition des notify sind auch Zeilenumbrüche erlaubt, das macht's übersichtlicher.

Du kannst Dir if sparen mit
set MQTT2_SonOff_Wz_$1 $EVENT"


Damian

oder als DOIF-Einzeiler:

DOIF {["^Licht_Wz_"];$device=~/^Licht_Wz_(.*)/;fhem_set("MQTT2_SonOff_Wz_$1 $event")}
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

DasQ

Erstmal danke an euch zwei, das bringt mich schon ein ganzes stückchen weiter. Die Sorge ums dumm sterben können wir schonmal getrost abhacken.

Zitat von: Ellert am 16 Dezember 2018, 20:43:48
Wenn Dir reguläre Ausdrücke geläufig sind sollte sowas wie
$NAME =~ / Licht_Wz_(.*)/;
kein Problem sein, denn Du weisst ja das $1 enthält, was Du sucht  ;)

In der Definition des notify sind auch Zeilenumbrüche erlaubt, das macht's übersichtlicher.

Du kannst Dir if sparen mit
set MQTT2_SonOff_Wz_$1 $EVENT"

Naja ich sagte ,,kein fremdwort", aber egal. Die Kleinigkeiten wie =~ sind für mich aber dennoch Neuland. Das ist ne Zuweisung? Oder ein Zeiger? Hab RegEx wiegesagt in der Vergangenheit etwas stiefmütterlich behandelt. $1 ist quasi eine allgegenwärtige Variable die man durch das wildcard .* Befüllen kann. Super thx.

Und warum ist nach $EVENT" ein Gänsefüßchen?

Sind ja bekanntlich die Kleinigkeiten im Code die eim das ganze dann um die Ohren hauen. Ich sag nur Semikolon vergessen in c => kabum  ;)
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

Ellert

ZitatNaja ich sagte ,,kein fremdwort", aber egal. Die Kleinigkeiten wie =~ sind für mich aber dennoch Neuland. Das ist ne Zuweisung? Oder ein Zeiger? Hab RegEx wiegesagt in der Vergangenheit etwas stiefmütterlich behandelt. $1 ist quasi eine allgegenwärtige Variable die man durch das wildcard .* Befüllen kann. Super thx.
Siehe https://perldoc.perl.org/perlre.html und https://perldoc.perl.org/perlop.html
Und warum ist nach $EVENT" ein Gänsefüßchen?
Unvollständig kopiert und stehen gelassen - dubistdochtoleranthinsichtlichschreibungoder  ;)

DasQ

#14
so mal ein kurzes feedback.

der schnucklige einzeiler von @Damian tut mal grundsätzlich des was er soll.
{["^Licht_Wz_"];$device=~/^Licht_Wz_(.*)/;fhem_set("SonOff_Wz_$1 $event")}
Internals:
   DEF        {["^Licht_Wz_"];$device=~/^Licht_Wz_(.*)/;fhem_set("SonOff_Wz_$1 $event")}
   MODEL      Perl
   NAME       WzDoIfLichtMi
   NR         152
   NTFY_ORDER 50-WzDoIfLichtMi
   STATE      enabled, executed
   TYPE       DOIF
   Helper:
     DBLOG:
       block_01:
         DBLogging:
           TIME       1545904281.39333
           VALUE      condition c01
       mode:
         DBLogging:
           TIME       1545904352.32311
           VALUE      enabled
       warning:
         DBLogging:
           TIME       1545902469.44469
           VALUE      condition c01
   READINGS:
     2018-12-27 10:52:43   Device          Licht_Wz_Wand
     2018-12-27 10:52:43   block_01        executed
     2018-12-27 10:52:32   mode            enabled
   Regex:
     cond:
       :
         0:
           "^Licht_Wz_" ^Licht_Wz_
   condition:
     0          ::EventDoIf('^Licht_Wz_',$hash,'',0);$device=~/^Licht_Wz_(.*)/;fhem_set("SonOff_Wz_$1 $event")
   devices:
   helper:
     event      hue: 359,status: off,brightness: 230,level: 90,saturation: 0,off,bulb_mode: color
     globalinit 1
     last_timer 0
     sleeptimer -1
     triggerDev Licht_Wz_Wand
     triggerEvents:
       hue: 359
       status: off
       brightness: 230
       level: 90
       saturation: 0
       off
       bulb_mode: color
     triggerEventsState:
       hue: 359
       status: off
       brightness: 230
       level: 90
       saturation: 0
       state: OFF
       bulb_mode: color
   internals:
   itimer:
   perlblock:
     0         
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   group      Licht
   room       Wohnzimmer
   sortby     6
   stateFormat mode, block_01


ABER, so wie im threadtopic steht, wollte ich eben genau besagten schneeball nicht, den ich mir dann zusammen gebaut hab.
sind ja wie oben schon geschrieben 2 schalter für ein und die selbe sache. einer per MiLight Fernbedienung und einer direkt am SonOff.

also habe ich den einzeler für sonoff umgemodelt und das sah dann so aus
{["^SonOff_Wz_"];$device=~/^SonOff_Wz_(.*)/;fhem_set("Licht_Wz_$1 $event")}

jeder einzeler für sich funktioniert (mit kleinen wenn und aber ... eigentlich bräuchts nur die events "on" und/oder "off").
aber sobald ich beide aktiviere, geht der punk ab. sprich die beiden doif triggern sich gegenseitig, bis klein raspi kapituliert.

dacht ich mir, ok dann muss das erstens alles in eine doif abfrage mit if verschachtelt. (soweit war ich denkmässig noch nie, aber ich bin auch hier der meinung es kommt zu besagtem schneeball)

und da ichs nicht syntaxfehlerfrei formuliert bekomm, versuch ichs mal hier zu beschreiben.

{(["^SonOff_Wz_"] eq "on" or ["^SonOff_Wz_"] eq "off" ;$device=~/^SonOff_Wz_(.*)/;)or
  (["^Licht_Wz_"]    eq "on" or ["^Licht_Wz_"]    eq "off";$device=~/^Licht_Wz_(.*)/;)
  fhem_set("SonOff_Wz_$1 $event") DOELSEIF
  fhem_set("Licht_Wz_$1 $event")
}


so sollte das ungefähr aussehen. aber mir fliegts natürlich um die ohren. entweder massig fehler, oder eben ein pingpong spiel geht los.
der frust ist gross. :D :-\





Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org