,

DIY-Homematic LCD Statusdisplay

Heute habe ich wieder ein tolles Projekt für alle Bastelfreunde unter Euch! Das Wetter wird jetzt wieder kälter und der Lötkolben kann angeschmissen werden ;-) Es geht um ein Statusdisplay, welches via Homematic Zentrale kurze Statusmeldungen ausgeben kann. Das Display, das ich Euch hier zeige hat 2×16 Segmente, die für Buchstaben, Zahlen und Zeichen genutzt werden können. Es ist auch möglich 2×20 oder 4×20 LCD Display zu verwenden. Wofür kann das Display genutzt werden?

Das Display wird über WLAN angesprochen und benötigt nur ein USB-Netzteil um mit Energie versorgt zu werden. Das Display kann über die Zentrale auch komplett ausgeschaltet werden. Hier einige Ideen und Anregungen wofür ich mir das Display vorstellen kann.

Ideen zur Anwendung

Als Signalisierung der Alarmanlage – Bei schwarfschalten bleibt das Display für 5 Minuten aktiv und gibt eine Meldung aus. Nach ablauf der Zeit schaltet sich das Display wieder ab. Auch können z.B. noch offene Fenster oder Türen angezeigt werden.

Für die Signalisierung der Haustürklingel -Durch den USB-Stecker kann das Display ganz einfach am USB Hub des Rechners betrieben werden. Sobald es an der Haustür klingelt wird das Display eingeschaltet und es erscheint eine Meldung.

Als Wattmeter an der Waschmaschine oder am Trockner, so kann der aktuelle Verbrauch in der ertsen Zeile und die Stromkosten (z.B. fürs laufende Jahr) in der zweiten Zeile dargestellt werden.

Für Diagnosemeldungen der CCU z.B. im Technikraum. Bei anliegenden Statusmeldungen der CCU (z.B. Update verfügbar oder leere Batterien), kann dies über das Display ausgegeben werden.

Auch als Anzeige der Wetterstation kann das Display genutzt werden. Hier wäre das 4×20 Display sehr gut geeignet. Es kann z.B. die Außentemperatur, der Wind und die Regenmenge angezeigt werden.

Interessant ist auch, dass dynamische Anzeigen über Variablen auf das Display geschrieben werden können. So ist es z.B. möglich Aktienkurse, Lottozahlen oder Systemzustände. Es können aber auch einfach nur statische Texte bei gewissen Events ausgegeben werden.

Wie Ihr sicher bemerkt habt, gibt es dutzende Anwendungsfälle, die man mit so einem Display abdecken kann. Da der Preis für den Aufbau sehr überschaubar ist, finde ich es eine echt gute Möglichkeit Meldungen vom Smarthome zu empfangen.

Was wird benötigt?

Doch nun zum Aufbau! Welche Komponenten werden für den Zusammenbau benötigt. Wir brauchen zuerst ein Display. Wichtig ist hierbei, dass wir ein LCD-Display verwenden, welches über I2C angesteuert wird. Dadurch sparen wir uns eine Menge Kabel und auch die Programmierung ist dadurch sehr einfach.

Welches Display

Für 16×2: eBay / Amazon

Für 20×4: eBay / Amazon

Welche Platine

Wemos D1: mini eBay / Amazon

Wie schon gesagt solltet Ihr darauf achten, dass der I2C Adapter to seriell bereits dabei ist. Dieser Steuert das wird per I2C Bus angesteuert und wandelt die Befehle in eine serielles Signal um, welches vom Display verarbeitet werden kann.

Das Herzstück bildet ein Wemos D1 mini. Dieses Modul ist mit einem ES8266 32-bit Controller ausgestattet und ermöglicht durch die integration von WLAN einen sehr einfachen Aufbau von IoT Aktoren und Sensoren.

Für die Energieversorgung wird ein 5V microUSB Netzteil benötigt. Hier brauchen wir, anders als beim Raspberry Pi, ein Netzteil mit geringer Leistung. 1A reichen reichen daher vollkommen aus.

