NEWS
Funk-Display zur Anzeige von Werten
-
Hallo Ingo,
das Ansteuern der Display mit den ESP8266 D1 mini funktioniert nun problemlos dank deiner Hilfe. Ich hab nun auch die Sache mit dem Sonderzeichen (z.B. ° vor dem C) gelöst. In Blockly musst du für das °-Zeichen dein %DF setzen. Das sieht dann bei mir so aus: %DFC . Ich hab es mal als Bild angehängt!
Bei google mal nach sonderzeichen javascript suchen (und ein bisschen probieren)!
Gruß
jgoller
3447_blockly_sonderzeichen.jpg -
Hallo Jürgen,
Funktioniert !!
Damit hast du mir echt eine Freude bereitet.
Jetzt muß ich nur noch das Verrutschen der angezeigten Werte bei geringen Temperaturen in den Griff kriegen.
Wenn ich nur nicht so viel mit dem Modellbahn-Club zu tun hätte.
Danke und Grüße
Ingo
-
Hallo Ingo,
ich dank deiner tollen Anleitung das display so weit zum laufen gebraucht, das ESP-Easy im Display steht und der MQTT Adapter grün ist.
leider verstehe ich (auch nach mehrmaligen durchlesen und vergleichen weder das script von dir noch das von Jürgen weil die sich doch sehr unterscheiden so dass ich nicht draufkomme wie ich zb an einen text oder auch variable an das display senden könnte und was technisch dahinter steckt.
scheint ja irgendwie über
require("request")((['http://192.168.1.78/control?cmd=lcd,1,1,PV-Anlage: ',getState("javascript.0.Photovoltaik.WR3.Leistung_aktuell").val,' W'].join(''))).on("error", function () {console.error(e);}); } catch (e) { console.error(e);…..
zu gehen.
mir ist auch noch nicht klar wie das technisch funktioniert. setze ich im mqtt Adapter eine variable die dieser dann an das display sendet oder wird ein Befehl via http://192.168.1.78/control?cmd=lcd,1,1,PV-Anlagexxxx.... direkt an den wemos geschickt?
wenn ja wozu braucht man dann den mqtt Adapter?
vielleicht hast du ja mal eine wenig zeit das zu kurz erläutern.
für ein lametric display setze ich mir per script im io-broker texte aus systemvariablen zusammen - sprich ein wenig mit variablen und Basis schippten kenne ich mich ja aus aber da fehlen mir noch die zusammenhänge.
danke & LG
Andi
-
Hallo Andi,
eins vorneweg, ich bin kein Programmier-Spezi.
Die Request-Befehle waren daher für mich die einfachste Lösung, es gibt sicher elegantere Lösungen.
Schaue dir mal meinen Beitrag vom 30.11.17 an. Hier das Blockly.
Wenn Vor- oder Rücklauftemperatur sich ändern, wird mit dem ersten Request das Display gecleart.
Dann wird in die oberste Zeile "Heizung Keller" geschrieben, danach in die nächsten Zeilen Vorlauf, Rücklauf und Außentemperatur.
Diese einzelnen Befehle, z.B. :
http://192.168.2.170/control?cmd=lcd,1,1,Heizung Keller
kannst du auch in deinen Browser eingeben, sollte dann ebenfalls im Display erscheinen.
Der MQTT-Adapter dient nur der Kommunikation zwischen ioBroker und dem Display, wenn der läuft und grün ist, nicht mehr anfassen.
Die Ausgaben für das Display aus Variablen zusammensetzen - tut mir leid - keine Ahnung, wie so was geht.
Ich denke, dafür brauchst du ein komplexeres Script.
Bei Fragen, einfach fragen
Grüße Ingo
-
Hi Ingo,
danke für die schnelle Info. dann schau ich mir mal den request befehl an und versuch darüber die variablen auszugeben. über einen einfachen html-link habe ich es schon geschaft text aufs display zu posten
LG
Andi
-
Hallo Andi,
du kannst ja mal berichten.
Grüße Ingo
-
Hallo Ingo,
funzt schon
ging schneller als erwartet. hab einiges vom code meiner lametric anzeige verwenden können.
ich glaube den mqtt-adapter braucht man für unsere Lösung über http-requests nicht. hab ihn pausiert und das display refreshed nach wie vor. lasse ihn aber trotzdem installiert - never change a running system
anbei das javascript für den io-broker:
var displayurlzeile1; var displayurlzeile2; var displayurlzeile3; var displayurlzeile4; var Aussentemperatur; var Aussenfeuchte; var Leistung; var Wasser; function main() { Aussentemperatur=getState('hm-rpc.0.MEQxxxxx.1.TEMPERATURE').val; Aussenfeuchte=getState('hm-rpc.0.MEQxxxxx.1.HUMIDITY').val; Leistung=getState('hm-rpc.0.MEQxxxxx.1.POWER').val; Wasser=String(getState('hm-rega.0.xxxx').val); var displayurlzeile1='http://192.168.xxx.xxx/control?cmd=lcd,1,1,Temperatur: '+Aussentemperatur+'%DFC'; // Setzt String für Zeile 1 zusammen %DFC Grad Celsius var displayurlzeile2='http://192.168.xxx.xxx/control?cmd=lcd,2,1,Luftfeuchte: '+Aussenfeuchte+'%'; // Setzt String für Zeile 2 zusammen var displayurlzeile3='http://192.168.xxx.xxx/control?cmd=lcd,3,1,Leistung: '+Leistung+'W'; // Setzt String für Zeile 3 zusammen var displayurlzeile4='http://192.168.xxx.xxx/control?cmd=lcd,4,1,Wasser: '+Wasser+'L'; // Setzt String für Zeile 4 zusammen request('http://192.168.xxx.xxx/control?cmd=lcdcmd,clear'); // Löscht das Display request(displayurlzeile1); // pusht Zeile 1 zum Display request(displayurlzeile2); // pusht Zeile 2 zum Display request(displayurlzeile3); // pusht Zeile 3 zum Display request(displayurlzeile4); // pusht Zeile 4 zum Display console.log(displayurlzeile1); // Anzeige zur Kontrolle im Log } // refreshed das Display minütlich schedule("15 * * * * *", function () { main(); });
192.168.xxx.xxx: IP des displays
%DCF macht am Display das °C Zeichen.
vielen dank nochmals für die Anleitung. damit kann man wirklich schnell und günstig (<10EUR wenn über Ebay in China bestellt) ein funkt display bauen.
LG
Andi
-
Moin Andy,
klasse gemacht !
Grüße Ingo
-
Was würde denn z.b. gegen ein Arduino/ESP mit z.b. einem SSD1306/SSD1309 sprechen?
Ich überlege auch bereits seit längerer Zeit, wie ich in den einzelnen Räumen Temperatur und evtl. einen Statusflag darstellen kann. Ich denke, dass ich es mit den OLEDs umsetzen werde.
-
Hallo,
vielleicht kann mir jemand helfen.
Ich habe ESP Easy auf einem D1 Mini und das SSD1306 Display angeschlossen.
Anzeige funktioniert soweit und wenn ich unter Devices beim OLED was eintrage erscheint dies auch im Display.
Soweit so gut, aber nun zum Problem:
Wenn ich z.B.das oben genannte Kommando eingebe erscheint nichts (natürlich mit meiner IP) auch kein Fehler, also als ob er das angenommen hätte.
http://192.168.0.235/control?cmd=lcd,1,1,Heizung Keller
(in meinem Fall statt lcd -> oled)
Ich bin aber mit dem Kommando
http://192.168.0.235/control?cmd=oledframedcmd,on
oder eben off
schon erfolgreich gewesen.
Leider funktioniert das nicht mit einem Text, habe schon zig Varianten aus Forums durchprobiert, leider ohne erfolg.
Jemand eine Lösung?
Viele Grüße
-
hi,
ich glaube nicht dass du das matrixdisplay mit den gleichen html-befehlen ansprechen kannst wie das nach 4 zeilen und 20 buchstaben aufgebaute display. bis auf die commands on/off/clear weil die ws. generisch für diese displays sind.
weil 1,1 zb heisst beginne mit dem text in zeile 1 bei buchstabe 1. das SSD1306 ist ws. anders aufgebaut.
Lg
Andi
-
hmm, laut dieser Seite sollte es doch passen oder?
https://www.letscontrolit.com/wiki/inde … LEDDisplay
6001_ohne_titel.jpeg -
da hast du allerdings recht. lt. der Syntax auf der Seite sollte das passen.
ich habe zu beginn auch verschiedenste Probleme gehabt mit dem wemos und hab ihn dann neu geflashed - dann hats einwandfrei funktioniert.
wäre mal einen versuch wert der nicht zuviel zeit in Anspruch nimmt…
-
leider schon probiert, von einer uralten auf eine ganz neue und was dazwischen.
Das OLED ist sehr störrisch und will keinen text annehmen.
Wenn das funktionieren würde, könnte ich endlich mit einigen Projekten weitermachen…
aber danke für die rasche Antwort!
-
Moin,
ein undefinierbares Problem ähnlicher Natur hatte ich anfangs auch.
Ursache war dann eine steckbare Verbindung zwischen Wemos und Display.
Erst nachdem die Verbindung gelötet habe, war alles schick.
Vielleicht hilft es.
Grüße Ingo
-
Hallo,
danke für den Hinweis, hab das display und den Wemos bereits von Anfang an auf eine Platine aufgelötet…
Somit scheidet das auch aus, vielleicht find ich das noch irgendwann heraus.
-
Hallo
habe gerade auch eine Möglichkeit gesucht mir an verschiedenen Stellen im Haus Dinge anzuzeigen.
Da ich ca 20 Tasmota Geräte habe wollte ich den ESPEasy nicht nehmen.
Habe deshalb einen Displaytreiber für SSD1306 und e-paper in Tasmota eingebaut.
Das E-Paper sieht eigentlich sehr schön aus hat aber wenn man schnelle Display Updates braucht den Nachteil des "ghosting" (man sieht ältere texte noch ganz schwach "durchscheinen")
Im Anhang eine kurze Beschreibung der Syntax zur Ansteuerung und die binaries.
Man kann sowohl Sensorwerte des ESP selbst als natürlich auch vom Broker aus Werte anzeigen.
Das Display braucht vom Netz inclusive ESP ca 0.2 -0.3 Watt.
Gruß Gerhard
-
Weiter geht's,
in ESP Easy / Config Unit-Nr. wenn es dein erstes Modul ist, dann eine 1, muß eindeutig sein.
Sehr zu empfehlen ist eine feste IP, unten eingeben. Mit Submit abspeichern, dann unter Tools Reboot.
Danach mit der festen IP neu verbinden.
Dann unter Controllers OpenHAB MQTT einstellen, Controller IP ist dein ioBroker.
Unter Hardware liest du bei SDA und SDL die Anschlüsse für dein Display aus. (können geändert werden).
An diese Anschlüsse schließt du jetzt dein Display an. (plus 5V und GND)
Das Ganze wieder einschalten, und unter Tools I2C Scan drücken, damit wird die Adresse des Display-Interfaces ermittelt.
Jetzt in Devices, das Display einrichten. Unter I2C Adress stellst du die ermittelte Display-Adresse ein.
(kann sein nochmal Reboot ???)
Dann sollte der Schriftzug ESP Easy im Display erscheinen.
Den Rest dann morgen, jetzt gibt es was zu futtern.
Grüße Ingo `
Moin Ingo,ich habe mir das Projekt auch mal angenommen und habe jetzt vollgendes Problem.
wie in dem Beitrag beschrieben habe ich alles eingestellt und angelegt. Ich habe auch eine Verbindung zum IoBroker hinbekommen und im mqtt ist das Display auch zu sehen.
aber ich bekomme aber keinen Text oder anderes angezeigt !!!
kannst du mir da weiterhelfen
meine komponenten sind:
-Wemos d1 mini
-LCD 2004 HD44780 blau + I2C HD Interface
-
Moin,
kann ich so aus der Ferne nur vermuten:
Display-Adresse (I2C) korrekt ermittelt und eingetragen ?
Ich hatte auch mal Schwierigkeiten als ich alles nur mit Steckbrücken verkabelt hatte, das Display zeigte nix an.
Erst als ich die Verbindung ESP - Display gelötet habe, war alles schick.
Grüße Ingo
-
Moin,
kann ich so aus der Ferne nur vermuten:
Display-Adresse (I2C) korrekt ermittelt und eingetragen ?
Ich hatte auch mal Schwierigkeiten als ich alles nur mit Steckbrücken verkabelt hatte, das Display zeigte nix an.
Erst als ich die Verbindung ESP - Display gelötet habe, war alles schick.
Grüße Ingo `
Hallo Ingo,
Danke für die rasche Antwort ich werde es gleich wenn die Kinder im Bett sind mal löten und dann mal ausprobieren und melde mich dann nochmal.
Danke erst einmal!
Gruß,
Christopher