NEWS
[Projekt] Scrolling OLED-display und Sonoff-Relais für iobroker via MQTT
-
Wenn ich das Display ohne Framed nehme, dann bleibt zumindest das "Donnerwetter" dauerhaft stehen aber der erste Buchstabe ist trotzdem eine Zeile darüber.
-
Hallo,
ich habe das gleiche Problem wie knopers1. Bei den Zeilen 1-12 kann ich was eintragen und es sieht normal aus. Mit dem Test "donnerwetter" sieht es bei mir genauso verschoben aus und wird nur kurz angezeigt. Das Display müsst auch das gleiche sein. Muss man in den Zeilen 1-12 irgend welche Befehle eintragen für iobroker? `
wenn das bei 2 Anwendern passiert, scheint ein systematisches Problem dahinter zu stecken - ich kann das aber nicht nachvollziehen, bei mir funktioniert die Geschichte mit 2 Modulen, einem Wemos und einem ESP-01 genauso wie beschrieben - in beiden Firmware-Versionen. An der Verdrahtung kanns nicht liegen, sonst würde die Anzeige beim direkten Beschreiben der Plätze 1-12 ja nicht funktionieren. (direkte Befehle muss man dort nicht eintragen). Ich kann höchstens einen Versuch mit einem dritten Aufbau machen oder einen eurer Aufbauten durchtesten. Eine weitere Möglichkeit wäre das ESPEasy - forum https://www.letscontrolit.com/forum/vie … f=4&t=1149 .
Nachtrag: habe das Display neu aufgebaut. Der Fehler zeigt sich jetzt hier auch ... naja wenigstens ists jetzt reproduzierbar. Ich melde mich wieder, sobald ich was rausgefunden habe.
-
Wenn ich das Display ohne Framed nehme, dann bleibt zumindest das "Donnerwetter" dauerhaft stehen aber der erste Buchstabe ist trotzdem eine Zeile darüber. `
ich habe mittlerweile 3 verschiedene Aufbauten gemacht mit verschiedenen Software-Versionen. bei allen dasselbe Problem. Ich versuche grade im espeasy-forum Hilfe zu bekommen. Wenn ich mit den funktionierenden Modulen vergleiche, ist kein Unterschied festzustellen. -
nja, so schnell gibts meistens keine Antwort in den Foren, ich habs aber selber rausgefunden
<size size="150">das oled-device darf selbst nicht oled oder OLED heissen</size> - also versucht mal einen anderen Namen, dann sollte die Geschichte wieder laufen.
(zumindest bei meinem Setup war das so)
-
:lol: da muß erst einer draf kommen… Was für ein Pech, ich habe die Dinger dutzend mal neu aufgesetzt und dabei immer wieder den gleichen Namen vergeben. ehh.... Wie auch immer. Ich bleibe jetzt bei meiner Variante, ich habe alles im IOBroker unter HM-Rega 0 und HM-Rega1...
-
dann bin ich gespannt welchen "Spass" ich mit dem Display habe wenn sie dann mal in drei Wochen oder so da sind
-
nja, so schnell gibts meistens keine Antwort in den Foren, ich habs aber selber rausgefunden
<size size="150">das oled-device darf selbst nicht oled oder OLED heissen</size> - also versucht mal einen anderen Namen, dann sollte die Geschichte wieder laufen.
(zumindest bei meinem Setup war das so) `
Danke für deine Mühe.
Hab nochmal alles neu aufgesetzt, aber geht immer noch nicht. Als Name habe ich einfach "anzeige" genommen. Deine Firmware sieht aber anders aus. Bei mir fehlt z.B. bei Devices
IDX/Var: und Value Name1:
Wenn iobroker etwas dort hin schickt, müssten sich die Zeilen unter Devices dann füllen?
-
welche Version verwendest Du? - offensichtlich hat auch die Version 2.0.0-dev7 eine Macke - was hier läuft ist die R148 - wie hast Du den sketch geladen? mit arduino-ide oder mit dem flasher? verwendest Du mqtt oder http? und welches esp-modul? Ich werde morgen Samstag eine R148-Version bereitstellen (weitere Info per PM)
und ja, die Zeilen unter devices müssten sich füllen.
-
Hallo,
dank starfish zugesendeter Firmware 148 funktioniert das ganze jetzt wie es sein soll auf dem wemos D1 mini.
-
Hi zusammen,
Ich brauche mal Hilfe, ich habe einen Wemos d1 mini mit einem Relais Shield bestückt. ich kann den im broker unter Objekten auch finden aber das Relais lässt sich nicht Schalten. Jemand eine Idee?
Gruß Christian
2113_config.png
2113_devices.png
2113_verb..png
2113_einst.png -
Hast du den entsprechenden Datenpunkt für den Ausgang in ioBroker angelegt?
Der automatisch angelegte zeigt nämlich nur den Zustand an, kann jedoch nicht schreiben!
Weitere Infos findest du in diesem Thread:
http://forum.iobroker.net/viewtopic.php … off#p71571
LG Schubi
-
Danke , geht immer noch nicht nach der Anleitung im link. Hab den Thread nicht gesehen habe eher nach Wemos und ESP gesucht, ich hab mir aber auch vor Paar Tagen einen Sonoff bestellt dachte die haben USB Anschluss, naja eher nicht Ich habe mir jetzt den Adapter bestellt
https://www.amazon.de/gp/product/B00AFR … UTF8&psc=1
ist der dafür zu gebrauchen?
dann verschiebe ich mal ins andere Thread.
Gruß Christian
-
Danke, geht immer noch nicht nach der Anleitung im link. Hab den Thread nicht gesehen habe eher nach Wemos und ESP gesucht, ich hab mir aber auch vor Paar Tagen einen Sonoff bestellt dachte die haben USB Anschluss, naja eher nicht Ich habe mir jetzt den Adapter bestellt
https://www.amazon.de/gp/product/B00AFR … UTF8&psc=1
ist der dafür zu gebrauchen?
dann verschiebe ich mal ins andere Thread.
Gruß Christian
-
Ja der Adapter ist gut.
Die Beschreibung für die Hardwareanpassung und das Flashen findest du im verlinkten Thread auf der 1. Seite.
Viel Erfolg!
-
Anleitung Einrichtung der Programmierumgebung Arduino IDE
! 1. Einrichtung der Programmierumgebung Arduino IDE für ESP8266 u.a. mit Oled-Display
! clean portable install gem. http://www.letscontrolit.com/wiki/index … are_Upload
! https://www.arduino.cc/en/main/software arduino ide download : zip file for non admin install (aktuell 1.8.1)
! zip-file entpacken nach (z.B.) c:\arduino-1.8.1
! der Abschnitt Download ESP Easy Firmware sieht bei mir etwas anders aus:
! Verzeichnis ESPEasy und libraries aus http://www.letscontrolit.com/downloads/ESPEasy_R120.zip
! kopieren nach c:\arduino-1.8.1\portable\sketchbook
! c:\arduino-1.8.1\portable\sketchbook\ESPEasy überschreiben mit R148 Dateien aus
! github. Version R148
! Master Branch https://github.com/letscontrolit/ESPEasy/tree/master
! download ESPEasy plugins: https://github.com/letscontrolit/ESPEas … Playground. Daraus
! _P205_FrameOLED.ino und Extra_Utilities.ino nach c:\arduino-1.8.1\portable\sketchbook\ESPEasy kopieren
! esp8266-oled-ssd1306.zip entpacken nach c:\arduino-1.8.1\portable\sketchbook\libraries
! Arduino.exe starten und ESPEasy.ino laden
! Sketch/Überprüfen-Kompilieren sollte keine Kompilerfehler ausgeben. `Hallo Starfish,
erstmal Danke für die tolle Anleitung. Habe gerade alles irgendwie hinbekommen. Allerdings steige ich bei den ganzen Versionen nicht durch. Was bei mir jetzt funktioniert, ist die Version R120 aus Deinem Spoiler. Ich habe dann noch aus dem Playground die P205_FrameOLED.ino und Extra_Utilities.ino hinzugefügt. Aber wo finde ich die R148 Version? Das Display läuft bei mir und ich kann alles richtig darstellen. Kann man irgendwo sehen welche Version man installiert hat?
-
Danke für die PN. Werde es testen
Ich kann Dir leider keine PN schicken, da ich dafür nicht freigeschaltet bin.
-
Hallo Zusammen
auch ich habe mich an dem Thema versucht hatte mir auch von Starfish die Datei zum Flashen besorgt (Danke dafür).
Ich habe mich jetzt für einen anderen Weg entschieden. Ich habe meine ESP´s direkt mit ESP ESasy Mega https://www.letscontrolit.com/wiki/inde … SPEasyMega geflash. Vorteil ist aus meiner Sicht, dass es noch einfacher ist und direkt aus Windows ohne Zusatzsoftware funktioniert. Das Scolling Display ist auch intergiert.
Es gibt auch das Device "MQTT Import", das verbindet sich direkt mit dem MQTT Adapter im ioBroker.
Der entsprechende Datenpunkt wird im MQTT Adapter automatisch erzeugt. Soweit, sogut :lol:
Ist vielleicht auch ein interessanter Hinweis für jemaden.
Mein Problem ist, dass ich mit Skripten nix am Hut habe. Wenn ich die Werte per Hand in den entsprechenden Spalten eintrage, werden sie an den ESP übertragen und auch im Display angezeigt. Aber ich weiß nicht, wie ich die Werte von einem Gerät automatisch in den MQTT Adapter vom ioBroker bekomme.
Kann mir da jemand helfen?
Mfg
Spike
3010_mqtt.png
3010_mqtt_iobroker.png
3010_esp_devices.png -
Aber ich weiß nicht, wie ich die Werte von einem Gerät automatisch in den MQTT Adapter vom ioBroker bekomme. `
Du kannst den Datenpunkt, den du manuell gefüttert hast, z.B. mit dem js-adapter füttern. Dazu brauchst du kein javascript können. Verwende blockly und baue dir dein Programm zusammen. Mach ein einfaches Programm, z.B. alle 30 Sekunden eine Temperatur in den Datenpunkt schreiben. Dazu gibt es jede Menge Beispiele hier im Forum.
So wie ich das sehe, geht das dann in deinem Beispiel nur mit Zahlenwerten!?
Eisbaeeer
-
Hallo, bin noch neu in dem ganzen Thema und lese schon seit einigen Wochen fleißig mit.
Ich möchte mir ein Display bauen, was die Werte meiner PV-Anlage anzeigt, welche ich bereits per Modbus in ioBroker bekommen habe.
Es stellt sich mir die Frage ob es ggf. auch mit dem Epaper Display von Squix.org ginge.
Ich will eigentlich ein Magnetisches Gehäuse haben, was ich ggf. an den Kühlschrank klatsche. Das macht allerdings nur Sinn, wenn der Akku darin (powerbank?) eine Weile durchhält…ggf. kann das Display ja auch automatisch an und abschalten (morgens an, abends aus)
Habe mir jetzt zum Testen erst mal die OLED Komponenten bestellt...mal sehn...
-
So wie ich das sehe, geht das dann in deinem Beispiel nur mit Zahlenwerten!?
Eisbaeeer `
Also ich habe jetzt herausgefunden, wie ich die Werte per HTTP Get setzen kann. Ich fülle alle 30 Minuten die Zeilen, in der Hoffnung, dass der Flash das aushält.
Syntax: "http://<ip-adresse>/control?cmd=<name-von-oled>,<zeile>,<text>"
Das benötigte binary (firmware für den ESP) bekommt ihr von "starfish".
Quick-and-dirty code für javascript
! ````
var befehl = "http://192.168.1.108/control?cmd=Display,"; //hier deine url eingeben
var request_oled = require('request');
var einheit1 = " Grad";
var einheit2 = " km/h";
! var zeile1 = "1,";
var zeile2 = "2,";
var zeile3 = "3,";
var zeile4 = "4,";
var zeile5 = "5,";
var zeile6 = "6,";
var zeile7 = "7,";
var zeile8 = "8,";
var zeile9 = "9,";
var zeile10 = "10,";
var zeile11 = "11,";
var zeile12 = "12,";
! function sendData () {var data1 = getState("hm-rpc.0.HEQ0237810.1.TEMPERATURE").val;
var data2 = getState("yr.0.forecast.day0.text").val;
var data3 = getState("yr.0.forecast.day0.temperature_max").val;
var data4 = getState("yr.0.forecast.day0.wind_direction").val;
var data5 = getState("yr.0.forecast.day0.wind_speed").val;! request_oled(befehl+zeile2+data2,function (error, response, body) {
log('error: ' +error); // Print the error if one occurred
});
request_oled(befehl+zeile4+data1+einheit1,function (error, response, body) {
log('error: ' +error); // Print the error if one occurred
});
request_oled(befehl+zeile6+data3+einheit1,function (error, response, body) {
log('error: ' +error); // Print the error if one occurred
});
request_oled(befehl+zeile8+data4+"-"+data5+einheit2,function (error, response, body) {
log('error: ' +error); // Print the error if one occurred
});}
schedule("*/30 * * * *", function () { //oder!! soll entweder ausgelöst werden alle 30 Minuten
log("===>Will be triggered every 30 minutes!");
sendData();
});
sendData();–- EDIT --- 15.10.2017 * Code fängt nun auch "host not reachable" ab und startet nicht die ganze Javascript Instanz neu ;-) Grüße Eisbaeeeer</text></zeile></name-von-oled></ip-adresse>