Damit das Display auch gut positioniert werden kann, habe ich mit meinem 3D-Drucker ein Gehäuse angefertigt. Die Vorlage davon kommt von Thingiverse. Dort gibt es auch für die anderen Typen (20×2 20×4) Vorlagen, die Ihr verwenden könnt.

Zudem benötigen wir noch 4 kurze Litzen um die Wemos Platine mit dem Display zu verbinden. Damit alles einen sichern Halt im Gehäuse findet habe ich zudem etwas (doch doch etwas mehr ;-) ) Heißkleber verwendet.

Vorbereiten der Wemos D1 mini

Um die Platine nutzen zu können, müssen wir diese zuerst flashen. Dafür verwenden wir die ESPEasy Firmware. Diese ist aktuell in der Version R120 verfügbar.

Zuerst laden wir uns das aktuelle Release heruntern. Nachdem Ihr die Zip-Datei entpackt habt und den Wemos D1 per USB an den PC angeschlossen habt, müssen wir zuerst heruasfinden, welcher Com-Port der Wemos zugewiesen worden ist. Das können wir über den Gerätemanger nachsehen. In meinem Beispiel ist es der Port 5.

Nun starten wir das flash.cmd aus dem zuvor heruntergeladenen Archiv. Es öffnet sich die Kommandozeile. Dort werden wir zuerst nach dem Com-Port gefragt, an dem die Wemos angeschlossen ist. Hier tragen wir nun den soeben herausgefundenen Port ein.

Die Eingabe wird mit Enter bestätigt. Die nächste Abfrage bezieht sich auf den Speicher, der Wemos. Solltet Ihr das Gerät gekauft haben, welches ich verlinkt habe, könnt Ihr hier 1024 eintragen. Andernfalls müsst Ihr kurz im Datenblatt nachsehen, ob es 512 oder 4096 KB sind.

Nun folgt noch die Abfrage, welche Version installiert werden soll. Da wir zuvor die 120 heruntergeladen haben, tragen wir diese Zahl auch hier ein.

Es startet der Flashvorgang, der durch ein schnelles blinken der blauen LED an der Wemos signalisiert wird.

Wemos ins WLAN einbinden

Nachdem die Platine fertig geflasht wurde, können wir per WLAN auf das Gerät zugreifen um dieses in unser bestehendes Netzwerk zu integrieren. Dazu suchen wir mit dem Smartphone oder dem PC nach dem WLAN mit dem Namen „ESP_EASY_0“ das benötigte Passwort lautet „configesp„. Es öffnet sich eine kleine Website. Auf dieser sind alle, sich im Umkreis befindlichen, WLAN aufgelistet. Hier wählen wir das passende WLAN aus und tragen das entsprechende Passwort in das Eingabefeld ein.

Das Gerät startet danach neu und bucht sich automatisch in das entsprechende WLAN ein. Danach ist das Gerät bei Euch im Netzwerk unter http://newdevice erreichbar. Über die Adresse gelangen wir auf die Konfig-Seite der Platine. Hier können wir nun auch den Namen ändern, damit das Gerät vernünftig im Netzwerk identifiziert werden kann.

Ihr könnt den Namen „newdevice“ auch ändern. Das kann über den Menüpunkt „config“ gemacht werden. Ich habe meiner Wemos den Namen HomematicLCD1 verpasst. Nach einem Neustart kann ich die Config-Seite über http://HomematicLCD1 erreichen. 

Display zusammenbauen

Bevor wir uns weiter der Wemos widmen, müssen wir zuerst das LCD-Display zusammenbauen. Wenn Ihr Euch ein Display mit fertig angelötetem Adapter gekauft habt, könnt Ihr diesen Punkt überspringen. Falls nicht, muss der Adapter (18 Pins) an das Display gelötet werden. Hier ist es egal, ob Ihr nun ein 16×2 oder ein anderes Display verwenden wollt. Die Kontakte, die zum Display gehen stellen die serielle Verbindung zur Anzeige her.

