NEWS
MQTT - Shelly
-
@hunterhb Du brauchst nicht mehrer Instanzen - was ist denn Dein Broker?
-
@mickym Broker? Wo IOBroker läuft?
-
@hunterhb Dann hast Du mqtt nicht verstanden. Jeder mqtt Client publiziert seine Informationen an einen Broker. Dieser Broker verteilt wiederum die Information an die Clients, die ein topic abonniert haben.
Vielleicht solltest Du Dich mit den Grundzügen von mqtt vertraut machen. Du kannst auch den mqtt Adapter als Broker konfigurieren - allerdings hat der auch manchmal Fehler - dann würde ich mosquitto als Broker empfehlen.
Falls Du weitere Hilfe zum Verständnis brauchst - irgendjemand hat mal eine Doku geschrieben - finde die aber nicht - aber ich habe das Prinzip auch schon xmal erklärt
-
@mickym Wenn das aber so ist, muss doch MQTT-Broker als Server (im Adapter) eingestellt werden? und die Temperaturfühler (Shellys) sind die Clients. Die Visu-Hardware meldet sich dann am Server (Adapter) an. Aber soweit komm ich ja gar nicht, weil kein 2ter Client (Temperaturfühler) mit dem MQTT-Broker (Adapter) sprechen will.
-
@hunterhb Ein MQTT-Broker spricht mit belieb vielen Clients. Du musst halt schauen, dass kein weiterer Adapter in Deinem iobroker System einen Broker simuliert, wie Sonoff, Shelly Adapter usw. - die alle mqtt-Broker vorgaukeln.
Ansonsten musst Du halt einen eigenen Port verwenden. Schau halt dass Du keine Adapter laufen, die mqtt sprechen wollen.
-
@mickym Folgende Anleitung habe ich beachtet:
GitHub_shelly-adapter
Geht aber trotzdem nicht. Warum sprechen die anderen Shellys nicht mit dem Broker.
Gibt es eine Möglichkeit ohne MQTT die Shellys anzusprechen.
Folgende Fehlermeldung im Log:[httpIoBrokerState] Error for state shellypro4pm#34987a45bca8#1.Cloud.enabled for 192.168.178.112 (shellypro4pm / shellypro4pm-34987a45bca8 / shellypro4pm#34987a45bca8#1) "/rpc/Cloud.GetConfig": SyntaxError: Unexpected token < in JSON at position 0 - value: "<!DOCTYPE html> <html> <body> <input type="hidden" id="http" name="http" value="5000"> <input type="hidden" id="https" name="https" value="5001"> <input type="hidden" id="prefer_https" name="prefer_https" value="true"> </body> <script type="text/javascript"> var protocol="https:"; var port=5001; var URL=protocol+"//"+location.hostname+":"+port+location.pathname+location.search; location.replace(URL); </script> </html> "
-
@hunterhb Ja wie gesagt entweder Du nutzt den Shelly Adapter oder den MQTT Adapter - wenn beides dann nur auf unterschiedlichen Ports. Wenn Du den Shelly Adapter nimmst - dann lösche Deine MQTT-Adapter wieder. Falls der Shelly Adapter damit nicht umgehen kann mit Deinem Gerät - dann kannst Du den MQTT-Adapter nehmen aber dann ohne Shelly Adapter. Schau halt ob Dein Shelly 4PM von dem Shelly Adapter unterstützt wird.
Ich benutze keinen Shelly Adapter sondern nur MQTT mit Shellies - deswegen bin ich keine Hilfe. Aber wie gesagt lösche Deine MQTT-Adapter wenn Du den Shelly Adapter nutzt.
Coap geht nur bei Gen1 Geräten deswegen brauchst Du MQTT.
Disable halt mal die Cloud, wenn die das Problem machen sollte.
-
@hunterhb sagte in MQTT - Shelly:
Ich kann aber nur mit einem über MQTT sprechen?
Wie @mickym schon schrieb, funktoniert MQTT andersrum.
Wenn Du 2 MQTTBroker-Adapter im ioBroker hast, z.B. den Shelly-Adapter im MQTT-Mode und den MQTT-Adapter müssen beide Apdater unterschiedliche Ports nutzen.
Im Shelly trägst Du den zu nutzenden Port je nach gewünschter Instanz mit ein!
Und bei jeder Änderung an den MQTT-Einstellungen mußt Du bei Gen.2 und Gen.3 im Shelly das Passwort neu setzen!
Viel Erfolg und schönen Sonntag.
PS:
Ich betreibe hier auch 2 Instanzen des Shelly-Adapters und 1 Instanz des MQTT-Adapters. Es funktioniert problemlos. -
Ich muss dazu auch mal eine Frage los werden. Ich habe einen PLUGS heute auf die 1.2.0 gehoben. Dabei hab ich die Verbindung zum ioB verloren. Dann hab ich den PLUGS zurück gesetzt und ihn auch aus der Objektliste gelöscht. Dann Daten in den PLUGS neu eingegeben und... nix passiert. Ich bekommen lediglich die Info über LOG:
shelly.0 2024-02-18 17:37:22.287 error [MQTT] DO NOT CHANGE THE CLIENT-ID OF YOUR SHELLY DEVICES (see adapter documentation for details)
shelly.0 2024-02-18 17:37:22.286 error [MQTT] (Shelly?) device unknown, configuration for client with id "plusplugs-..............." does not exist!
Ich hab aber mal den MQTT Broker installiert (zum Testen) und dort steht die Verbindung. Ich habe keine ID verändert.
Kann es sein, das im Shelly Adapter Reste vorhanden sind? Weiß jemand wo oder was ich noch löschen muss?
-
@letzi sagte in MQTT - Shelly:
PLUGS
welcher da wäre? gibt ja inzwischen einige generationen.
wie hast du das ding "zurück gesetzt" ?
wie hast du versucht das ding wieder einzubinden?
logs bitte in code-tags einfügen... -
-
Shelly PlusPlugS V2.
-
Beim stecken in die Steckdose den Button gedrückt halten. Dann mit der APP wieder in WLAN gezogen.
-
Ja hab ich. Habe auch eine weitere Instanz mit andrem Port installiert, gleicht Fehlermeldung.
-
code-tags, verstanden. Sorry.
-
-
Habe schon Shelly von einer zur anderen Instanz verschoben, ohne Probleme. Der PLUGS lässt sich über die Weboberfläche und über die APP steuern.
-
@letzi
1 ok, also nur mehr mqtt.
2 genügt den button eine zeit zu drücken (blinken). muss nicht beim einstecken sein.
kann latürnich etwas dauern bis er sein netz aufbaut. sehe gerade, will das handy. na, dann dort hinzufügen und los gehts.
wenns klemmt, dann halt ins netz einloggen und manuell das netzwerk eingeben.
3 warum? du verwendest die APP und den adapter. der werkelt auf 1882 im normalfall.
4 fein.
ich hab zwar keinen plusplugs, aber einen plus1pm. oops, der wollte ein update auf 1.2.0. ist für die poolpumpe, also hab ich da nicht nachgeschaut. tut wie er soll, auch im ioB.Habe schon Shelly von einer zur anderen Instanz verschoben, ohne Probleme. Der PLUGS lässt sich über die Weboberfläche und über die APP steuern.
wie jetzt? 2 instanzen shelly mqtt? 2 instanzen brauchst du nur wenn gen1 CoAP, gen2 MQTT. und das nur bei cloud verwendung.
-
Inzwischen sind es sogar 4 Instanzen in MQTT, für jeden Typ eine. Einige haben seit dem Update des Adapter auf 6.6.1. einen andre Fehler beim starten der PLUGS und PLUS1 Shellys https://github.com/iobroker-community-adapters/ioBroker.shelly/issues/859#issuecomment-1950295073
Um damit nicht auch die 1PM 3EM und UNIś zu belasten, hab ich das mal getrennt. Macht sich eigentlich gut. Hab fast 60 Shellys laufen. Aber zurück zum Thema:Ich weiß das ich die App nicht brauche, habe den PLUGS auch schon direkt neu aufgesetzt bzw. auch das Werksreset zum zurücksetzten genutzt. In der _data.json sind noch Einträge des Shelly vorhaben. Müssen die raus damit die Objekte neu angelegt werden können!
Screenshot 2024-02-18 18.57.56.png ? -
@letzi sagte in MQTT - Shelly:
Inzwischen sind es sogar 4 Instanzen in MQTT, für jeden Typ eine.
ist nicht dein ernst...
ich sags ja nicht gern, weil eigentlich nicht gewünscht. aber hol dir die latest vom shelly adapter...
ich bin auf 6.8.0
richte die 2 instanzen, falls coap und mqtt richtig ein, lösche alle objekte. kann dauern bis alle wieder auftauchen.
hab ca 90 shelly gemischt und keine probleme.edith: ist ja alles gut erklärt.
-
Es liegt nicht an der Anzahl der Instanzen. Hab mal einen neuen Shelly ausgepackt, mit WLan drauf und ins Netz eingebunden, RESTRICT LOGIN eingegeben, MQTT Daten rein und sofort da. Von Instanz 0 auf 3 verschoben ohne Problem.
Es kann nur am Adapter selbst oder an Resten im ioB liegen. Wo bekommt man bitte die Vorgängerversion der FW vom PLUGS? Oder irgendeine Beta.
-
@letzi sagte in MQTT - Shelly:
RESTRICT LOGIN
wozu bitte? angst vor dir selbst? IMHO die unnötigste funktion in der FW.
Wo bekommt man bitte die Vorgängerversion der FW vom PLUGS?
http://archive.shelly-tools.de/ schau da mal nach...
wenn du eine beta drauf hast, solltest du normal auch auf die letzte stable zurückkommen in der app, oder direkt im shelly.Es kann nur am Adapter selbst
darum mein hinweis auf die latest version...
-
Der PLUGS ist auf der 1.2.0. Eine downgrade oder eine alternative Tasmato FW verweigert er. Ich hab noch 2 weitere PLUGS entdeckt, die aussehen als wäre alles normal. Sie übermitteln nur nichts über MQTT.
Gleiche FW, gleiche Meldung im LOG und keine Reaktion beim downgrade.Dann warte ich mal auf das nächste Beta was ggf. den Fehler überschreibt.
-
@letzi seltsam... schon mal im forum nachgefragt?
https://www.shelly-support.eu/forum/board/282-shelly-plus-plug-s/
infos über shelly
https://shelly-api-docs.shelly.cloud/gen2/Devices/Gen2/ShellyPlusPlugS -
@hunterhb said in MQTT - Shelly:
@mickym Folgende Anleitung habe ich beachtet:
GitHub_shelly-adapter
Geht aber trotzdem nicht. Warum sprechen die anderen Shellys nicht mit dem Broker.
Gibt es eine Möglichkeit ohne MQTT die Shellys anzusprechen.
Folgende Fehlermeldung im Log:[httpIoBrokerState] Error for state shellypro4pm#34987a45bca8#1.Cloud.enabled for 192.168.178.112 (shellypro4pm / shellypro4pm-34987a45bca8 / shellypro4pm#34987a45bca8#1) "/rpc/Cloud.GetConfig": SyntaxError: Unexpected token < in JSON at position 0 - value: "<!DOCTYPE html> <html> <body> <input type="hidden" id="http" name="http" value="5000"> <input type="hidden" id="https" name="https" value="5001"> <input type="hidden" id="prefer_https" name="prefer_https" value="true"> </body> <script type="text/javascript"> var protocol="https:"; var port=5001; var URL=protocol+"//"+location.hostname+":"+port+location.pathname+location.search; location.replace(URL); </script> </html> "
Habe jetzt alles nur im Schnelldurchgang quer gelesen und weiß nicht, ob schon jemand den Hinweis gegeben hat.
Aber kann das sein, dass du dort einen älteren Shelly hast, der nicht Cloud und MQTT gleichzeitig kann und du aber die Cloud enabled hast. Glaube die aktuellen können das gleichzeitig.Schalte mal den Cloudzugriff im Shelly aus und schau mal, ob es dann funktioniert.