ESP8266 WiFi Color Display mit FHEM verwenden

Begonnen von kingmathers, 27 November 2018, 17:44:29

Vorheriges Thema - Nächstes Thema

Markus.

#15
Da gibt es keine Fehlermeldung. Das Display zeigt halt nur die Startseite an mit dem Fhem Logo und dem WiFi connect, dann geht's nicht weiter.

Aber ich suche mal weiter

Gruß und danke

Markus

kingmathers

#16
Hast du die entsprechenden Libraries installiert?

Folgende Libraries sind erforderlich:
- Mini Grafx by Daniel Eichhorn
- FHEM by Philipp Pfeiffer
- simpleDSTadjust by neptune2
- XPT2046 TouchScreen by Paul Stoffregen

Das habe ich leider bisher unzureichend dokumentiert.

Grüße und viel Erfolg weiterhin,
Philipp
Raspberry Pi B+, FS20, 1-Wire, HM
FHEM Home Control (App für Windows 10): https://forum.fhem.de/index.php/topic,49891.0.html
FHEM Arduino Library: https://forum.fhem.de/index.php/topic,94093.0.html

Markus.

Hallo Philipp,

Ja die libs habe ich alle drin. Denke es ist ein Hardwareproblem in Bezug auf die richtige zurordnung der Pins. Bin ja von 0–Anzeige schon mal soweit, das es wenigstens den Initialisierungs–Screen mit dem FHem Logo anzeigt. Ich probiere morgen mal den TFT—Rst auf einen pin zu legen und suche mal nach dem define dafür. versuch macht klug..;-)

Gruß

Markus

Markus.

habe nochmal ein wenig nachgeforscht... Ich glaube ich muss andere Libaries verwenden umdas so mit diesem LOLIN TFT Display ans laufen zu bekommen. Hier der Hinweis macht mich ein wenig stutzig..

https://wiki.wemos.cc/tutorials:shields:get_started_with_tft_2.4_shield

Gruß

Markus

kingmathers

Das ist komisch, eigentlich scheint die Hardware identisch zu sein. Vor allem da du schon den Ladebildschirm anzeigen konntest.

Funktioniert die Wetterstation denn bei dir?

Raspberry Pi B+, FS20, 1-Wire, HM
FHEM Home Control (App für Windows 10): https://forum.fhem.de/index.php/topic,49891.0.html
FHEM Arduino Library: https://forum.fhem.de/index.php/topic,94093.0.html

Markus.

#20
habs hin bekommen ;-)

Die Hardware scheint unterschiedlich zu sein. Es liegt glaube ich am IRQ und dem D0 sowie der Definition im Sketch mit dem reset. Hab ein paar Sachen im Sketch geändert und nun läufts erstmal. Ich Beschreib das noch genauer wenn ich fertig bin mit spielen. Hab das eigentlich nur gemacht weil ich zu geizig war fast 30$ dafür zu zahlen.. ;-)
Wenn das so funktioniert, könnte man ja supergeniale WLAN-Touch-Taster draus bauen. Muss nur noch schön in ein UP-Gehäuse verpackt werden..

Viiiielen Dank für deine Hilfe erstmal !!

Gruß

Markus

kingmathers

Freut mich, dass es klappt.

Ich möchte das Display ebenfalls als WLAN Infodisplay/Touch Taster nutzen. Die UI (Buttons, wo welcher Text steht etc.) muss man sich natürlich selbst zusammenbasteln je nach Anwendung.

Ich bin ebenfalls noch auf der Suche nach einem Gehäuse. Zum 3D-drucken habe ich zwar ein paar für den Bildschirm gefunden, aber ich fürchte der Micro USB Anschluss ist dann nicht zu erreichen (je nachdem wie man den Wemos angebracht hat) und zum Unterputzeinbau ist es damit auch viel zu groß.

Grüße,
Philipp
Raspberry Pi B+, FS20, 1-Wire, HM
FHEM Home Control (App für Windows 10): https://forum.fhem.de/index.php/topic,49891.0.html
FHEM Arduino Library: https://forum.fhem.de/index.php/topic,94093.0.html

Markus.

kannst Du mir nochmal auf die Sprünge helfen.. stehe daauf dem Schlauch wie man einen Wert von einem Device im Status
direkt abfragt.
Es soll im Status 1 der Wert des Readings "temperature" aus dem device "MYSENSOR_103" abgefragt werden.


Status1 = "Status 1\nStatus: "+ fhemclient.LoadFromServer("{temperature(\"MYSENSOR_103\")}");

Im Log bekomme ich dann nur


2018.12.13 18:30:57 1: ERROR evaluating {temperature("MYSENSOR_103")}: Undefined subroutine &main::temperature called at (eval 613958) line 1.


Gruß

markus

kingmathers

#23
Du musst ReadingsVal oder Value verwenden. Folgendes Gerät als Beispiel:

Internals:
   NAME       MYSENSOR_103
   STATE      done
   READINGS:
     2018-12-11 12:41:24   temperature   20


Jetzt kann man mit Value("MYSENSOR_103") den State auslesen und mit ReadingsVal("MYSENSOR_103", "temperature", "0") verschiedenen Readings auslesen.


Status1 = "Status 1\nStatus: "+ fhemclient.LoadFromServer("{Value(\"MYSENSOR_103\")}"); // liefert den State, hier done
Status1 = "Status 1\nStatus: "+ fhemclient.LoadFromServer("{ReadingsVal(\"MYSENSOR_103\", \"temperature\", \"0\" )}"); // liefert das Readings Temperatur, hier 20