Die anderen vier Beine sind für die Spannungsversorgung und die I2C Kommunikation mit der Wemos zuständig.

Auf dem I2C Modul sind neben den beiden Schnittstellen noch die Lötpunkte A0, A1 und A2 zu sehen. Diese sind für die Adresse des I2C Busses notwendig. In meinem Fall sind alle Lötpunkte offen.

I2C Adresse einstellen

Die Adresse wird über die drei Lötverbindungen eingestellt. Es können 8 unterschiedliche Adressen vergeben werden. Im Ausgangszustand (alle Verbindunge offen) wird die 0x27 verwendet.

Wenn Ihr eine andere Adresse wählen wollt, weil z.B. mehrere Display parallel angesteuert werden sollen, findet Ihr auf dieser Seite eine Übersicht der Adressen, die gewählt werden können.

In dieser Anleitung lassen wir alle Pins offen und verwenden die Adresse 0x27. Diese tragen wir gleich auch in die Wemos ein, um das Display anzusteuern.

Display an Wemos anschließen

Nun müssen wir noch die vier Adern mit der Wemos verbinden. Es handelt sich dabei um die Spannungsversorgung, den Ground, und die beiden Adern für den I2C Bus (SDA, SCL).

Achtung! Es gibt auch Displays und I2C Adapter, die mit 3,3V arbeiten. Diese dürfen dann nicht an die 5V Spannungsversorgung angeschlossen werden. Dafür hat die Wemos einen separaten Pin, der 3,3V liefert!

Wir löten zuerst die vier Adern an das I2C Modul auf dem Display. Dabei habe ich mit der Spannungsversorgung angefangen:

  • GND –> gelb
  • VCC –> orange
  • SDA –> schwarz
  • SCL  –> blau

Nun müssen wir die vier Kabel auch an der Wemos anlöten. Auch hier eine Übersicht:

  • Orange –> 5V
  • Gelb –> G
  • Schwarz –> D2
  • Blau —> D1

So sieht das Resultat dann aus, wenn Ihr die Pins angelötet habt. Ich hatte zusätzlich noch Beinchen am Wemos, da ich es zum Testen zuvor in ein Steckbrett aufgebaut habe. Diese braucht Ihr aber nicht, wenn Ihr das Teil später in ein Gehäuse packen wollt.

Wemos mit Display bekannt machen

Nun können wir das Display mit der Wemos bekannt machen. Da wir soeben die Spannungsversorgung und die Busverbindung hergestellt haben, können wir nun eine Kommunikation aufbauen. Wir schließen das Gerät wieder an die 5V Spannungsversorgung an und warten kurz, bis das Gerät wieder im Netzwerk verfügbar ist.

I2C Bus scannen

Auf der Weboberfläche klicken wir auf „Tools“. Dort ist der Punkt „I2C Scan“ zu finden. Mit einem Klick startet der Scan und unser Display wird erkannt!

Es erscheint unser LCD-Display und wir sehen auch wieder, die soeben angesprochen Adresse 0x27.

I2C Display konfigurieren

Jetzt navigieren wir zum Menüpunkt „Devices“. Dort klicken wir auf „Edit“ beim ersten Eintrag. Hier müssen wir zuerst das „Device“ auswählen. Es handelt sich bei unserem Display um ein „LCD2004“

Bei der I2C Adresse tragen wir nun die 27 ein und bei „Display Size“ die entsprechende Größe. Bei meinem Beispiel ist das 2×16. Wenn Ihr ein anderes Display verwendet, dann könnt Ihr dies hier anpassen.

Jetzt können wir auch die erste Testnachricht auf das Display schicken. Dazu tragen wir in Linie 1 und Linie 2 einen text ein. Dieser sollte max. 16 Zeichen pro Zeile betragen.

Mit einem Klick auf Submit werden die beiden Textzeilen an das Display übertragen.

Kontrast einstellen

Wenn Ihr nun die Testnachricht auf dem Display sehen könnt, könnt Ihr jetzt den Kontrast einstellen. Das geschieht über den kleinen, blauen Poti.

