NEWS
[gelöst] Sonoff Adapter (via MQTT-Adapter und MegaD-Adapter)
-
Ich beschäftige mich gerade mit diesen Sonoff Modulen. Dabei stosse ich genau auf dasselbe Problem wie Alex1808 am Thread-Anfang :
@Alex1808:Habe eine FW mit MQTT Unterstützung gefläscht (diese: https://github.com/arendst/Sonoff-MQTT-OTA-Arduino )
Bei ioBroker MQTT-Server installiert. Soweit alles ok, "Sonoff" logt siech ein und erstellt Objekte.
~~![](</s><URL url=)http://i.imgur.com/AzhUqKh.png" />
Es gibt nur ein Problem, Relais schaltet nicht.. bei betätigen vom Taster am "Sonoff" werden dataen an ioBroker übermittelt und aktuelle zustand von Relais angezeigt, aber halt vom ioBroker aus passiert nichts :?
Hat jemand Ideen?~~ ` ~~Das Problem liegt daran, dass der Topic /cmnd/sonoff/POWER nicht published wird. Ich hab den Topic mit mqtt-spy published, erst dann erscheint er auch als Objekt im iobroker mqtt-adapter, und so lässt sich dann das Relais auch wunderbar schalten.
ABER es kann nicht sein, dass ein Topic erst mit einer Dritt-Software published werden muss. Deshalb meine Frage an die Spezialisten:
welche Seite - iobroker oder der Sonoff-sketch ist für das publishen dieses Topics zuständig? Und wie published man ein Topic von iobroker aus?
Es hängt eigentlich nur an der Lösung dieses kleinen Problems, damit sonoff mit arendst sketch vernünftig verwendet werden kann.~~
-
Ich beschäftige mich gerade mit diesen Sonoff Modulen. Dabei stosse ich genau auf dasselbe Problem wie Alex1808 am Thread-Anfang :
Das Problem liegt daran, dass der Topic /cmnd/sonoff/POWER nicht published wird. Ich hab den Topic mit mqtt-spy published, erst dann erscheint er auch als Objekt im iobroker mqtt-adapter, und so lässt sich dann das Relais auch wunderbar schalten.
ABER es kann nicht sein, dass ein Topic erst mit einer Dritt-Software published werden muss. Deshalb meine Frage an die Spezialisten:
welche Seite - iobroker oder der Sonoff-sketch ist für das publishen dieses Topics zuständig? Und wie published man ein Topic von iobroker aus?
Es hängt eigentlich nur an der Lösung dieses kleinen Problems, damit sonoff vernünftig mit mqtt verwendet werden kann. `
Ja! Genau, diese Problem hatte ich am Anfang und aus diesem Grund das Firmware vom arendst nicht mehr genutzt, dagegen auf dem wifi-iot funktioniert auch über MQTT überhaupt ohne Problemen und alle states werden richtig publiziert.
Ich habe gesehen das hier (https://github.com/arendst/Sonoff-MQTT-OTA-Arduino) wird fleißig gearbeitet und aus reine Neugier gestern neuste Version (TASMOTA) darauf gespielt. Flaschen und Anbindung vom Sensoren wie BME280 über I2C hat funktioniert, aber das Problem mit MQTT ist immer noch da, es kommt einfach nicht klar mit server vom ioB, was wirklich schade da TASMOTA unterstützt fast alle WiFi Geräte vom iTead.
-
wahrscheinlich hängts damit zusammen, dass wir den iobroker adapter als server betreiben. im Bezug auf das publish des Schaltbefehls müsste ioB ein client sein.
Irgendjemand muss in dem Fall ioB mitteilen, dass der Schaltkanal (Topic) /cmnd/sonoff/POWER existiert, damit er das in die Objekte-Liste eintragen kann.
Es gibt ein sketch hier http://www.esp8266.com/viewtopic.php?f=29&t=8746, der dies macht, nämlich das in- und das out-Topic im iobroker einträgt. dann braucht man nur noch ein schalter-widget mit dem object verknüpfen und alles läuft.
Ich kenn mich leider zuwenig aus, es wäre interessant zu wissen, wer gem. Protokoll diesen Eintrag im mqtt-broker macht. Ist es der sendende client der ein publish macht oder der empfangende client, der das subscribe macht. (oder beide?) Sinnvollerweise sollte dies der sketch machen, nur der weiss, wie der Topic heisst.
ich finde es schade, dass der arendst sketch nicht out of the box mit iobroker zu verwenden ist. Wahrscheinlich ist nur eine ganz kleine Ergänzung nötig.
so sollte es aussehen. Den Eintrag cmnd habe ich mit mqtt-spy publish hinzugefügt, die anderen Einträge macht arendst sketch selber.
-
wahrscheinlich hängts damit zusammen, dass wir den iobroker adapter als server betreiben. im Bezug auf das publish des Schaltbefehls müsste ioB ein client sein.
Irgendjemand muss in dem Fall ioB mitteilen, dass der Schaltkanal (Topic) /cmnd/sonoff/POWER existiert, damit er das in die Objekte-Liste eintragen kann.
Es gibt ein sketch hier http://www.esp8266.com/viewtopic.php?f=29&t=8746, der dies macht, nämlich das in- und das out-Topic im iobroker einträgt. dann braucht man nur noch ein schalter-widget mit dem object verknüpfen und alles läuft.
Ich kenn mich leider zuwenig aus, es wäre interessant zu wissen, wer gem. Protokoll diesen Eintrag im mqtt-broker macht. Ist es der sendende client der ein publish macht oder der empfangende client, der das subscribe macht. (oder beide?) Sinnvollerweise sollte dies der sketch machen, nur der weiss, wie der Topic heisst.
ich finde es schade, dass der arendst sketch nicht out of the box mit iobroker zu verwenden ist. Wahrscheinlich ist nur eine ganz kleine Ergänzung nötig.
so sollte es aussehen. Den Eintrag cmnd habe ich mit mqtt-spy publish hinzugefügt, die anderen Einträge macht arendst sketch selber.
mqtt.PNG `
Genau deswegen, habe ich bei ioBroker die Möglichkeit gemacht "Publish all states bei connection".Da die andere Clients es nicht verstehen, dann muss man vielleicht denen die Problematik erklären.
Man kann händisch im Admin so ein State erzeugen Irgendjemand muss in dem Fall ioB mitteilen, dass der Schaltkanal (Topic) "mqtt.0.cmnd.sonoff.POWER"
Dann kommt aber gleich die Frage, was macht man, wenn es 2 Sonoff gibt?
Die Leute denken nicht nach, dass es alles automatisiert laufen soll. Im OpenHab/FHEM muss man alle states oft händisch erzeugen damit die als Objekte erscheinen. Dann muss man wohl für SONOFF auch im IoB erst händisch eintragen (was ich blöd finde)
-
jetzt bin ich beruhigt, dass ich nicht soo falsch liege. Mehrere Sonoffs sind kein Problem, da kann man andere Namen vergeben. Wie erzeugt man den Kanal denn händisch - ich habs versucht mit dem + icon oben im Objekte-ordner, aber es sieht irgendwie anders aus als die automatisch eingetragenene Kanäle.
Wie auch immer , ich versuch mal parallel dazu auf der sketch seite etwas zu ändern, das müsste eigentlich auch gehen.
Korrektur: ein subscribe /cmnd/sonoff/POWER auf dem iobroker - MQTT-adapter funktioniert auch - und macht auch Sinn (mqtt konform). Also wenn der arendst sketch beim connect bzw. reconnect automatisch ein subscribe macht beim iobroker adapter, dann wäre das Problem gelöst.
-
jetzt bin ich beruhigt, dass ich nicht soo falsch liege. Mehrere Sonoffs sind kein Problem, da kann man andere Namen vergeben. Wie erzeugt man den Kanal denn händisch - ich habs versucht mit dem + icon oben im Objekte-ordner, aber es sieht irgendwie anders aus als die automatisch eingetragenene Kanäle.
Wie auch immer , ich versuch mal parallel dazu auf der sketch seite etwas zu ändern, das müsste eigentlich auch gehen.
Korrektur: ein subscribe /cmnd/sonoff/POWER auf dem iobroker - MQTT-adapter funktioniert auch - und macht auch Sinn (mqtt konform). Also wenn der arendst sketch beim connect bzw. reconnect automatisch ein subscribe macht beim iobroker adapter, dann wäre das Problem gelöst. `
Ich glaube das was Blutfox sagen wollte wird damit nicht gelöst. Ich habe ca. 10st. Sonoff TH und es gibt Probleme schon bei erstem :?
-
glaube das was Blutfox sagen wollte wird damit nicht gelöst. Ich habe ca. 10st. Sonoff TH und es gibt Probleme schon bei erstem :? `
ich habe z.Zt. nur 1 Sonoff-Modul, deshalb kann ich nicht simultan testen. Aber mit define PROJECT im sketch kann man den Namen der Module ändern, d.h. es wird dann /cmnd/sonoff1/power /cmnd/sonoff2/power etc. Wenn man Theo Arends dazu bewegen kann, dieses subscribe beim start zu integrieren, dann wird das fehlende topic automatisch eingetragen bei iobroker mqtt.
Wie gesagt, bei mir funktionierts , halt noch etwas umständlich einzustellen.
-
Übrigens, vielleicht wird für jemanden interessant. Ich habe ADC pin angelötet und es hat funktioniert.
!
!
!
!!
!
!Zusammenfassung pin Belegung
1 - GPIO-14
2 - GND
3 - TX - GPIO-01
4 - RX - GPIO-03
5 - VCC - 3V3
Grüne LED - GPIO-13
TOUT - ADC
-
seit der neusten Version 3.9.11 des ahrends sketches https://github.com/arendst/Sonoff-Tasmota wird iobroker unterstützt. der STATE Datenpunkt wird jetzt automatisch eingetragen als mqtt.0.cmnd.sonoff.POWER. Für weitere Sonoff Switches kann zur Unterscheidung der jeweilige Namen im Web-GUI geändert werden.
-
Dank, lieber Alex,
extra angemeldet, um mich für http://forum.iobroker.net/viewtopic.php?p=28428#p28428 zu bedanken. Nun läuft mein Sonoff mit der russischen Firmware ohne nach Hause zu telefonieren. Als bekennender Alu-Hut-Träger haben alle heimischen Netzwerkkomponenten, die nichts draußen zu suchen haben(Repeater, Drucker, Scanner, jetzt auch Sonoff) eine Fritz-Box-Kindersicherung.
Im Browser funktioniert das alles.
Unter Win7 eine Verknüpfung angelegt zum Schalten mit folgendem Inhalt: http://192.168.178.27/sec/?pt=4&cmd=4:1 -dabei wird der Browser aufgerufen und es schaltet. Geht das auch mit irgendwelchen DOS-Befehlen ohne Browser?
Nun suche ich eine Android-App zum Schalten - schwupps gehen die Probleme los.
Hab mal testweise "MQTT Dash" und "MQTT Dashboard" probiert, da bekomme ich schon keine Serververbindung hin, ich dachte, der lauscht auf Port 80?
Was kann man mit den anderen diversen Einstellmöglichkeiten in der MegaESP-Oberfläche noch so veranstalten? Mein Schulrussisch reicht nicht für http://ab-log.ru , andere erhellende Quellen fand ich nicht.
Habe z.B. im Gegensatz zu http://forum.iobroker.net/viewtopic.php?p=28523#p28523 die grüne LED ausgeschaltet per try & error: P3 (=GPIO13) als "OUT SW" mit default=1 geändert, ist zwar invers zur Anzeige, bleibt aber dunkel und läßt sich händisch schalten. Kann man die zur Anzeige des Relais-Schaltzustandes missbrauchen?
Was kann man z.B. mit den ACP- und NET-Einstellungen veranstalten?
Nochmals vielen Dank
Rainer
-
Dank, lieber Alex,
extra angemeldet, um mich für http://forum.iobroker.net/viewtopic.php?p=28428#p28428 zu bedanken. Nun läuft mein Sonoff mit der russischen Firmware ohne nach Hause zu telefonieren. Als bekennender Alu-Hut-Träger haben alle heimischen Netzwerkkomponenten, die nichts draußen zu suchen haben(Repeater, Drucker, Scanner, jetzt auch Sonoff) eine Fritz-Box-Kindersicherung. `
Bitte
` > Im Browser funktioniert das alles.
Unter Win7 eine Verknüpfung angelegt zum Schalten mit folgendem Inhalt: http://192.168.178.27/sec/?pt=4&cmd=4:1 -dabei wird der Browser aufgerufen und es schaltet. Geht das auch mit irgendwelchen DOS-Befehlen ohne Browser? `
Ich kenne mich mit Dos nicht aus, aber mit WGET Befehl soll es gehen.
` > Nun suche ich eine Android-App zum Schalten - schwupps gehen die Probleme los.
Hab mal testweise "MQTT Dash" und "MQTT Dashboard" probiert, da bekomme ich schon keine Serververbindung hin, ich dachte, der lauscht auf Port 80? `
MQTT ist doch ganz andere Geschichte (Standard port ist 1883 übrigens). Aber seit gestern unterstützt MegaESP auch MQTT (ab MegaESP_0.34b8-4m.bin), firmware gibst erst nur für 4MB Modellen, ich werde nachfragen das auch für 1MB Flash FW kompiliert werden.
> Was kann man mit den anderen diversen Einstellmöglichkeiten in der MegaESP-Oberfläche noch so veranstalten? Mein Schulrussisch reicht nicht für [http://ab-log.ru](http://ab-log.ru) , andere erhellende Quellen fand ich nicht.
Auf der erster Seite ist so ziemlich gut beschrieben, falls du Hilfe brauchst einfach fragen wo du nicht verstehst.
http://www.ab-log.ru/forum/viewtopic.php?f=1&t=1130
> Habe z.B. im Gegensatz zu [http://forum.iobroker.net/viewtopic.php?p=28523#p28523](http://forum.iobroker.net/viewtopic.php?p=28523#p28523) die grüne LED ausgeschaltet per try & error: P3 (=GPIO13) als "OUT SW" mit default=1 geändert, ist zwar invers zur Anzeige, bleibt aber dunkel und läßt sich händisch schalten. Kann man die zur Anzeige des Relais-Schaltzustandes missbrauchen?
Das geht ganz einfach. Konfiguriere GPIO vom LED so wie es hier bei mir eingestellt. LED wird inversiv zu GPIO vom Relays geschaltet.
> Was kann man z.B. mit den ACP- und NET-Einstellungen veranstalten?
Das wird gebraucht wen mehrere Geräte im umlauf sind und z.b. nach dem wert oder Schaltzustand vom Gerät A zu Gerät B weiter geben oder schalten.
-
MQTT ist doch ganz andere Geschichte (Standard port ist 1883 übrigens). Aber seit gestern unterstützt MegaESP auch MQTT (ab MegaESP_0.34b8-4m.bin), firmware gibst erst nur für 4MB Modellen, ich werde nachfragen das auch für 1MB Flash FW kompiliert werden. `
vermutlich kommen die 1MB Modelle mit all dem Programm-Komfort an ihre Speichergrenzen, das ist auch beim arendst sketch so, da musste ich vor dem compilieren so einige features deaktivieren damit der code nicht zu gross wurde. hab irgendwo gelesen, dass ein user die Flash-Speicher durch grössere ersetzt hat. Das geht logischerweise nicht ohne Lötfummelei - aber es ist machbar. http://www.andremiller.net/content/upgr … ry-esp8266Jedenfalls werde ich mir nach den positiven Erfahrungen noch ein paar mehr von diesen modulen kommen lassen. Weiss nur noch nicht genau welche. Dabei werde ich auf MQTT setzen, dieses Protokoll finde ich genial für IoT.
-
` > Nun suche ich eine Android-App zum Schalten - schwupps gehen die Probleme los.
Hab mal testweise "MQTT Dash" und "MQTT Dashboard" probiert, da bekomme ich schon keine Serververbindung hin, ich dachte, der lauscht auf Port 80? `
MQTT ist doch ganz andere Geschichte (Standard port ist 1883 übrigens). Aber seit gestern unterstützt MegaESP auch MQTT (ab MegaESP_0.34b8-4m.bin), firmware gibts erst nur für 4MB Modelle, ich werde nachfragen das auch für 1MB Flash FW kompiliert werden…. ` Upps, ich dachte, der spricht schon immer MQTT. Habe mich vorher belesen, aber die anderen Firmwaren hatten auch Probleme, hier sah es so gut aus.
Wer kann eine Android-App empfehlen, falls die MQTT-Unterstützung fürs Sonoff nicht kommt? Die sollte möglichst ohne externen Server auskommen, auch wenn es dann nur im eigenen WLAN funktioniert.
An der wget-Geschichte bleib ich dran, sollte bei meinen Linux-Kisten kein Problem sein, bei Win7 scheints nicht trivial.
Liebe Grüße
Rainer
-
Hey,
ich schaffe es nicht Ihn zu flashen
habe mir die Dateien heruntergeladen und das Ding mit eine UART-USB Adapter (USB to TTL / D-Sun ) verkabelt.
vermute ich richtig richtig dass…
Sonoff 1 -> empty
Sonoff 2 -> GND Adapter
Sonoff 3 -> TX Adapter
Sonoff 4 -> RX Adapter
Sonoff 5 -> 5V Adapter
... es so richtig verkabelt ist.
Wenn den Taster drücke, den USB - Adapter einstecke und auf "flashen" drücke... zeigt er mir folgende Bilder.
mache ich was falsch?
421_1.jpg
421_2.jpg
421_3.jpg
421_4.jpg -
Hey,
ich schaffe es nicht Ihn zu flashen
habe mir die Dateien heruntergeladen und das Ding mit eine UART-USB Adapter (USB to TTL / D-Sun ) verkabelt.
vermute ich richtig richtig dass…
Sonoff 1 -> empty
Sonoff 2 -> GND Adapter
Sonoff 3 -> TX Adapter
Sonoff 4 -> RX Adapter
Sonoff 5 -> 5V Adapter
... es so richtig verkabelt ist.
Wenn den Taster drücke, den USB - Adapter einstecke und auf "flashen" drücke... zeigt er mir folgende Bilder.
mache ich was falsch? `
RX zu TX, TX zu RX ?
Taste drücken und weiter gedrückt halten bis Sonoff vom Adapter Strom bekommt,Taste los lassen. Flaschen. Bei Operation soll ein QR-Code zusehen sein und eine grüne fortschritt leiste
-
hier das Anschluss-Schema von der Scargill homepage. Bitte beachten: die +Spannung beträgt 3.3V nicht 5V. Sonoffs bzw. die ESP8266 überleben das normalerweise nicht. Steht übrigens richtig in der Pin-Tabelle im ersten Post.
-
Danke, dann habe ich schon zwei verbraten :?
Naja, werde es nochmals versuchen, allerdings glaube ich schon, dass der Adapter was hat.. ich habe mir schon zwei Andere bestellt….kosten ja fast nichts
lg
Martin
-
ja, schade - aber wenigstens ists kein teurer Verlust, ausser die Lieferzeiten, die nerven etwas. Schau mal, ob Dein USB-adapter ein Jumper hat für 5/3.3V - es gibt leider solche, die nur 5V zur Verfügung stellen.
Upps, ich dachte, der spricht schon immer MQTT. Habe mich vorher belesen, aber die anderen Firmwaren hatten auch Probleme, hier sah es so gut aus.
Wer kann eine Android-App empfehlen, falls die MQTT-Unterstützung fürs Sonoff nicht kommt? Die sollte möglichst ohne externen Server auskommen, auch wenn es dann nur im eigenen WLAN funktioniert. `
Eine extra Sonoff - MQTT-Unterstützung in iobroker brauchts m.E. nicht. bei mir läuft Sonoff mit iobroker out of the box. Ich verwende die MQTT Dashboard Android-App. Als mqtt-broker läuft der iobroker-mqtt-adapter und auf dem sonoff habe ich https://github.com/arendst/Sonoff-Tasmota oder http://www.esp8266.com/viewtopic.php?f=29&t=8746 das letzte Beispiel ist einfach und robust, muss aber vorkonfiguriert werden. Beide lassen sich mit Arduino IDE compilieren und flashen (geht aber rel. einfach).
-
Danke, dann habe ich schon zwei verbraten :?
Naja, werde es nochmals versuchen, allerdings glaube ich schon, dass der Adapter was hat.. ich habe mir schon zwei Andere bestellt….kosten ja fast nichts
lg
Martin `
Das glaube ich nicht.. das merkt man.
Welche Adapter hast du den?
-
D-SUN / USB TO TTL
ich glaube aber dass der mit Windows 10 Treiberprobleme hat.