ReadingsVal benötigt 3 Argumente: Geräte Name, Readings Name und den Standardwert (falls das Readings nicht gefunden wird). Value benötigt nur den Namen des Geräts als Argument.

Zum testen kannst du all diese Befehle (mit geschweiften Klammern, aber ohne \ vor ") auch direkt bei FHEM in der Weboberfläche als Befehl eingeben. Die geschweiften Klammern werden benötigt, weil es sich um Perl-Ausdrücke handelt. Direkte FHEM Befehle (set Licht on) kannst du auch direkt übergeben:


Status1 = "Status 1\nStatus: "+ fhemclient.LoadFromServer("set Licht on"); //hier wird nichts zurückkommen, aber der Befehl wird an FHEM gesendet und ausgeführt
Raspberry Pi B+, FS20, 1-Wire, HM
FHEM Home Control (App für Windows 10): https://forum.fhem.de/index.php/topic,49891.0.html
FHEM Arduino Library: https://forum.fhem.de/index.php/topic,94093.0.html

Markus.

mmh bekomme einen Fehler im Log..undefined Subroutine

2018.12.13 19:25:42 1: ERROR evaluating {RedaingsVal("MYSENSOR_103", "humidity", "0" )}: Undefined subroutine &main::RedaingsVal called at (eval 615794) line 1.


Der Status sieht wie folgt aus..

Status1 = "Wohnzimmer\nTemperatur: " + fhemclient.LoadFromServer("{RedaingsVal(\"MYSENSOR_103\", \"temperature\", \"0\" )}");

Auf dem Display zeigt er auch statt dem Wert "undefined Subroutine" an
Eine Idee?

Gruß

Markus

kingmathers

#25
Da habe ich mich leider verschrieben. "ReadingsVal" statt "RedaingsVal", dann sollte es klappen.

Grüße und weiterhin viel Erfolg,
Philipp
Raspberry Pi B+, FS20, 1-Wire, HM
FHEM Home Control (App für Windows 10): https://forum.fhem.de/index.php/topic,49891.0.html
FHEM Arduino Library: https://forum.fhem.de/index.php/topic,94093.0.html

Markus.

Ohhh Mann copy und Paste statt mal zu lesen ;-) ich Depp
Danke dir, werde es morgen probieren.

Viele Grüße

Markus

locutus

Wie können mit der FHEM Arduino Library beliebige Zeichen direkt hinter einem Wert gesetzt werden?
Warum entsteht hier nach dem Temperaturwert (21.6) erneut ein Zeilenumbruch, der °C in die nächste Zeile befördert?
Status1 = "Schlafzimmer\nTemperatur: " + fhemclient.LoadFromServer("{ReadingsVal(\"LaCrosse_01\", \"temperature\", \"0\" )}") + " °C";
genauso wie:
Status1 = fhemclient.LoadFromServer("{ReadingsVal(\"LaCrosse_01\", \"temperature\", \"0\" )}");
...
gfx.setTextAlignment(TEXT_ALIGN_LEFT);
gfx.drawString(0, 24, "Temperatur: ");
gfx.drawString(120, 46, Status1 + " °C");

stellt auf dem Display dar:
Schlafzimmer
Temperatur: 21.6
°C

und nicht wie gefordert:
Schlafzimmer
Temperatur: 21.6 °C


kingmathers

Hier hatten wir mal ein ähnliches Problem, anscheinend wird teilweise ein Zeilenumbruch eingefügt. Durch löschen des letztens Zeichens sollte sich das beheben lassen, also quasi so:

Status1 = fhemclient.LoadFromServer("{ReadingsVal(\"LaCrosse_01\", \"temperature\", \"0\" )}");
Status1.remove(Status1.length() - 1,  1);
...
gfx.setTextAlignment(TEXT_ALIGN_LEFT);
gfx.drawString(0, 24, "Temperatur: ");
gfx.drawString(120, 46, Status1 + " °C");


So könnte es klappen.
Raspberry Pi B+, FS20, 1-Wire, HM
FHEM Home Control (App für Windows 10): https://forum.fhem.de/index.php/topic,49891.0.html
FHEM Arduino Library: https://forum.fhem.de/index.php/topic,94093.0.html

FischFuss

#29
Zitat von: kingmathers am 14 Juli 2020, 22:57:41
Hier hatten wir mal ein ähnliches Problem, anscheinend wird teilweise ein Zeilenumbruch eingefügt. Durch löschen des letztens Zeichens sollte sich das beheben lassen, also quasi so:

Status1 = fhemclient.LoadFromServer("{ReadingsVal(\"LaCrosse_01\", \"temperature\", \"0\" )}");
Status1.remove(Status1.length() - 1,  1);
...
gfx.setTextAlignment(TEXT_ALIGN_LEFT);
gfx.drawString(0, 24, "Temperatur: ");
gfx.drawString(120, 46, Status1 + " °C");




So könnte es klappen.

Genauso klappt das bei mir  :D

Allerdings ist mir die Schrift etwas zu klein. Kann mir jemand sagen, wie ich die Schriftgröße ändern kann....am besten für "Temperatur" und Status1 separat?

Danke für Eure Hilfe

*EDIT*
...habs selbst rausgefunden:
Über die entsprechende Zeile "gfx.setFont(ArialRoundedMTBold_14);" setzen, wöbei die Zahl die Textgröße ist