Gehäuse aufbauen

Nachdem alle Schritte erfolgreich abgearbeitet worden sind, können wir uns nun dem Gehäuse widmen. Das Gehäuse habe ich, wie oben schon erwähnt, von Thingiverse, es gibt auch andere Varianten, ich habe mich für diesen Tischaufsteller entschieden. Die Druckzeit lag bei ca. 2,5 h.

Das Display wird in das Gehäuse gelegt und mit zwei Schrauben fixiert. Ich habe an dieser Stelle mit Heißkleber nachgeholfen.

Das microUSB Kabel habe ich durch die vorhandene Öffnung geführt und dann alles mit einer ordentlichen Dosis Kleber fixiert. Man könnte das Ganze Konstrukt natürlich auch noch mit Harz vergießen, für meine Zwecke reicht der Heißkleber aber vollkommen aus. Evtl. würde dann auch der WLAN-Empfang der Wemos leiden…

Wir können unser Display nun überall dort platzieren, wo wir eine 5V Stromquelle und ausreichenden WLAN-Empfang haben!

Kommunikation mit dem Display

Es ist ja ein wenig Witzlos, die Texte, die angezeigt werden sollen nur über die Weboberfläche der Wemos absetzen könnte. Daher zeige ich Euch nun, wie Ihr das Display per http-Request steuern könnt.

Um das Display in ein bestehendes Homematic-System einzubinden, führen wir mit einem einfachen Skript eine http anfrage aus, die dann einen String an das Display übermittelt. 

Hier seht Ihr nun, wie Ihr per http-Request einen Text an das Display übermitteln könnt:

http://192.168.178.119/control?cmd=lcd,1,1,TEST Zeile 1
http://192.168.178.119/control?cmd=lcd,2,1,TEST Zeile 2

Ihr müsst natürlich die IP-Adresse durch Eure ersetzen. mit dem Kommando „control?cmd=lcd“ steuern wir das Display an. Die erste „1“ steht dabei für die erste Zeile des Display. Wenn Ihr ein vier-zeiliges Display verwendet, dann könnt Ihr hier die Zahlen 1-4 einsetzen. Die folgende Ziffer steht für das Zeichen. Wir schreiben als mit dem ersten Beispiel in der ersten Zeile beginnend mit dem ersten Zeichen. Wenn wir z.B. 1,5 schreiben würden. Dann blieben die ersten 4 Zeichen stehen und der Text würde erst ab dem 5. Zeichen geändert.

Das ist gerade bei Anwendungen interessant, wo wir einen statischen Text z.B. Raumtemp. und eine sich ändernde Zahl haben. So wird immer nur der aktuelle Wert und nicht die komplette Zeile neu geschrieben. Das ist später bei den Skripten sehr interessant.

Wir können die Befehle einfach hintereinander in einen Browser kopieren. Sobald diese abgeschickt werden, ändert sich der Zustand auf dem Display. 

Neben den Befehlen für das Übermitteln von Zeichen, gibt es 3 weitere Steuerbefehle, die genutzt werden können:

http://192.168.178.119/control?cmd=lcdcmd,off
http://192.168.178.119/control?cmd=lcdcmd,on
http://192.168.178.119/control?cmd=lcdcmd,clear

Diese sind recht selbsterklärend. Mit „off“ wird die Beleuchtung des Display ausgeschaltet. Die Zeichen, die zuvor angezeigt waren bleiben aber bestehen. Diese können mit „clear“ gelöscht werden. Das Display kann über „on“ wieder eingeschaltet werden. 

So können Statusmeldungen auch nur für eine kurze Zeit eingeblendet werden ohne dass das Display die ganze Zeit leuchtet.

Einbindung in Homematic über Stripte

Jetzt zeige ich Euch, wie Ihr das Display über Homematic ansteuern könnt. Dazu habe ich ein kleines Programm erstellt. Wenn die Systemvariable „Anwesenheit“ auf Abwesend wechselt, soll zuerst der aktuelle Inhalt vom Display gelöscht werden und der Status Abwesend soll dann signalisiert werden.

