NEWS
[Projekt] Scrolling OLED-display und Sonoff-Relais für iobroker via MQTT
-
(Test-)Konfiguration des iobroker MQTT-Adapters
5. Publish-topic für ausgehende Befehle:
. In diesem Fall (ESPEasy-OLED-Scroll-Display) setzt sich der Topic wie folgt zusammen /Modulname/cmd/devicename/Anzeigeplatz/Anzeigetext. Im Beispiel:
/easy_wemo/cmd/wemo/1/Anzeigetext-1 (vgl. die Bezeichnungen in der ESPEasy Konfiguration). Die Zuordnung der Anzeigeplätze hängt von der Zeilenzahl ab. Bei 2 Zeilen bedeutet 1 die obere Zeile im 1. Frame, 2 die untere Zeile im 1. Frame usw. (der eigentliche Topic ist /Modulname/cmd/ der Rest wird als payload gesendet: devicename,Anzeigeplatz,Text)
Siehe ioBroker script im letzten Kapitel.
IOBroker kennt die publish-topics nicht:
Hier gibts ein kleines Problem: die clients geben in der Regel die Befehle, die sie erwarten nicht bekannt. Deshalb muss man diese dem iobroker händisch beibringen. Im MQTT Adapter sind diese Topics als Datenpunkte abgebildet. Leider habe ich keinen eleganten Weg gefunden, diese Datenpunkte unter mqtt.0 zu generieren, meine diesbez. Anfrage im Forum blieb unbeantwortet. Aber es gibt einen relativ einfachen Weg, dies zu tun, nämlich mit dem MQTT-tool MQTT.fx. (oder mit der Android app MQTT Dashboard) Mit diesem Tool kann man gleichzeitig den MQTT-Server wie auch die MQTT-clients testen. Einzige Bedingung ist, dass der iobroker MQTT-server eingeschaltet ist. Wird vom Tool aus ein Befehl (publish) an den client abgesetzt, wird der betreffende Datenpunkt unter mqtt.0 unmittelbar eingetragen. Erst dann lassen sich von ioBroker aus auch MQTT-Befehle absetzen. Beide Tools beschreibe ich im nächsten Kapitel.
-
Vielen Dank für die Anleitung!!!! [emoji1360][emoji6]
Gruß
Adrian
Gesendet von iPhone mit Tapatalk Pro
-
[emoji106] super Anleitung!
-
Tools
mqtt.fx für Windows download http://mqttfx.jfx4ee.org/index.php
iobroker mqtt-server einstellen
subscribe (zum Test noch ohne Einschränkungen) und popup-notifications für jedes telegramm
und hier das Wichtigste: ein publish Befehl zum Darstellen eines Texts und Eintrag des Datenpunkts in iobroker
Beispiel für das Schalten eines Sonoff-RelaisAndroid app MQTT Dashboard
Server einrichten
subscribe
publish
Beispiel für das Schalten eines Sonoff-Relais -
IOBroker javascript
einfaches Testscript - less than perfect - aber tut für mich genau das, was es muss (siehe video-clip im 1. Post)
Das script liest Messdaten von HM-Sensoren und sendet sie per MQTT an das OLED-Display. Dank Wifi lässt sich das Display frei platzieren, als Stromversorgung genügt ein einfaches USB-Netzteil mit 5V - zumindest bei Verwendung eines Wemos-Moduls mit eingebautem 3.3V Regler. Achtung, nicht alle ESP8266-Module haben diesen Spannungsregler eingebaut, da muss man selber für 3.3V sorgen. Versehentliche Einspeisung von 5 V überleben diese nicht.
schedule("*/30 * * * *", function () { // alle 30 Minuten - für Tests ggf auskommentieren setState("mqtt.0.easy_wemo.cmd","wemo,1,T_aussen"); // Beschriftungszeilen setzen via MQTT setState("mqtt.0.easy_wemo.cmd","wemo,3,Wohnzimmer"); setState("mqtt.0.easy_wemo.cmd","wemo,5,Keller"); var temp=getState("hm-rpc.2.IEQ0020678.1.TEMPERATURE").val; // HM-Datenpunkte auslesen und in Variablen schreiben var wz_t=getState("hm-rpc.2.MEQ0476362.1.TEMPERATURE").val; var wz_h=getState("hm-rpc.2.MEQ0476362.1.HUMIDITY").val; var k_t=getState("hm-rpc.2.MEQ0477427.1.TEMPERATURE").val; var k_h=getState("hm-rpc.2.MEQ0477427.1.HUMIDITY").val; setState("mqtt.0.easy_wemo.cmd","wemo,2,"+temp+" °C"); // Variablen nach ESP8266 schreiben via MQTT setState("mqtt.0.easy_wemo.cmd","wemo,4,"+wz_t+" °C / "+wz_h+" %rH"); setState("mqtt.0.easy_wemo.cmd","wemo,6,"+k_t+" °C / "+k_h+" %rH"); }); // für Tests ggf auskommentieren
so, das wars, ist doch noch länger geworden. Ich hoffe, dem einen oder andern hilfts. Aufgrund der Vielzahl möglicher Module habe ich mich in dem Bereich etwas kurz gehalten, aber das Internet ist ja voll mit Anleitungen und Schaltungsvorschlägen. Gut an ESPEasy ist, dass es gerade im Bereich der GPIO sehr flexibel ist. Wie schon angedeutet lassen sich mit ESPEasy eine Vielzahl verschiedener Sensoren, aber auch Relais und Schalter anschliessen, auch simultan.
Es lohnt sich, die Webpage http://www.letscontrolit.com/wiki/index.php/ESPEasy genauer durchzulesen.
Nachtrag 18.4.17 : falls sich bei den Topics Probleme ergeben, kann es sein, dass es am leading / liegt. Manchmal wird dieses / am Anfang vorgegeben (so z.B. auch im ESP Easy default) - ich selbst habs überall entfernt, da damit nur eine (leere) Ebene eingeschoben wird.
die entsprechende Konfiguration im ESPEasy sieht dann so aus:
-
Guten Morgen starfish,
Dank deiner Hilfe habe ich es ja geschafft, ESP Easy auf den ESP8266 zu flashen. Läuft super.
Du hast in diesem Beitrag auch die MQTT-Verbindung dokumentiert. Ich will folgendes machen:
Heizung wird in 4 Wochen umgebaut. Ich möchte mit einem ESP8266 und mehreren DS18B20
div Temperaturen im Keller erfassen und in IoBroker anzeigen. ESP und DS18B20 läuft.
Womit ich nicht klarkomme, ist MQTT. (Oder eine andere Verbindung zum IoBroker)
In ESP-Easy so eingestellt wie in deinem Screenshot, OpenHAB MQTT, IP des IoBroker, User und Password.
In IoBroker den MQTT-Adapter (später noch den MQTT-Client) installiert, in MQTT-Adapter folgendes eingestellt:
-
Client/subscriber
-
IP des ESP
-
Username und Kennwort wie im ESP
Will ich unter Instanzen mqtt.0 starten, wird der Kreis ganz links gelb, jedoch nicht grün.
Habe leider im Forum nix gefunden, was mache ich verkehrt ????
Was müßte ich unter MQTT-Einstellungen eintragen ?
Oder muß ich dem MQTT-Client verwenden ?
Grüße Ingo
-
-
hallo Ingo,
als erstes lösche mal den mqtt-client aus den Instanzen. Ich habe nur den mqtt adapter 1.3.2 laufen.
Der gelbe Punkt bedeutet, dass noch kein client mit dem server Kontakt aufgenommen hat. In dem Punkt ist meine Anleitung (eher "Starthilfe") nicht ganz klar - überall wo 192.168.0.162 steht, muss DEINE iobroker-IP stehen (also im ESPEasy).
Ist Dein ESPEasy überhaupt erreichbar mit dem Browser? bzw. angemeldet an Deinem AccessPoint? (welche IP?)
zu den MQTT-Adapter Einstellungen habe ich in meiner Anleitung auch 2 screenshots (Test-)Konfiguration des iobroker MQTT-Adapters) - die kannst Du so übernehmen (ausser Dein Username/Kennwort).
Kannst Du mir per PM screenshots schicken von ESP-easy und iobroker-adapter konfiguration?
-
Hallo Satrfish.
Ich habe meinen WEMO und den MQTT Adapter installiert bekommen.
Mein Wemo heist GaragenESP er hat 2 Relays an GPIO 14 und GPIO 12angeschlossen
das Relay an GPIO14 heist tor1
Beim Einschalten bekommen ich als State in MQTT Fx folgendes angezeigt
! /GaragenESP/tor1/state
! 1Was ich noch nicht genau verstehe wozu nun die Rules da sind und wieso dein Schaltbefehl bei die an
easy/relay/gpio/12 geht
demnach müsste mein MQTT Befehl GaragenESP/tor1/state heißen? Oder liege ich da verkehrt.
ich habe folgende Rule eingefügt
on tor1.state do if [tor1.state]=0 gpio,14,1 else gpio,14,0 endif endon
Vielleicht kannst Du mir ja helfen.
Gruß Stefan
-
hallo Stefan,
so wie ich verstehe, hast Du kein Sonoff Relais? In dem Fall hast Du auch keine Taster und keine (eigenständigen) LEDs zur Schaltanzeige? Unter dieser Voraussetzung brauchst Du gar keine Rule zu schreiben, sondern kannst die Relais direkt über GaragenESP/gpio/12 bzw GaragenESP/gpio/14 und 0 bzw. 1 als payload schalten. So entfallen zwar die individuellen Namen für die Relais (Tor1 …) aber es ist die einfachste Möglichkeit, das Ziel zu erreichen. Die Devices Switchinput und Rules kannst Du löschen. Versuchs mal so, und melde Dich wieder über PM.
(die Rules in meinem Beispiel sind für Sonoff gedacht, damit die LED und das Relais gleichzeitig eingeschaltet werden. Die 2. Funktion ist fürs manuelle Einschalten des Relais über den eingebauten Taster gedacht).
-
Sorry das ich jetzt erst antworte. Aber Tapatalk nervt mich manchmal ein wenig.
Ich habe tatsächlich kein Sonoff Relay sondern ein selbstgebautes.
Ich werde das ganze nochmal testen. Wobei ich noch nicht gefunden habe wie ich bei ESPEasy erkenne dass er die mqtt Meldung tatsächlich bekommen hat.
Ich werde es in Ruhe nochmal Testen.
Gruß Stefan
Gesendet von iPhone mit Tapatalk
-
Hallo, danke Dir für die gute Anleitung.
Ich möchte ein Wemos ESP-12 mit 512k verwenden. Gibt es Nachteile gegeüber den 4M Modulen?
-
Ich habe tatsächlich kein Sonoff Relay sondern ein selbstgebautes.
Ich werde es in Ruhe nochmal Testen.
Gruß Stefan
Gesendet von iPhone mit Tapatalk `
Guten Morgen.
Wie versprochen die kurze Rückmeldung.
Mit dem mqtt Befehl hat es super geklappt. Jetzt schalten beide Relais und der DHT sendet fleißig.
Jetzt. Leibt mir nur noch das Skript offen, welches mir die Bestätigung der Relais bearbeitet und sie wieder zurücksetzt. Da sie nur als Taster für die Garagentore dienen sollten.
Gruß Stefan
Gesendet von iPhone mit Tapatalk
-
Hallo, danke Dir für die gute Anleitung.
Ich möchte ein Wemos ESP-12 mit 512k verwenden. Gibt es Nachteile gegeüber den 4M Modulen? `
die 512k Module würde ich neu nicht erwerben. Grad beim espeasy 512k - sketch hast Du nur die basic plugins und OTA - update (übers WLAN) geht auch nicht.Diese würde ich nur verwenden, wenn die Bastelkiste voll ist damit.4M hat also klar Vorteile. ich empfehle die Module mit USB-Schnittstellenwandler und 3.3V Spannungsregler (z.B. Wemos D1 mini und ähnliche). Bekanntlich laufen die ESP8266 mit 3.3V - 5V sind tödlich (ohne obenerwähnten Spannungsregler).
-
Jetzt. Leibt mir nur noch das Skript offen, welches mir die Bestätigung der Relais bearbeitet und sie wieder zurücksetzt. Da sie nur als Taster für die Garagentore dienen sollten.
Gruß Stefan
Gesendet von iPhone mit Tapatalk `
jetzt ist mir klar, was Du meinst. ich hab da so eine Idee, muss aber zuerst testen.
so, wenn ich Dein Problem richtig verstanden habe, sollte dies laufen:
erstelle ein Device in espeasy als gpio pin nimmst Du irgendeinen freien (hier testweise 14)
dann in den rules :on tast#state do if [tast#state]=0 gpio,12,0 else pulse,12,1,500 endif endon
der Tast-puls (500ms) wird jedesmal ausgelöst, wenn Du von 0 -> 1 schaltest auf easy_th/gpio/14 (dazwischen wieder auf 0 schalten) (easy_th durch deine Bezeichnung ersetzen) - den Datenpunkt erstellen mit mqtt.fx
-
Hallo, danke Dir für die gute Anleitung.
Ich möchte ein Wemos ESP-12 mit 512k verwenden. Gibt es Nachteile gegeüber den 4M Modulen? `
die 512k Module würde ich neu nicht erwerben. Grad beim espeasy 512k - sketch hast Du nur die basic plugins und OTA - update (übers WLAN) geht auch nicht.Diese würde ich nur verwenden, wenn die Bastelkiste voll ist damit.4M hat also klar Vorteile. ich empfehle die Module mit USB-Schnittstellenwandler und 3.3V Spannungsregler (z.B. Wemos D1 mini und ähnliche). Bekanntlich laufen die ESP8266 mit 3.3V - 5V sind tödlich (ohne obenerwähnten Spannungsregler). `
boah, habe bereits schon einen mit 512k bestellt :?
Aber jetzt würde ich mir noch einen mit 4M nachlegen.
Kannst Du unter dem Link schauen ob dies das richtige Teil ist?
http://www.ebay.de/itm/D1-Mini-NodeMCU- … SwFqJWn1os
Das Teil ist allemal 4M Version, und hat einmal den Pin mit 5V und 3,3V
Die Spannungsversorgung kann ich entweder über die micro USB Schnittstelle, oder die 5 und 3,3V gegen die Mase anlegen richtig?
-
boah, habe bereits schon einen mit 512k bestellt :?
Aber jetzt würde ich mir noch einen mit 4M nachlegen.
Kannst Du unter dem Link schauen ob dies das richtige Teil ist?
http://www.ebay.de/itm/D1-Mini-NodeMCU- … SwFqJWn1os
Das Teil ist allemal 4M Version, und hat einmal den Pin mit 5V und 3,3V
Die Spannungsversorgung kann ich entweder über die micro USB Schnittstelle, oder die 5 und 3,3V gegen die Mase anlegen richtig? `
nicht so schlimm, das 512k Teil kannste ja für eine einfachere Aufgabe verwenden (ist dort überhaupt eine usb-schnittstelle drauf? sonst müsstest Du zum Programmieren noch einen USB-Schnittstellenadapter besorgen).
Das Teil vom Link scheint OK - Stromversorgung reicht 5V - das Modul hat ja einen 3.3V Spannungsregler drauf.
-
Danke,
habe noch zusätzlich die 4M Variante bestellt. Den 512er behalte ich zum üben
Und ja, die 512er Version hat eine USB Schnittstelle. Schaen wir mal was ich damit machen kann. Ich freu mich schon auf das Scroll-Display. Ich hoffe doch, dass ich das Teil aufbauen kann. Ich würde auf jeden Fall die Außentemperatur anzeigen wollen, auch den Zustand der Alarmanlage würde ich gerne auf das Display bringen.
-
Hallo nochmal…
Heute kam ein Wemos D1 mini an (4M). Ich habe die Firmware ESP Easy drauf bekommen. Es geht viel einfacher wie die Anleitung hier hergibt...
Bei Bedarf kann ich etwas mehr dazu sagen. Ich habe aber nicht die Software IDE benutzen müssen. Wie auch immer... Ich habe eine feste IP vergeben,ebenso alles andere nach Anleitung hier abgeändert.
Die Controller IP Adresse wird doch die vom IObroker sein richtig ???
Unter Devices habe ich nur Display - OLED SSD1306 mit GPIO 4,5 stehen. ****Ist das so richtig ?****Ich möchte mir ein paar Sachen vom Vis auf das Display anzeigen lassen. Auf das Display warte ich noch….
Bis dato habe ich keine Software IDE oder ein Sketch abgeloadet... ? Wie soll das funktionieren? Ich nehme mal an dass jetzt noch ein MQTT Adapter beim Vis benötigt wird. Es gibt sogar noch nen Client vom MQTT… Was muß ich für mein Vorhaben installieren ?
@Starfish- kannst Du mich etwas aufklären? Ich befürchte dass ich noch nen Sketch dazu brauche, bin mir aber nicht wirklich sicher…
-
@knopers1, Welche Version hast Du geflasht? (und wie - mit dem loader?)
Die Controller-IP ist richtig, die vom iobroker. Im iobroker den Server aktivieren (hast Du wohl schon: mqtt.0), wie beschrieben (nicht client, bzw. client adapter).
GPIO 4 und 5 stimmt, falls Du das hardwaremässig auch so verdrahtest.
Einen neuen Sketch brauchst Du nicht.
-
@knopers1, Welche Version hast Du geflasht? (und wie - mit dem loader?)
Die Controller-IP ist richtig, die vom iobroker. Im iobroker den Server aktivieren (hast Du wohl schon: mqtt.0), wie beschrieben (nicht client, bzw. client adapter).
GPIO 4 und 5 stimmt, falls Du das hardwaremässig auch so verdrahtest.
Einen neuen Sketch brauchst Du nicht. `
hi, danke für Deine Antwort,
ich habe die ESPEasy_R120 installier, die ESPEasy_R147_RC8 konnte ich nicht installieren. Bin aber davon ausgegangen, dass ich die R147 benötige…war wohl nicht der Fall... :? Ich habe die Datei ESPEasy_R120_4096.bin mit dem Loader geflasht!