Hallo
ich hab einen Sonoff Touch3CH mit Tasmota und einen Shelly 2.5 ebenfalls mit Tasmota bespielt.
Am Shelly hängt am Kanal 1 eine Lampe und am Kanal2 eine 2. Lampe. Diese beiden Lampen kann ich mit set WZ_SchalterX OFF ausschalten bzw. einschalten.
Nun will ich aber zusätzlich mit dem Sonoff Touch3CH auch diese Lampen einschalten, und hier hab ich dann meine Probleme.....
Wie kann ich sowas am besten lösen?
Folgendes hab ich probiert und das hat aber nicht funktioniert
define WZ_LICHT1_on1 notify WZ_Schalter5 result-power2: ON set WZ_Schalter3 $EVENT
WZ_Schalter 4&5 = Shelly 2.5
WZ_Schalter 1;2;3 = Sonoff Touch
Hi,
also für mich redest Du wirr ...
Aber meinst Du - alle mit einem Befehl schalten?
set WZ_Schalter. on
Gruß Otto
im Prinzip sollte es mit den 2 Geräten (Sonoff und Shelly) wie eine Wechselschaltung funktioniert
z.b mit dem Schalter am Shelly die Lampe1 einschalten und mit dem Sonoff wieder ausschalten oder umgekehrt.
Hatte auch schon die Probleme das sich die Schalter gegenseitig immer aus und eingeschaltet haben und ich somit ein Discolicht hatte..
Sorry aber wer schaltet die Lampe? Hast Du drei Geräte? Also zwei Schalter und eine Lampe?
Oder schalten beide Schalter die gleiche Lampe?
mit dem Shelly 2.5 kann ich zwei separate Lampen schalten, diese sind auch mit der Phase zu den Lampen verbunden. Der Sonoff hat keine fixe Verdrahtung zu den Lampen. Dieser sollte nur als WIFI Schalter funktionieren
Wenn Du vom sonoff einfach toggle zum shelly sendest?
klappt leider nicht. eine idee wie der notify befehl ausschauen müsste
Wenn ich den Shelly am Schalter einschalte bekomme ich folgende Meldung im Fhem
2020-01-30 23:08:30 TASMOTA_DEVICE WZ_Schalter5 result-power2: ON
Wenn ich den Sonoff einschalte bekomme ich folgendes
020-01-30 23:09:26 TASMOTA_DEVICE WZ_Schalter3 transmission-state: incoming publish received
2020-01-30 23:09:26 TASMOTA_DEVICE WZ_Schalter3 result-power3: ON
Ich verstehe deine Geräte nicht. Meine tasmota Geräte lassen sich mit on und off schalten und liefern im STATE auch on und off zurück.
Kann also sein das Du da optimieren solltest, aber ...
... eine toggle Nachbildung wäre dies:
set T_Lampe1 {(Value("T_Lampe1") eq "on"?"off":"on")}
ich kann ja über die Befehlszeile in Fhem mittels set XXX on die Lampen ein aus schalten, Aber nur über diese Befehle. Wie kann das als logik programmieren?
define wz-toggle notify WZ_Schalter3:result-power3:.ON set WZ_Schalter5 {(Value("WZ_Schalter5") eq "on"?"off":"on")}
Oder ich habe 3 und 5 falsch verstanden :)
Bedingung ist, dass WZ_Schalter5 einen ordentliche STATE hat - also on und off
Danke, einschalten kann ich somit schon einmal. Fürs ausschalten muss ich wieder ein notify anlegen oder?
Wenn ich jetzt mit dem Shelly ausschalte sollte aber auch der Sonoff einen Befehl bekommen, dass dieser ebenfalls mit ausgeschaltet wird. Sonst muss ich jetzt immer zweimal auf den Shelly drücken wenn ich wieder einschalten will...
Was macht das ? eigentlich zwischen den "on"?"off"
Wenn Du ein list liefern würdest bräuchten wir keine Rätsel lösen.
{(Value("WZ_Schalter5") eq "on"?"off":"on")}
In Worten: Wenn der STATE von WZ_Schalter5 gleich "on" ist dann liefere "off" zurück ansonsten liefere "on" zurück.
Das ? ist die Perl Kurzform von if 8)
Ansonsten schaust Du hier https://perldoc.perl.org/index.html ;D
sorry was meinst du mit list liefern? :-[ :-[ :-[
ZitatBedingung ist, dass WZ_Schalter5 einen ordentliche STATE hat - also on und off
Also ein
list WZ_Schalter5
https://forum.fhem.de/index.php/topic,71806.0.html
Der Code Vorschlag sollte toggeln, Du brauchst nichts weiter. Allerdings eben nur wenn die Bedingung stimmen.
Gruß Otto
Das bekomme ich bei list WZ_Schalter5
Beim nächsten mal bitte nicht als Anhang sondern in Code Tags.
STATE liefert offenbar ON und OFF, also musst Du so ändern
{(Value("WZ_Schalter5") eq "ON"?"off":"on")}
Muss ich nicht alle on und off groß schreiben?
{(Value("WZ_Schalter5") eq "ON"?"OFF":"ON")}
wenn ich es wie oben eingebe muss ich noch immer zweimal den Schalter betätigen
er versteht ja offenbar den steuerbefehl auch klein. Aber scheinbar geht auch groß.
Was meinst Du jetzt mit Du musst zweimal schalten?
Was genau macht Dein Schalter:
ZitatDer Sonoff hat keine fixe Verdrahtung zu den Lampen. Dieser sollte nur als WIFI Schalter funktionieren
ich habe gesagt ich habe es nicht verstanden :o
Es ist ein Taster? Ein Schalter?
Was sendet dieser WIFI Schalter
wenn Du
was tust?
Weißt Du ich habe keine Sichtverbindung zu deinem Schalter und muss immer raten. Du musst etwas mehr Infos liefern!
Vielleicht willst Du bei ON und OFF schalten? Dann musst DU den trigger ändern
WZ_Schalter3:result-power3:.(ON|OFF)
Sonoff Schalter => dieser hat 3 Tasten
1.Schalter ist mit einer Lampe verkabelt
2.Schalter funktioniert nur als WIFI Schalter in Kombination mit Shelly (Licht1)
3.Schalter funktioniert nur als WIFI Schalter in Kombination mit Shelly (Licht2)
Shelly Schalter
1.Schalter ist mit Licht1 verdrahtet
2.Schalter ist mit Licht2 verdrahtet
Mit dem 2.Schalter vom Sonoff will ich auch das Licht1 ein und ausschalten
Mit dem 3.Schalter vom Sonoff will ich auch das Licht2 ein und ausschalten
Wenn ich jetzt also zuerst den 2.Schalter vom Sonoff betätige soll das Licht1 angehen, dann möchte ich aber auch mit dem Shelly (Schalter 1) das Licht1 ausschalten können.
So wie es jetzt aktuell ist kann ich zwar mit dem Shelly (Schalter1) das Licht1 ausschalten, der Sonoff (2.Schalter) bleibt allerdings auf ON stehen.
Wenn ich jetzt mit dem Sonoff (2.Schalter) das Licht wieder einschalten will muss ich zweimal den Schalter betätige.
Der Sonoff schalter hat auch noch eine LED, wenn der Schalter ON ist leuchtet die LED....
ich hoffe es ist nun etwas verständlicher :-)
List vom Schalter 3
Internals:
DEF Wohnzimmer /smarthome/Wohnzimmer/%topic%/%prefix%
FULL_TOPIC /smarthome/Wohnzimmer/Wohnzimmer/%prefix%
FUUID 5e2f4a0e-f33f-efec-7213-7a5b58032c298024
IODev Mosquitto
MODULE_VERSION 0.5
NAME WZ_Schalter3
NOTIFYDEV Wohnzimmer /smarthome/Wohnzimmer/%topic%/%prefix%
NR 126
READY 1
STATE OFF
TOPIC Wohnzimmer
TYPE TASMOTA_DEVICE
READINGS:
2020-01-31 22:49:23 lwt Online
2020-01-31 22:50:18 result-power2 OFF
2020-01-31 22:56:06 result-power3 OFF
2020-01-31 22:51:51 state ON
2020-01-31 23:03:44 state-heap 27
2020-01-31 23:03:44 state-loadavg 19
2020-01-31 23:03:44 state-mqttcount 35
2020-01-31 23:03:44 state-power1 OFF
2020-01-31 23:03:44 state-power2 OFF
2020-01-31 23:03:44 state-power3 OFF
2020-01-31 23:03:44 state-sleep 50
2020-01-31 23:03:44 state-sleepmode Dynamic
2020-01-31 23:03:44 state-time 2020-01-31T23:03:44
2020-01-31 23:03:44 state-uptime 4T03:49:28
2020-01-31 23:03:44 state-uptimesec 359368
2020-01-31 23:03:44 state-wifi-ap 1
2020-01-31 23:03:44 state-wifi-bssid 98:9B:CB:B5:9F:21
2020-01-31 23:03:44 state-wifi-channel 1
2020-01-31 23:03:44 state-wifi-downtime 0T00:00:12
2020-01-31 23:03:44 state-wifi-linkcount 3
2020-01-31 23:03:44 state-wifi-rssi 76
2020-01-31 23:03:44 state-wifi-signal -62
2020-01-31 23:03:44 state-wifi-ssid Fritzbox
2020-01-31 23:03:44 transmission-state incoming publish received
message_ids:
publishSets:
:
topic /smarthome/Wohnzimmer/Wohnzimmer/cmnd/POWER3
values:
ON
OFF
ON
OFF
sets:
OFF
ON
subscribe:
/smarthome/Wohnzimmer/Wohnzimmer/stat/POWER
/smarthome/Wohnzimmer/Wohnzimmer/stat/UPGRADE
/smarthome/Wohnzimmer/Wohnzimmer/stat/RESULT
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS1
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS2
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS3
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS4
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS5
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS6
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS7
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS8
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS9
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS10
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS11
/smarthome/Wohnzimmer/Wohnzimmer/tele/STATUS
/smarthome/Wohnzimmer/Wohnzimmer/tele/LWT
/smarthome/Wohnzimmer/Wohnzimmer/tele/ENERGY
/smarthome/Wohnzimmer/Wohnzimmer/tele/INFO1
/smarthome/Wohnzimmer/Wohnzimmer/tele/INFO2
/smarthome/Wohnzimmer/Wohnzimmer/tele/INFO3
/smarthome/Wohnzimmer/Wohnzimmer/tele/SENSOR
/smarthome/Wohnzimmer/Wohnzimmer/tele/STATE
/smarthome/Wohnzimmer/Wohnzimmer/tele/UPTIME
/smarthome/Wohnzimmer/Wohnzimmer/tele/RESULT
subscribeExpr:
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/POWER$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/UPGRADE$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/RESULT$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/STATUS$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/STATUS1$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/STATUS2$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/STATUS3$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/STATUS4$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/STATUS5$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/STATUS6$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/STATUS7$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/STATUS8$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/STATUS9$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/STATUS10$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/stat\/STATUS11$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/tele\/STATUS$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/tele\/LWT$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/tele\/ENERGY$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/tele\/INFO1$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/tele\/INFO2$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/tele\/INFO3$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/tele\/SENSOR$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/tele\/STATE$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/tele\/UPTIME$
^\/smarthome\/Wohnzimmer\/Wohnzimmer\/tele\/RESULT$
subscribeQos:
/smarthome/Wohnzimmer/Wohnzimmer/stat/POWER 0
/smarthome/Wohnzimmer/Wohnzimmer/stat/RESULT 0
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS 0
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS1 0
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS10 0
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS11 0
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS2 0
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS3 0
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS4 0
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS5 0
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS6 0
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS7 0
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS8 0
/smarthome/Wohnzimmer/Wohnzimmer/stat/STATUS9 0
/smarthome/Wohnzimmer/Wohnzimmer/stat/UPGRADE 0
/smarthome/Wohnzimmer/Wohnzimmer/tele/ENERGY 0
/smarthome/Wohnzimmer/Wohnzimmer/tele/INFO1 0
/smarthome/Wohnzimmer/Wohnzimmer/tele/INFO2 0
/smarthome/Wohnzimmer/Wohnzimmer/tele/INFO3 0
/smarthome/Wohnzimmer/Wohnzimmer/tele/LWT 0
/smarthome/Wohnzimmer/Wohnzimmer/tele/RESULT 0
/smarthome/Wohnzimmer/Wohnzimmer/tele/SENSOR 0
/smarthome/Wohnzimmer/Wohnzimmer/tele/STATE 0
/smarthome/Wohnzimmer/Wohnzimmer/tele/STATUS 0
/smarthome/Wohnzimmer/Wohnzimmer/tele/UPTIME 0
Attributes:
DbLogExclude .*
IODev Mosquitto
publishSet ON OFF ON OFF /smarthome/Wohnzimmer/Wohnzimmer/cmnd/POWER3
stateFormat result-power3
Uiuiui.
Also das hier "Sonoff Schalter => dieser hat 3 Tasten" bedeutet: Taste 1 x drücken liefert on 2 x drücken liefert off?
Also dein Schalter 3 toggelt schon? ???
Dann musst Du eventuell einfach den Ausführungsteil so machen:
set WZ_Schalter5 $EVTPART1
Und Du musst eine Rückkopplung des STATE vom WZ_Schalter5 zum WZ_Schalter3 machen. Ginge mit setstate WZ_Schalter3 [WZ_Schalter5]
Ich bin mittlerweile ziemlich durcheinander.
Danke für deine schnellen Antworten und das ich dich schon verwirre .....
Aber immerhin klappt schon einiges mehr als davor
ZitatAlso das hier "Sonoff Schalter => dieser hat 3 Tasten" bedeutet: Taste 1 x drücken liefert on 2 x drücken liefert off?
Taste 1x drücken liefert ON zurück
Taste nochmals drücken liefert OFF zurück
Irgendwie muss man schaffen dass der Shelly Schalter dem Sonoff Schalter sagt, dass dieser ein Oder ausgeschaltet ist
Der Status am Sonoff sollte immer dem Shelly entsprechen. Shelly ON = Sonoff ON
Du willst einfach beide synchron haben. Ok. Da habe ich schon mal was gemacht. Liefere ich nach ....
Edit
Einfach zwei notify - alles andere weg!
Entweder geht es so
define nty_WZ3 notify WZ_Schalter3:(ON|OFF) set WZ_Schalter5:FILTER=STATE!=$EVENT $EVENT
define nty_WZ5 notify WZ_Schalter5:(ON|OFF) set WZ_Schalter3:FILTER=STATE!=$EVENT $EVENT
aber - ich bin ich mir mit den Events nicht sicher, kann sein das Reading muss mit rein:
define nty_WZ3 notify WZ_Schalter3:result-power3:.(ON|OFF) set WZ_Schalter5:FILTER=STATE!=$EVTPART1 $EVTPART1
define nty_WZ5 notify WZ_Schalter5:result-power2:.(ON|OFF) set WZ_Schalter3:FILTER=STATE!=$EVTPART1 $EVTPART1
Kann man vielleicht auch in Einem machen. aber probier mal, dies. Ob es das ist was Du willst.
Ich hoffe ich habe mich nicht mit den Events vertan....
Gute Nacht
Otto
P.S. So nach dem Schema kann man ein notify draus machen, musst Du wissen ob man da in 2 Jahren noch weiß was man wollte :)
define nty_Aktor12synchron notify Aktor[1,2]:(on|off) {my $act=($NAME eq "Aktor2")?"1":"2";;fhem("set Aktor$act:FILTER=STATE!=$EVENT $EVENT")}
Super Danke
Nun funktioniert alles!! :D ;D
Folgenden Code hab ich verwendet
define nty_WZ3 notify WZ_Schalter3:result-power3:.(ON|OFF) set WZ_Schalter5:FILTER=STATE!=$EVTPART1 $EVTPART1
define nty_WZ5 notify WZ_Schalter5:result-power2:.(ON|OFF) set WZ_Schalter3:FILTER=STATE!=$EVTPART1 $EVTPART1
TASMOTA_DEVICE WZ_Schalter3 result-power2: OFF
Mein WZ_Schalter3 besteht ja aus 3 Schalter
für Schalter 1 gibt er result-power1 aus
für Schalter 2 gibt er result-power2 aus
für Schalter 3 gibt er result-power3 aus
wie könnte ich hier auf diese Status filter?
set WZ_Schalter3:FILTER=STATE!=$EVTPART1 $EVTPART1
Aktuell hab ich einfach einen WZ_Schalter2 angelegt und ich filter nach diesem? Das geht aber sicher auch einfacher :-)
Du kannst gerne mit FILTER experimentieren. Ist hier genau dokumentiert.
https://commandref.fhem.de/#devspec
Mit list kannst Du gut testen ob der Filter stimmt.
STATE ist ein Internal state ist ein Reading, Du kannst jedes andere Reading nehmen.
Also Beispiel:
list WZ_Schalter3:FILTER=STATE!=ON
list WZ_Schalter3:FILTER=result-power2=ON
Du kannst meines Wissens in allen Positionen regExp verwenden. Wenn Du wissen willst welche Device im state on stehen haben:
list .*:FILTER=state=on
Gruß Otto
Danke vorab einmal wieder für deine Hilfe....
Das mit den Filter bekomme ich nicht hin...
Ich hab das jetzt einmal so aufgebaut und so funktioniert es auch? (kann man es ev vereinfachen?)
Schalter2 und Schalter3 = WIFI Schalter Sonoff
Schalter4 und Schalter5 = Verkabelter Schalter Shelly
Schalter2: publishSet ON OFF ON OFF /smarthome/Wohnzimmer/Wohnzimmer/cmnd/POWER2
Schalter3: publishSet ON OFF ON OFF /smarthome/Wohnzimmer/Wohnzimmer/cmnd/POWER3
Schalter4: publishSet ON OFF ON OFF /smarthome/EG/Wohnzimmer/cmnd/POWER1
Schalter5: publishSet ON OFF ON OFF /smarthome/EG/Wohnzimmer/cmnd/POWER2
nty_WZ2 = WZ_Schalter2:result-power2:.(ON|OFF) set WZ_Schalter4:FILTER=STATE!=$EVTPART1 $EVTPART1
nty_WZ3 = WZ_Schalter3:result-power3:.(ON|OFF) set WZ_Schalter5:FILTER=STATE!=$EVTPART1 $EVTPART1
nty_WZ4 = WZ_Schalter4:result-power1:.(ON|OFF) set WZ_Schalter2:FILTER=STATE!=$EVTPART1 $EVTPART1
nty_WZ5 = WZ_Schalter5:result-power2:.(ON|OFF) set WZ_Schalter3:FILTER=STATE!=$EVTPART1 $EVTPART1
Naja dazu fällt mir auch nix ein. So ist es systematisch und übersichtlich. Letztlich musst Du die Schalter immer abbilden und 1:1 verknüpfen. Ob über STATE oder über ein Reading ist am Ende egal.
Mir ist nicht klar wie Du
ZitatMein WZ_Schalter3 besteht ja aus 3 Schalter
für Schalter 1 gibt er result-power1 aus
für Schalter 2 gibt er result-power2 aus
für Schalter 3 gibt er result-power3 aus
schalten könntest, wenn er nur Readings anzeigt.
Gruß Otto
Hallo, ich hab die Schalter ja wie oben beschrieben jetzt definiert. Soweit funktioniert ja alles. Hab jetzt nur das Problem wenn ich die Schalter schnell aus und wieder einschalte, das ich in einem Dauerloop hängen bleib?
Gibts hier eine abhilfe? Vielleicht eine Zeitverzögerung einbauen?
Hi,
kommt wahrscheinlich schon dadurch, das die MQTT Schalter schon leicht verzögern. Da kommt der Status zu spät?
Kannst Du machen, die Frage ist ob das Ganze nicht unbedienbar wird. Mein Testkonstrukt stammt aus einer Umgebung wo der Status sofort zurück kommt.
sleep 1;set ...
kannst Du probieren? Ansonsten müsstest Du den Status anderweitig speichern und abfragen?
Gruß Otto
danke, habs jetzt allerdings mit disabledAfterTrigger gelöst. Scheint nun auch zu funktionieren
Was meinst du mit "Ansonsten müsstest Du den Status anderweitig speichern und abfragen"
Naja nur ins unreine gedacht: Du speicherst den Sollzustand in einem Reading/Dummy und fragst den auch ab.
Du schaltest quasi parallel: einmal als dummy und einmal in echt.