NEWS
[Adapter] Shelly Adapter mit MQTT
-
@Shepherd , ich lasse QoS 1 und 2 gerade von Shelly prüfen. Wenn ich QoS 1 Nachrichten verschicke, erhalte ich keine Nachricht des Erhalts der geschickten Nachricht. Egal ob ich 1 oder 120 Sekunden warte
-
@Shepherd , Ich habe von Shelly eine Antwort erhalten. QoS 1 und 2 werden unterstützt. Schein meiner Meinung aber sehr Buggy zu sein. Mal werden QoS 1 Nachrichten gesendet, dann wieder nicht. Verstanden habe ich es bisher nicht. Bei QoS 2 sieht es noch schlimmer aus.
Stellt man im ioBroker Shelly Adapter nun auf QoS 1 oder 2, kann es sein, dass Shelly keine puback Nachricht (Acknowledge) schickt. Dann schicke ich die Message nach ein paar Sekunden nochmals. Das führt zu interessanten Konstellationen.
Du kannst ja gerne einmal Testen und mir Feedback geben. -
@Stuebi
Werde ich testen, und beobachten, benutze normal per MQTT QoS 2 mit den Shellys.
So habe ich sie auch alle konfiguriert.
Ich berichte wenn ich beobachtet habe. -
@Shepherd sagte in [Adapter] Shelly Adapter mit MQTT:
@Stuebi
Werde ich testen, und beobachten, benutze normal per MQTT QoS 2 mit den Shellys.
So habe ich sie auch alle konfiguriert.
Ich berichte wenn ich beobachtet habe.Ich bin gespannt, da ich im Debugger bei meinem Shellys immer nur das QoS 1 Protokoll sehe.
-
@Stuebi
Sorry meinte 1 nicht 2.
verwechsle dies immer weill ich normal bei 1 anfange zu zählen und 3 auswahlmöglichkeiten sind, aber bei null anfängt. -
Nach dem Update auf die Shelly Adapter Version mit MQTT bekomme ich immer folgende Fehlermeldungen wenn ich meinen Shelly 2.5 schalte. Aber das Schalten funktioniert...
2019-06-01 21:53:07.582 - error: shelly.0 Error in function state.coap.http_cmd_funct for state SHSW-25#745559#1.Relay1.Switch for 192.168.123.45 (shellyswitch25 / shellyswitch25-745559 / SHSW-25#745559#1) (TypeError: Cannot read property 'log' of undefined)
-
@eumats , Fehler ist bekannt. Hat aber keine Auswirkungen auf die Funktionalität. In der Version 3.0.3 ist der behoben
-
Hallo,
ich habe nun auch einen Shelly 1PM.
Das anbinden mittels Shelly Adapter v3.0.8 über MQTT ging auch wunderbar.
Nun habe ich aber das Problem, das ich über IOBroker nicht schalten kann. Wenn ich über die Webseite ein oder ausschalte, dann aktualisiert es das auch im IOBroker, wenn ich aber im Switch "true" oder "false" eintrage, dann passiert nix.
Am Ende möchte ich darüber meinen Trocker schalten.
Hat jemand eine Idee was ich machen kann?
VG
Lindi -
@lindi200000 , sollte funktionieren und ich habe ein paar Geräte im Einsatz
- Hast Du noch andere Shelly's im Einsatz und funktionieren die?
- Hast Du im Shelly und ioBroker auch QoS 0 eingestellt?
- Stimmen Username und Passwort von MQTT in ioBroker und Shelly überein? Das ist nicht das Shelly Cloud Passwort oder das Shelly Web Passwort
- Leider hast Du den Hostnamen geschwärzt. Steht dort eine interne IP Adresse oder Hostname? Ist der Hostname auch wirklich der Shelly der dort steht? Versuche einmal den Aufruf http://<hostname>.
- Steht irgendetwas auffälliges im ioBroker Logfile wenn Du schaltest? Wenn nicht, dann debug Modus für den Shelly aktivieren und nochmals schalten und ins Logfile schauen.
-
@Stuebi thx für die Tipps, bin nochmal alles durchgegangen und jetzt klappt es. Ist mein erster Shelly Adapter.
-
Hallo Zusammen,
hab meinen ersten Shelly1 in Aktion gebracht!
In Unwissenheit hab ich ihn über MQTT eingebunden ... hat wunderbar geklappt.
Jetzt habe ich diesen Adapter gefunden, der mir weit aus besser gefällt, schon allein wegen der vielen Infos und Einstellungen. An der Stelle herzlichen Dank für deine Mühe, Stuebi!!!Jetzt zu meinem Anliegen:
Es war über MQTT möglich den Status des Schalters zu sehen, hier seh ich ihn nicht mehr ... gibt es da alternative Optionen um diesen auszulesen?
Danke und schönes WE wünsche ich
Grüße Plasma
-
@Plasmachef sagte in [Adapter] Shelly Adapter mit MQTT:
ar über MQTT möglich den Status des Schalters zu sehen, hier seh ich ihn nicht mehr ... gibt es da alternative Optionen um diesen auszulesen?
den Status des Schalters siehst Du über den Datenpunkt
shelly.0.SHSW-1#XXXXXX#1.Relay0.Switch
. Du kannst darüber den Status ändern und ablesen. D.h. wenn Du z.B. den Status per Lichtschalter änderst, wird die Statusänderung inshelly.0.SHSW-1#XXXXXX#1.Relay0.Switch
angezeigt (true = on / false = off. Möchtest Du das Licht an bzw. aus schalten musst Du den Wert anshelly.0.SHSW-1#XXXXXX#1.Relay0.Switch
auf true oder false setzen.
Wenn Du Dich jetzt fragst, wie kann ich denn sicherstellen, dass der Status den ich per ioBroker gesetzt habe auch wirklich beim Shelly angekommen ist, geht das wie folgt. Wenn Du den Status z.B. von false auf true setzt dann ist das Werte Feld rot (d.h. acknowledge (ack) = false). Wenn die Bestätigung vom Shelly kommt, das der Wert wirklich auf true gesetzt wurde, wird das Feld grün (ack = true). Wahrscheinlich kommt die Bestätigung so schnell, das das Feld immer grün bei Dir ist.Was es aber nicht gibt im Gegensatz zum MQTT Adapter, ein Datenpunkt zum setzen des Status un einen anderen Datenpunkt zum ablesen des Status.
Ich hoffe ich konnte Deine Frage beantworten?
VG
Stübi -
Danke dir für die schnelle und sehr ausführliche Antwort!
Sicherlich habe ich mich ungenau ausgedrückt:
Mit Schalter meine ich den Hardware-Schalter, den ich ja direkt am Shelly1 öffnen und schließen kann.
Leider spiegelt aber der Datenpunkt ".....Switch" nicht den Schalter wieder sondern das geöffnete bzw. geschlossene Relais.
Somit kann ich zwar über den Schalter bei entsprechenden Einstellungen über die Webseite das Relais ein und ausschalten und damit synchron zum Relais mich verhalten ... aber wenn ich den Datenpunkt "....Switch" anspreche, ändert sich ja nicht der "Hardware-" Schalter, dieser bleibt unbeeindruckt auf offen oder geschlossen stehen (was ja auch völlig verständlich ist).
MQTT hat da 2 Datenpunkte zur Darstellung: Den Schalter und das RelaisKonnte ich mich verständlich machen?
Grüße Plasma
-
@Plasmachef sagte in [Adapter] Shelly Adapter mit MQTT:
ich habe es leider nicht verstanden. Wie heißen denn die Beiden Objekte im MQTT Adapter?
Du meinst nicht die MQTT states unten?shellies/<model>-<deviceid>/relay/0
oder
shellies/<model>-<deviceid>/relay/0/command
Nachtrag:
folgende MQTT States werden für den Shelly 1 und 1pm angeboten:shelly.0.SHSW-1#XXXXXX#1.Relay0.Switch
shellies/<model>-<deviceid>/relay/0 (lesen)
shellies/<model>-<deviceid>/relay/0/command (schreiben)shelly.0.SHSW-1#XXXXXX#1.Relay0.Input
shellies/<model>-<deviceid>/input/0 (lesen)shelly.0.SHSW-1#XXXXXX#1.Relay0.longpush
shellies/<model>-<deviceid>/longpush/0 (lesen)Dann sind da noch Power, Energy und Temperature.
-
sorry, dass es länger gedauert hat.
musste erst wieder auf MQTT umschalten und Screenshot machen.Dein Nachtrag erklärt aber auch schon sehr viel.
Ich rede vom Input, das ist ja der Hardwareschalter, den man auslesen kann um zu sehen welche Position er hat. Kann ich den im Adapter irgendwo sehen?
Er läuft ja nicht immer synchron mit dem Switch (siehe zum mein Bild) -
@Plasmachef sagte in [Adapter] Shelly Adapter mit MQTT:
Ich rede vom Input, das ist ja der Hardwareschalter, den man auslesen kann um zu sehen welche Position er hat.
darf ich fragen, wofür diese Information relevant sein könnte?
Ich hätte erwartet, dass es vor allem darauf ankommt ob ein Verbraucher ein- oder ausgeschaltet wurde, ganz gleich ob von einem Script, einem Schalter oder aus sonst einem Grund.Was aber fange ich mit der Information einer Schalterstellung an?
(ich selbst setze ausschliesslich Taster ein) -
@Plasmachef , Du meinst also im MQTT Adapter den Datenpunkt
shellies/<model>-<deviceid>/input/0
. Der wird im Shelly Adapter als Datenpunktshelly.0.SHSW-1#XXXXXX#1.Relay0.Input
angeboten.
Wenn Du die Datenpunkteshellies/<model>-<deviceid>/relay/0
undshellies/<model>-<deviceid>/relay/0/command
meinst, die sind im Adapter wie oben beschrieben als einen Datenpunktshelly.0.SHSW-1#XXXXXX#1.Relay0.Switch
zusammengefasst . Deshalb kann man diesen Datenpunkt auch lesen und beschreiben.
Zusammengefasst der Shelly Adapter stellt alle MQTT Daten zur Verfügung. -
@Plasmachef , der Wert in .Input läuft nicht Synchron mit dem .Switch. Wenn ich z.B. den Wert in .Switch in ioBroker ändere, ändert sich die Lichtschalterposition ja nicht.
Aber vielleicht habe ich es immer noch nicht verstanden. -
@Stuebi sagte in [Adapter] Shelly Adapter mit MQTT:
@Plasmachef , Du meinst also im MQTT Adapter den Datenpunkt
shellies/<model>-<deviceid>/input/0
. Der wird im Shelly Adapter als Datenpunktshelly.0.SHSW-1#XXXXXX#1.Relay0.Input
angeboten.Ich glaube dann fehlt mir da was
@BBTown sagte in [Adapter] Shelly Adapter mit MQTT:
darf ich fragen, wofür diese Information relevant sein könnte?
Ich hätte erwartet, dass es vor allem darauf ankommt ob ein Verbraucher ein- oder ausgeschaltet wurde, ganz gleich ob von einem Script, einem Schalter oder aus sonst einem Grund.Was aber fange ich mit der Information einer Schalterstellung an?
(ich selbst setze ausschliesslich Taster ein)Es ist sicherlich nicht entscheidend, aber ich möchte die Teile in eine bestehende Wohnung mit Schaltern einbringen, die dann ggf. auch etwas anderes steuern als wie vorgesehen über den ursprünglichen (Licht-)Schalter.
Beispiel:
- Lichtsteuerung über Bewegungsmelder
- Schalter ist nicht mehr nötig, die Hardware hinter der Wand schaltet das Licht aber noch (indirekt über IOBroker)
- Schalter kann jetzt Trigger für was (ganz) anderes sein
Danke und Grüße Plasma
-
@Stuebi sagte in [Adapter] Shelly Adapter mit MQTT:
@Plasmachef , der Wert in .Input läuft nicht Synchron mit dem .Switch. Wenn ich z.B. den Wert in .Switch in ioBroker ändere, ändert sich die Lichtschalterposition ja nicht.
Aber vielleicht habe ich es immer noch nicht verstanden.KORREKT, genau das meine ich ja
Das eine ist der Hardwareschalter (Input), das andere ist das Relay(Switch), deshalb is es ja auch interessant beide zu sehen