Hier nun das Programm:

Zuerst werte ich den Zustand der Variable „Anwesenheit“ aus. Bei einer Änderung zu „nicht anwesend“ löse ich zwei Skripte aus.

Das erste Skript löscht den Inhalt des Display.

Dieses sieht so aus:

string stdout;  string stderr;  string url="http://192.168.178.119/control?cmd=lcdcmd,clear";  system.Exec ("wget -q -O /dev/null " # url, &stdout, &stderr);

Das erste Skript wird ohne Verzögerung sofort gestartet. Das zweite Skript schreibt nun den Inhalt „Status Abwesend“ in die erste Zeile des Displays:

string stdout;  string stderr;  string url="http://192.168.178.119/control?cmd=lcd,1,1,Status%20Abwesend";  system.Exec ("wget -q -O /dev/null " # url, &stdout, &stderr);

Dieses Skript lasse ich mit einer Verzögerung von 1 Sekunde ausführen, damit es zu keinen Kollisionen kommt. Das ist jetzt zwar ein sehr sehr einfaches Programm, zeigt aber, wie das Display genutzt werden kann. Wir können auch noch viel komplexere Daten an das Display senden. So können auch Inhalte, Zustände, Stromwerte und viele mehr aus der Homematic-Zentrale direkt an das Display gesendet werden.

Das würde den Rahmen dieses Artikel aber sprengen. Werner hat euch hier beschrieben, wie Ihr das Display im vollen Umfang nutzen könnt!

30 Kommentare
  1. Almin
    Almin sagte:

    Hallo,
    vielen Dank für die super Anleitung. Jedoch verzweifel ich gerade. Also der Aufbau ist der selbe und der D1 hat “ ESP_Easy_mega_20221224_normal_ESP8266_4M1M“ als FW drauf. Ich kann das Display auch „an und ausschalten“ mehr leider auch nicht. Ich bekomme keine Text drauf. Oder sonstiges. Was habe ich übersehen oder falsch gemacht? Ich bedanke misch schon mal. :-)

    Antworten
  2. Hans
    Hans sagte:

    Angeregt durch diesen schönen Beitrag habe ich mir ein solches Status Display mit einem Wemos D1 Mini und einem LCD 2004 gebaut.
    Nach einem Update der Firmware musste ich jedoch feststellen, dass das Display nicht mehr richtig funktioniert. Die einfachen Test-Zeilen
    http://192.168.178.119/control?cmd=lcd,1,1,TEST Zeile 1
    http://192.168.178.119/control?cmd=lcd,2,1,TEST Zeile 2
    geben nur noch das Wort TEST aus. Es wird also kein Leerzeichen mehr akzeptiert. Alles nach einem Leerzeichen verschwindet. Auch %20 bringt keinen Erfolg. Mit der alten Version vom 8.11.2019 kann man Leerzeichen mit %20 eingeben.
    (ESP_Easy_mega-20191108_normal_ESP8266_4M1M.bin)
    Weiss Jemand, was sich seid diesem Datum geändert hat? Wie kann ich nun ein Blank anzeigen ?

    Antworten
    • Carsten
      Carsten sagte:

      Moin Hans,
      zwar ist deine Frage bereits gute 4 Jahre alt, jedoch ist sie es wert, hier noch beantwortet zu werden. Ich habe nämlich exakt dasselbe Problem bei meinem Neueinstieg in dieses tolle Projekt. Sobald ein Leerzeichen im String auftaucht, wird die Ausgabe abgebrochen. Das Problem scheint in der Homematic resp. in CUxD zu liegen. Gibt man nämlich testweise über die Browser-Adresszeile „http://192.168.x.xxx/control?cmd=LCD,1,1,“Hallo Wach““ ein, erfolgt eine korrekte Ausgabe!
      Die Lösung habe ich zufällig in einem Fhem-Forum gefunden: Ersetze das Leerzeichen bzw. %20 durch %A0.

      Ich hoffe, das hilft dem ein oder anderen weiter?!

      Antworten
      • Thomas H
        Thomas H sagte:

        „Ersetze das Leerzeichen bzw. %20 durch %A0.“
        Guter Tipp.
        Aber bei mir klappt das mit %20 gut, so wie ich es schon hier im Kommentar in dem eingestellten Code auch zu sehen ist.

        Antworten
  3. Enrico
    Enrico sagte:

    Hi,ich beschäftige mich gerade mit dem Problem,dass am Display keine Großbuchstaben erscheinen, beim http request. Wenn man direkt in espeasy die Zeilen beschreiben lässt funktionieren die Großbuchstaben. Über HMatic,Browser und iobroker nicht. Woran könnte das liegen?

    Antworten
      • Enrico
        Enrico sagte:

        Nein leider konnte ich das Problem nicht lösen. Wenn man direkt über den Wemos das Display anspricht, erscheinen die Großbuchstaben, über http leider nicht.

        Antworten
        • Ralf
          Ralf sagte:

          Danke für die Antwort.
          Schade das du auch keine Lösung hast.
          Dabei kann ich mir nicht vorstellen, daß wir die einzigen sind mit diesem Problem.

          Antworten
        • Thomas H
          Thomas H sagte:

          Hm, dieses Problem habe ich nicht, da wird alles dargestellt, was ich will, auch in Großbuchstaben!
          Dies ist das Skript, welches ich momentan benutze:
          string stdout;
          string stderr;
          ;
          string Temp03 = dom.GetObject(„BidCos-RF.JPTH10I003:1.TEMPERATURE“).Value().ToString(1);
          string Hum03 = dom.GetObject(„BidCos-RF.JPTH10I003:1.HUMIDITY“).Value().ToString(2);
          string url = „http://192.168.2.106/control?cmd=LCD,1,3,’Innen „#Temp03#“ßC%20″#Hum03#“%%20%20′“;
          system.Exec („wget -q -O /dev/null “ #url, &stdout, &stderr);
          ;
          string Temp04 = dom.GetObject(„BidCos-RF.JPTH10I004:1.TEMPERATURE“).Value().ToString(1);
          string Hum04 = dom.GetObject(„BidCos-RF.JPTH10I004:1.HUMIDITY“).Value().ToString(2);
          string url = „http://192.168.2.106/control?cmd=LCD,2,2,’Garage „#Temp04#“ßC%20″#Hum04#“%%20%20′“;
          system.Exec („wget -q -O /dev/null “ #url, &stdout, &stderr);
          ;
          string Temp01 = dom.GetObject(„BidCos-RF.JPTHPO0001:1.TEMPERATURE“).Value().ToString(1);
          string Hum01 = dom.GetObject(„BidCos-RF.JPTH10I003:1.HUMIDITY“).Value().ToString(2);
          string Pres01 = dom.GetObject(„BidCos-RF.JPTHPO0001:1.AIR_PRESSURE“).Value().ToString(0);
          string url = „http://192.168.2.106/control?cmd=LCD,3,2,'“#Temp01#“ßC%20″#Hum01#“%%20″#Pres01#“HPa'“;
          system.Exec („wget -q -O /dev/null “ #url, &stdout, &stderr);
          ;
          ;object oGarage = datapoints.Get(„BidCos-RF.OEQ2138226:1.STATE“);
          string sGarage = „Rolltor „;
          if(oGarage.Value()) {sGarage= sGarage#“OFFEN“;}else{sGarage=sGarage#“ZU“;}
          string url = „http://192.168.2.106/control?cmd=LCD,4,5,'“#sGarage#“%20′“;
          system.Exec („wget -q -O /dev/null “ #url, &stdout, &stderr);

          Also das ist Text, Innen, Garage, Rolltor, ZU, OFFEN.
          Aber das wird genau so angezeigt!
          Nur in der 3.Zeile nicht, da hier keine Benennung des Sensors reinpasste, das ist aber der Gartensensor, also ein Außensensor.
          Da man kein Bild hier einstellen kann, versuch ich es mal mit einem freigegebenen Foto auf OneDrive.
          https://1drv.ms/u/s!AvQPQVepSmQsgpxZ6WS9IrDE7PGPgg?e=KjGaLn

          Antworten
          • Ralf
            Ralf sagte:

            Danke für deinen Code.Der hilft mir demnächst bestimmt weiter.

            Ich hab die ESPEASY Megabyte drauf gehabt.Hab nun die R120 geflasht. Nun geht es.

            Danke

  4. Hey,
    Hey, sagte:

    Hey,

    ein klasse Projekt. Hab mein Display zum laufen bekommen. Lasse mir die Daten von Temperatur, Luftfeuchte sowie Helligkeit anzeigen. Allerdings habe ich einen kleinen Schönheitsfehler im Script, welchen ich noch nicht raus bekomme.

    Zeile 1 Text: Temperatur
    Zeile 2 Text: Luftfeuchte
    Zeile 3 Text: Helligkeit

    gefolgt von den jeweiligen Werten und ab Zelle 17 deren Einheit. So stehen die Einheiten schön untereinander. Allerdings hätte ich gerne auch die Zahlen *rechtsbündig* untereinanderstehen.

    Reine Optiksache, sieht aber schöner aus finde ich. Habt Ihr eine Idee, wie ich die Zahlen rechtsbündig ab Zelle 15 (nach links) setzen kann?

    Antworten
  5. Sven Pojtinger
    Sven Pojtinger sagte:

    Hallo

    ich habe folgendes Problem ich bekomme immer im Log den Fehler
    7650 : WIFI : Connected!
    7650 : INIT : I2C
    8737 : INIT : Boot OK
    8737 : INIT : Normal boot
    38739 : WD : Uptime 0 ConnectFailures 0 FreeMem 26968
    68740 : WD : Uptime 1 ConnectFailures 0 FreeMem 25504
    98741 : WD : Uptime 1 ConnectFailures 0 FreeMem 23776
    128742 : WD : Uptime 2 ConnectFailures 0 FreeMem 22312
    158743 : WD : Uptime 2 ConnectFailures 0 FreeMem 22256
    188744 : WD : Uptime 3 ConnectFailures 0 FreeMem 22312

    Ich kann auch unter Devices keine Meldung an das Display Schicken.
    I2C Test ist okay
    i2C Adresse habe ich auf 27 eingestellt was er auch ausliest.

    Was kann der Fehler sein?

    Gruß Sven

    Antworten
  6. Tobi
    Tobi sagte:

    „Werner wird Euch in den nächsten Tagen einiges mehr dazu zeigen, wie Ihr das Display im vollen Umfang nutzen könnt!“

    Sollte da nicht noch etwas kommen.

    Mir würde es Sehr helfen, ich bekomme momentan nicht einmal eine temperatur angezeigt.

    es währe prima wen da noch etwas zum befüllen kommen könnte.

    mfg Tobi

    Antworten
    • Leif
      Leif sagte:

      Hallo Frank,

      du musst nur den Datenpunkt des Sensors abgreifen, z.B.:
      dom.GetObject(„BidCos-RF.SERIENNUMMER_DES_SENSORS:1.TEMPERATURE“).Value();

      In dem Skript unten habe ich statt der Seriennummer „HVL.Wunderground“ eingetragen, da dies ein Virtuelles Gerät ist und keine Nummer hat. Also z.B. LEQ0123456 oder OEQ01234567.
      Anschließend musst du noch mitteilen, was du abrufen möchtest, z.B. die Temperatur mit „.TEMPERATURE“.
      Damit man vorher schon sehen kann ob alles klappt, lasse ich mit die erstellte Variable mit „WriteLine(list_zeile1);“ anzeigen.
      Also einfach unter Programme und Verknüpfungen auf der CCU den Knopf Script testen drücken und probieren, bis du keine Fehlermeldung mehr bekommst und ein plausibler Wert angezeigt wird…
      Viel Erfolg

      Antworten
  7. Leif
    Leif sagte:

    Hallo zusammen,

    hier ein Beispiel für die Temperatur:

    ! ———-
    !LCD 2004 Script
    ! ———-

    var temp = dom.GetObject(„HVL.Wunderground:1.TEMPERATURE“).State();

    string list_zeile1;
    string list_zeile2;

    ! ———-
    !Temperatur
    ! ———-
    list_zeile1 = list_zeile1 + „Temp:“;
    temp = temp.ToString(1);
    list_zeile1 = list_zeile1 + temp;
    list_zeile1 = list_zeile1 + „°C“;

    ! ———-
    !Ausgabe
    ! ———-

    ! clear
    string stdout;
    string stderr;
    system.Exec(„wget -q -O – ‚http://192.168.0.89/control?cmd=lcdcmd,clear'“, &stdout, &stderr);

    ! Ausgabe
    string stdout;
    string stderr;
    system.Exec(„wget -q -O – ‚http://192.168.0.89/control?cmd=lcd,1,1,“#list_zeile1#“‚“, &stdout, &stderr)

    ! ———-
    !Debug
    ! ———-

    WriteLine(list_zeile1);

    Hat jemand eine Idee wie man die Sonderzeichen (z.B. °) darstellen kann?

    Antworten
    • Micha
      Micha sagte:

      Das “ ° “ geht mit “ ß „. Es ist mir aber noch nicht gelungen Umlaute darzustellen. Hat da vielleicht einer eine Idee?

      Antworten
      • Frank Raddau
        Frank Raddau sagte:

        Hi Micha,
        danke für den Tipp mit dem Grad Zeichen, habe die Brille aufgesetzt und ein Grad Zeichen entdeckt, nochmals vielen Dank,

        Antworten
  8. Frank Raddau
    Frank Raddau sagte:

    Hallo Sebastian,
    super Sache, eine Frage möchte mir die Daten meines HM Kombisensor anzeigen lassen, habe aber kein Plan von Scripte schreiben, hast Du evtl. einen Tipp?

    Antworten
    • Christian
      Christian sagte:

      Hallo, ich hänge da auch fest. Aber zunächst einmal vielen Dank für diesen tollen Artikel.

      Ich lade den Tempertaur Wert von Netatmo in eine Varible:

      string temp = dom.GetObject(„CUxD.CUX9002002:1.TEMPERATURE“).Value().ToString(1);

      Jetzt ist die Frage wir der der Befehl aussieht das in den URL Aufruf dann die Variable temp mit gesendet wird.

      Kann mir da bitte einer weiter helfen ?

      Grüße

      Antworten
      • Frank Raddau
        Frank Raddau sagte:

        Hallo Christian,
        jetzt funktioniert es! Danke!
        Kleines Problem noch, ich habe ein Display mit 4 Zeilen, die Temperatur wird mir in Zeile1 angezeigt und Die Luftfeuchte in Zeile2, jedoch wird wenn es aktualisiert, wird erst die Temperatur in Zeile 1 angezeigt und dann die Luftfeuchte in Zeile 2, dabei geht die Temperatur in Zeile 1 weg und die Luftfeuchte bleibt in Zeile 2 stehen.

        Antworten
  9. Mathias
    Mathias sagte:

    Danke für den Tipp!
    Ich denke, dass man es zum Auslesen von Temperaturen, offenen Fenstern sehr gut einsetzen kann.
    Aber zur Statusanzeige für eine Alarmanlage völlig unbrauchbar.
    Szenario: ich will die Balkontüre öffnen. Ich gehe zum Balkon, um zu lesen, dass die Alarmanlage scharf ist.
    Nun muß ich zur Eingangstüre, um unscharf zu schalten.
    Besser wäre dieses Projekt: https://github.com/jp112sdl/WemosD1_HomeMatic_StatusDisplay/wiki/Housing_MW
    Da sieht man gleich vom weiten, ob die LED rot oder grün ist.

    Antworten

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert