NEWS
Shelly per MQTT schalten geht nicht
-
@gutgut30 Quatsch - ich habe gezeigt wie man das mit dem Alias macht, mit unterschiedlichen Datenpunkten zu Lesen und Schreiben.
https://forum.iobroker.net/post/979214
Zum Lesen den Relay0 Datenpunkt, zum Schreiben den Command Datenpunkt und auch die unterschiedlichen Konvertierungsfunktionen sind in dem Screenshot - mehr kann man glaub ich nicht zeigen. Wenn Du Fragen hast, dann frag - wenn Du lieber den Shelly Adapter nutzen willst, kannst Du das gerne tun, wenn nicht habe ich es in dem Beitrag gezeigt, wie es geht.
Wie gesagt, dass ist kein Grund deswegen den Shelly Adapter zu nutzen. In dem Beitrag unten zeigt der Alias dann nur nicht on/off sondern true/false zum Schalten und als Status an.
-
-
@gutgut30 Das ist doch verkehrt rum.
Du liest doch den Status aus relay.0
und schreibst den Status in relay.0.commandund die Konvertierung hast Du auch nicht richtig abgeschrieben:
Ausserdem mach das nicht mit dem "BLÖDEN" Geräteadapter sondern trage das in den Alias direkt in den Objekten ein.
Dieser Adapter macht Dir alles kaputt. -
@mickym OMG - du hast Recht, ich hab lesen und schreiben vertauscht. Ich Idiot! Danke.
Die Konvertierung habe ich tatsächlich nicht aus diesem Thread, die Syntax sollte aber passen. Checke ich noch mal.
-
@gutgut30 Na und schmeiß diesen Geräteadapter raus - der macht nur UNSINN. Mach das direkt im Alias Datenpunkt in den Objekten. Dieser Geräteadapter macht mehr kaputt, als er ganz macht. Das habe ich schon mehrfach ausprobiert - ICH kann nur abraten.
-
@gutgut30 sagte in Shelly per MQTT schalten geht nicht:
Die Konvertierung habe ich tatsächlich nicht aus diesem Thread, die Syntax sollte aber passen. Checke ich noch mal.
ist nur umständlich, weil val == true ? - entspricht val ?
Aber ich habe keine Ahnung warum ich alles da rein schreibe, wenn man es sich dann irgendwoher sucht. Aber am Schlimmsten ist der Geräteadapter - das ist wahrscheinlich auch wieder ein Video aus dem vorigen Jahrhundert.
-
@mickym
Bin das Spielchen gerade noch mal durch. Auch das klappt nicht. Liegt aber auch wieder am command, das auf off bleibt. Denn auch der Alias macht am Ende ja auch nichts anderes, als aus dem false ein off zu schreiben. Daher aber der command auf off bleibt wenn ich extern schalte, gewinne ich hier nichts.Also doch ein Adapter-Versuch
Edit: Alternativ setze ich den Shelly von Edge Switch auf Detached Switch und steure nur im iobroker. Nicht die eleganteste Lösung, aber dann würde immerhin alles über den command laufen und dieser immer korrekt sein.
-
@gutgut30 Ich kann Dir nur sagen es geht. Vergiss den Device Adapter und mach es so wie ich beschrieben habe. Wenn Du den Schalter physisch betätigst, dann springt der relay.0 auf den Zustand um. Der command Datenpunkt wird im Alias nie angezeigt, in den wird nur geschrieben. Ich kann Dir nur sagen es funktioniert - ich habe es selbst ausprobiert.
Und zwar gerade nochmal:
WICHTIG ist, dass Du den Alias als Logikwert definierst. Wir können es gerne Schritt für Schritt durchgehen:
Ich hab da zwar toggle switch, aber das spielt keine Rolle.
Also Fragen;
- Neuen Alias selbst unter 0.alias - ohne irgendwelche Adapter als Logikwert erstellt?
- relay/0 Datenpunkt zum Lesen im Alias Tab definiert?
- relay/0/command Datenpunkt zum Schreiben im Alias Tab definiert
- Konvertierungsfunktion beim Lesen:
val == "on" ? true : false
- Konvertierungsfunktion beim Schreiben
val ? "on" : "off"
Wichtig ist, dass der Aliasdatenpunkt als Logikwert angelegt wurde.
Wenn der Aliasdatenpunkt als Alias angelegt wurde, dann kannst Du keinen Text mehr eingeben:
Und wie immer beim Schalten - darf man das ganz nur "unbestätigt" schalten - das heißt der Haken Bestätigt darf NIE gesetzt sein.
Und egal welchen Schaltertyp (ausser detached) Du verwendest - relay/0 gibt immer den aktuellen Status des Relais aus (egal welcher Schaltertyp - und egal ob Du am Schalter, in einer App oder über VIS geschaltet hast).
-
@mickym
Ich hab es letztendlich genau so aufgebaut. Aber wie gesagt, wenn das Command bei einer externen Aktionen nicht umschaltet, dann kann auch der Alias da nichts machen.Ich hab das ganze mal mit einem anderen Shelly 2.5 verglichen. Der andere setzt den Command bei externer Aktion korrekt identisch auf den Wert aus 0. Und dann klappt das auch. Die Settings beider Shellys sind absolut gleich. Auch nach einem Factory Reset tanzt dieser eine leider aus der Reihe.
Hab es jetzt mit einem Script gelöst, dass das Command identisch zum relay hält. Vielleicht hat der Shelly einfach einen weg, so gehts jetzt aber.
Danke & frohe Tanne
-
@mickym hallo könnte mir auch jemand helfen.
Ich möchte auch shelly über mqtt adapter schalten.
das Read funktion geht wenn ich den relai über den Web von shelly schalte, dann Aktualisiert sich das Datenpunkt , möchte ich aber über iobroker schalten geht es nicht habe den datenpunkt command nicht unter reali nur 0 befehl on oder off geht nicht.Muss ich den datenpunkt comman selber erstellen wenn ja wie??? -
@exitus ja du musst den Datenpunkt selbst erstellen. Entweder direkt in der Objektansicht oder indem Du „on“ off direkt im topic
xxxxx/command/switch:0
publishst. Geht auch mit einer mqtt App auf dem Handy wenn du dich mit dem mqtt Broker verbindest.
Mit Blockly gibts auch direkt ein mqtt Puzzleteil.
-
@mickym danke erstmal.
Wie muss es den heissen bzw . Wie mache Ich es über App.
Zb mein Datenpunkt ist
mqtt.4.shellies.Garage_vorne.relay.0
Muss ich jetzt einfach unter garage_vorne Ordner in Objekt ein datenpunkt erstellen der so ist
mqtt.4.shellies.Garage_vorne.relay.command
Oder
mqtt.4.shellies.Garage_vorne.relay.0.command
Das erste klappt nicht -
@exitus sagte in Shelly per MQTT schalten geht nicht:
mqtt.4.shellies.Garage_vorne.relay.0.command
Wenn es ein Generation 1 ist dann ist we wohlmqtt.4.shellies.Garage_vorne.relay.0.command
Wenn es Gen 2 oder 3 ist dann wihl
mqtt.4.shellies.Garage_vorne.command.switch:0
-
@exitus sagte in Shelly per MQTT schalten geht nicht:
mqtt.4.shellies.Garage_vorne.relay.0.command
Das erste klappt nichtNa wenn das klappt ist es doch OK - Gen1
-
verschoben