NEWS
[Gelöst] Wetter Display
-
Hab bisher nur NodeRed drauf. Mal sehen wie ich es mache. Erstmal ohne Script, erstmal Daten auf das Display bekommen. Ein Script brauche ich damit es aktualisiert wird oder wofür? Also iobroker zu lernen war leichter als das hier
mfg
-
@kredar Ich mache es über ein Script. Irgendwie muss ich ja Werte in die Datenpunkte im MQTT bekommen
Wenn du zum Test nur mal irgendwelche Werte haben willst, kannst du ja manuell in den MQTT Datenpunkten Werte eintragen. -
@draexler Danke fürs teilen deiner yaml Datei
Mein epaper Display ist bestellt (4,2") und ich konnte gestern Abend erfolgreich Daten zwischen iobroker und dem esp austauschen. -
@feuersturm Gerne Musst halt einiges anpassen ,-)
Aber kleiner Tipp. Baue es dir zuerst in der VIS. Macht es viel einfacher mit den X Y Koordinaten in der YAML, da du die nur aus der VIS übernehmen brauchst.
Das Ergebnis siehst du ja immer erst nach dem Flashen/Updaten. -
Ich habe mal die Temperatur-Innenwerte in ESPHome eingetragen:
text_sensor: #MQTT SENSOR TEMPERATUR INNEN - platform: mqtt_subscribe name: "Temp-Innen" id: TemperaturInnen topic: Temperatur/Innen # Display Print lambda: |- int x, y; ESP_LOGI("display", "Updating.."); it.print(26, 49, id(Arial), "Temperatur"); it.printf(374, 38, id(Arial), TextAlign::TOP_RIGHT, "%s", id(TemperaturInnen).state.c_str());
Nun kann ich es speichern aber nicht Installieren. Mir fehlt irgendwie irgendwas damit ESPHome das checkt.
Was für einen Adapter muss ich denn installieren, einen Blocky-Adapter gibt es im ioBroker nicht oder er heißt anders wenn man ihn für das ganze benötigt.
Ich habe ja im MQTT-Adapter schon einen Wert drinnen stehen, den kann ich auslesen. Der MQTT-Adapter ist auf "Client/subscriber" eingestellt.
Das ist mein go-e der ist per MQTT automatisch eingetragen worden also ich den MQTT-Adapter eingetragen habe am go-e. Das kann man mal als "Muster" nehmen denke ich zum testen damit überhaupt mal was funktioniert.
Wie bekomme ich den Wert nun auf den ESP32? Mir fehlt irgendwas, ich kann sobald ich eine "text_sensor" Zeile eintrage nichts mehr Installieren im ESPHome und es erscheinen Fehler im ESPHome.
Egal was ich mache, es geht nichts. Und woher weiß der MQTT welchen Sensor er nehmen soll wenn ich im MQTT einen Wert schreiben lasse? In deinem Beispiel ist z.b. TemperaturInnen, wo steht der Adapter wo der Wert abgelesen wird? Man muss doch die Quelle irgendwie angeben?
Wenn ich deine Konfig übernehmen würde, bekäme ich diese niemals mit "Install" zum laufen, da es 10000 Fehlermeldungen gibt. Ein Anhaltspunkt okay, mehr leider nicht da einiges im ioBroker bei mir wohl fehlt damit es ansatzweise läuft.
Also ich check das "ganze" noch gar nicht. Leider. Komme nicht weiter, sobald es um einen Adapter geht, geht nichts mehr.
mfg
-
@kredar Hi, in deinem Beitrag stecken gerade verschiedene Fragestellungen. Hier einmal mein Stand von gestern abend. Ich fange gerade auch erst mit dem Thema an, so dass einige Sachen vielleicht noch nicht ganz optimal sind.
a) Fehlermeldung beim programmieren des ESP
Deine yaml Datei ist vermutlich umfangreicher, als was du in den Codetags gezeigt hast. Poste doch mal dein vollständige yaml Datei.b) Blockly / Javascript
Wenn du Skripte mit Blockly oder Javascript erstellen möchtest, musst du den Adapter "Scriptausführung" installieren
Das in den Beiträgen oben genannte Skript brauchst du, damit du im mqtt.0.* Pfad deine Datenpunkte anlegen / aktualisieren kannst die irgenwo anders unter den Objekten liegt
Ablauf wäre dann:
- Temperatur aktualisiert sich im Datenpunkt hm-rpc.0.000E58A9A97423.1.ACTUAL_TEMPERATURE_STATUS auf 40
- Skript erkennt diese Aktualsieriung und holt sich von hm-rpc.0.000E58A9A97423.1.ACTUAL_TEMPERATURE_STATUS den Wert und schreibt diesen Wert in den Datenpunkt mqtt.0.iobprovides.TempAussen
Auf diese Weise kannst du von deinen Unterschiedlichen Adaptern / Datenpunkte Daten bereitstellen, welche dann per MQTT weiter übertragen werden können
c) Datenübertragung per MQTT von ioBroker zum ESP
Mein mqtt Adapter ist wie folgt konfiguriert:
Bei den Objekten vom mqtt hab ich mir Testweise einfach einen Datenpunkt angelegt
In meiner yaml Datei steht für mqtt folgendes
# Example configuration entry web_server: port: 80 auth: username: admin password: admin mqtt: broker: 192.168.178.54 #username: MQTT #password: DeinPasswort text_sensor: - platform: mqtt_subscribe name: "Temperatur aussen" id: TempAussen topic: iobprovides/TempAussen
Über den topic Pfad sagst du dem ESP, welchen Werte er von mqtt einlesen soll.
Ich hab mir den web_server mit dazu geladen, so dass ich eine einfache Möglichkeit habe um zu sehen, welche Werte auf dem ESP ankommen. Hierzu einfach die IP des ESP im Browser eingeben.
Mein aktuelles yaml file sieht so aus
-
Vielen Dank für die Hilfe.
So den MQTT habe ich wieder umgestellt auf Server/Broker.
Den Javascript-Adapter habe ich Installiert (neues Menü "Scripte") ist nun da links am Rand.
Meine YAML zur Zeit:
# ESP32 Configuration esphome: name: wohnzimmer platform: ESP32 board: esp32dev # Enable logging logger: level: DEBUG # Enable Home Assistant API api: ota: password: "******" # Wifi Configuration wifi: ssid: "******" password: "*******" # MQTT Configuration mqtt: broker: 192.168.x.x username: "*******" password: "********" # Fonts need to exist in /opt/iobroker/iobroker-data/esphome.0/ font: - file: "arial.ttf" id: arial size: 60 #Font Color color: - id: text_red red: 100% - id: text_white white: 50% # Timeserver Configuration time: - platform: sntp id: current_time timezone: Europe/Berlin servers : ptbtime1.ptb.de # Configuration IOs spi: clk_pin: 13 mosi_pin: 14 display: - platform: waveshare_epaper cs_pin: 15 dc_pin: 27 busy_pin: 25 reset_pin: 26 model: 7.50inV2 update_interval: 120s text_sensor: - platform: mqtt_subscribe name: "Temperaturaussen" id: Temperaturaussen topic: Temperaturen/TemperaturAussen/Aussen # Display Print lambda: |- int x, y; ESP_LOGI("display", "Updating.."); it.print(26, 49, id(Arial), "TemperaturAussen"); it.printf(374, 38, id(Arial), TextAlign::TOP_RIGHT, "%s", id(Temperaturaussen).state.c_str());
Dazu im MQTT:
Es kommt im ESPHome Adapter im ioBroker immer noch der Fehler den ich schon oben per Bild eingefügt habe (Invalid YAML Syntax) bei den Zeilen mit dem "if.print" damit es am Display angezeigt werden kann. Die Zeilen 63 bis 67 sind wohl okay, da bekomme ich keine Fehlermeldung.
mfg
-
@kredar Ich habe noch kein Display im Einsatz, daher kann ich gerade nur Vermutungen anstellen.
Ändere doch mal in deinem yaml die Reihenfolge wie folgt ab.
Laut der Doku https://esphome.io/components/display/index.html gehört daslambda
zum BereichDisplay:
. Ich weiß noch nicht wie diese Abschnitte / Sektionen bei esphome richtig heißen.
Ich vermute er stört sich daran, dass du in deiner aktuellen Struktur dastext_sensor:
vor daslambda
geschoben hast.text_sensor: - platform: mqtt_subscribe name: "Temperaturaussen" id: Temperaturaussen topic: Temperaturen/TemperaturAussen/Aussen display: - platform: waveshare_epaper cs_pin: 15 dc_pin: 27 busy_pin: 25 reset_pin: 26 model: 7.50inV2 update_interval: 120s # Display Print lambda: |- int x, y; ESP_LOGI("display", "Updating.."); it.print(26, 49, id(Arial), "TemperaturAussen"); it.printf(374, 38, id(Arial), TextAlign::TOP_RIGHT, "%s", id(Temperaturaussen).state.c_str());
-
Ändert leider nichts. Check ich nicht, habe deine Konfig oben kopiert und eingefügt. Ohne Besserung. Selbe Fehlermeldung.
mfg
-
@kredar Hast du mal versucht aus der Doku https://esphome.io/components/display/index.html
das Beispiel umzusetzen, um zu schauen ob das funktioniert? Den Bereich mit den Punkten musst du entsprechend mit deinen Displayparametern ersetzen.display: - platform: ... # ... lambda: |- // Write your display rendering code here // For example, draw a line from [x=0,y=0] to [x=50,y=50] it.line(0, 0, 50, 50);
-
@kredar lass mal den „ESP_LOGI“ Teil weg (finde jetzt auch keine Info dazu was das bewirkt)
Und wenn du Fontfarben verwendest, kann es sein das du dad bei „print“ auch mitangeben musst.
-
@feuersturm sagte in [Gelöst] Wetter Display:
@kredar Hast du mal versucht aus der Doku https://esphome.io/components/display/index.html
das Beispiel umzusetzen, um zu schauen ob das funktioniert? Den Bereich mit den Punkten musst du entsprechend mit deinen Displayparametern ersetzen.display: - platform: ... # ... lambda: |- // Write your display rendering code here // For example, draw a line from [x=0,y=0] to [x=50,y=50] it.line(0, 0, 50, 50);
Der Code geht einwandfrei. Sobald ein Adapter im Lambda ist kommt die Fehlermeldung.
Auch wenn ich das "ESP_LOGI" weglasse bleibt der Fehler bestehen.
EDIT: Jetzt geht es nur kommt nicht der Wert von 40 sondern "TemperaturAussen" auf dem Display :). Hmm.
text_sensor: - platform: mqtt_subscribe name: "Temperaturaussen" id: Temperaturaussen topic: Temperaturen/TemperaturAussen/Aussen # Display Print lambda: |- it.print(16, 49, id(arial), "TemperaturAussen"); it.printf(20, 38, id(arial), "%s", id(Temperaturaussen).state.c_str());
Klappt, aber ohne den Wert....
mfg
-
@kredar Du kannst ja mal den Webserver aktivieren und dann die IP vom ESP im Browser eingeben. Dort siehst du dann ja, welchen Wert Temperaturaussen hat. Es klingt ja danach, dass dort nichts empfangen wurde bisher.
-
Was mich irritiert in den Logs:
[23:23:09][I][mqtt:172]: Connecting to MQTT...
[23:23:09][W][mqtt:257]: MQTT Disconnected: TCP disconnected.
[23:23:14][I][mqtt:172]: Connecting to MQTT...
[23:23:14][W][mqtt:257]: MQTT Disconnected: TCP disconnected.
[23:23:19][I][mqtt:172]: Connecting to MQTT...
[23:23:19][W][mqtt:257]: MQTT Disconnected: TCP disconnected.
[23:23:24][I][mqtt:172]: Connecting to MQTT...
[23:23:24][W][mqtt:257]: MQTT Disconnected: TCP disconnected.
[23:23:29][I][mqtt:172]: Connecting to MQTT...
[23:23:29][W][mqtt:257]: MQTT Disconnected: TCP disconnected.
[23:23:34][I][mqtt:172]: Connecting to MQTT...
[23:23:34][W][mqtt:257]: MQTT Disconnected: TCP disconnected.
[23:23:39][I][mqtt:172]: Connecting to MQTT...
[23:23:39][W][mqtt:257]: MQTT Disconnected: TCP disconnected.
[23:23:44][I][mqtt:172]: Connecting to MQTT...
[23:23:44][W][mqtt:257]: MQTT Disconnected: TCP disconnected.
[23:23:49][I][mqtt:172]: Connecting to MQTT...
[23:23:49][W][mqtt:257]: MQTT Disconnected: TCP disconnected.
[23:23:54][I][mqtt:172]: Connecting to MQTT...
[23:23:54][W][mqtt:257]: MQTT Disconnected: TCP disconnected.Komisch habe aber alles korrekt angegeben. Finde irgendwie keinen Fehler in der YAML. MQTT ist auch alles "grün" im Adapter.
mfg
-
@kredar Ich glaube ich hatte gestern einmal diese Checkbox aktiviert als ich den Wert geändert habe
Bei allen weiteren Änderungen hab ich die Checkbox nicht aktiv und ich sehe bei mir sofort die Änderung auch auf der Webseite vom ESP. -
Ne da kommt kein Wert vom ioBroker auf das Display. Bestätigt habe ich den Wert nun.
[23:23:34][I][mqtt:172]: Connecting to MQTT...
[23:23:34][W][mqtt:257]: MQTT Disconnected: TCP disconnected.
[23:23:39][I][mqtt:172]: Connecting to MQTT...
[23:23:39][W][mqtt:257]: MQTT Disconnected: TCP disconnected.
[23:23:44][I][mqtt:172]: Connecting to MQTT...
[23:23:44][W][mqtt:257]: MQTT Disconnected: TCP disconnected.
[23:23:49][I][mqtt:172]: Connecting to MQTT...
[23:23:49][W][mqtt:257]: MQTT Disconnected: TCP disconnected.
[23:23:54][I][mqtt:172]: Connecting to MQTT...
[23:23:54][W][mqtt:257]: MQTT Disconnected: TCP disconnected.Das irritiert mich leicht. Müsste das nicht nur 1x kommen und ohne disconnected? Ich mein der ESP32 ist zwar im WLan aber kann sich mit dem MQTT nicht verbinden. Finde nur den Fehler noch nicht.....
mfg
-
@kredar Hast du dein Problem lösen können?
Mein ESP32 von waveshare + das Display sind jetzt auch angekommen und ich nehme es gerade in Betrieb. -
Nein, irgendwie nicht. Habe auch wenig Zeit im Moment. Aber wenn ich die Log sehe (siehe oben), dann bekomme ich aus irgend einem Grund keine Verbindung zum ioBroker bzw. MQTT dort. Obwohl ich alles nach bestem gewissen eingestellt habe. Keine Ahnung, ich nehme an das du solch eine Meldung nicht bekommst?
mfg
-
@kredar Die Meldungen die du siehst hab ich bei mir nicht. Ich kann über MQTT Daten an den ESP übertragen und auf dem Display anzeigen lassen. Können ja mal in einer ruhigen Minute deine und meine Einstellungen abgleichen. Am besten dann über den Discord Chat.
-
Gerne, ich habe keine Ahnung an was es "hängt". Schreib mir hier Unterhaltung Nachmittag wenn du mal Online bist.
MQTT habe ich im Tasmota Adapter auf einem anderen Port als den MQTT-Adapter. Sonst hakt es da, aber das kann es auch nicht sein. Leicht Ratlos. Mal sehen später.
mfg