openhab 3 Regel zum Daten senden an Wemos D1 Mini mit i2c Display 20x4

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Harka
Beiträge: 489
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: openhab 3 Regel zum Daten senden an Wemos D1 Mini mit i2c Display 20x4

Beitrag von Harka »

Moin,
ich habe zwar kein Display bin aber von Natur aus neugierig und habe mich daher gerade mit dem Thema beschäftigt.
Ich verstehe die offene Aufgabe so: Wie bekomme ich beliebige Infos am Display angezeigt? Fehlt dafür nicht nur das passende mqtt-cmd?
Wenn Du mit dem MQTT-Explorer an cmnd/Tasmota2/DisplayText ein raw-Wert [l3c1]Hallo Welt schickst, passiert da was?
Wenn ja - sollte der Rest ein Kinderspiel sein.

Locke
Beiträge: 251
Registriert: 14. Apr 2020 11:35
Answers: 3
Wohnort: bei Hamburg

Re: openhab 3 Regel zum Daten senden an Wemos D1 Mini mit i2c Display 20x4

Beitrag von Locke »

udo1toni hat geschrieben: 19. Aug 2023 09:05 Die erste Logzeile aus openHAB enthält ja die komplette Tasmota Rule
moin Udo,
die Tasmota rule ist nur auf dem Wemos, das finde ich ja auch merkwürdig das sie mir kpl. im Log angezeigt.
Im Log wird ein Teil ausgergraut angezeigt und der Rest normal.

2023-08-19 10:13:33.543 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Display20x4_Text' changed from {"Rule3":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":134,"Free":377,"Rules":"ON mqtt#connected DO Subscribe DruckerProgress, openHAB/message, text ENDON ON Event#DruckerProgress DO DisplayText[l3c1]%value% ENDON"}} to {"DisplayText":"[l1c1]Temp 26.3~dfC"}

Das Topic openHAB/message taucht im MQTT FX und MQTT Explorer nicht auf.
wenn ich es unter publish angebe und {"text":"Hallo Welt!"} sende kommt es im Display auf dem Wemos in Zeile 3 wie es soll.

Code: Alles auswählen

UID: mqtt:topic:Broker_163:Drucker_Fortschritt
label: 3D Drucker Fortschritt
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:Broker_163
channels:
  - id: Drucker_Fortschritt
    channelTypeUID: mqtt:number
    label: Drucker Fortschritt
    description: ""
    configuration:
      stateTopic: octoPrint/progress/printing
      transformationPattern: JSONPATH:$.progress
  - id: Drucker_Message
    channelTypeUID: mqtt:string
    label: Nachricht
    description: null
    configuration:
      formatBeforePublish: "{text:%s}"
      commandTopic: openHAB/message
ich glaube ich werde den Wemos mal neu Flashen und es nochmal von vorn beginnen, es muß doch möglich sein das es mir angezeigt wird.
Mit Der Temp und Feuchte geht es ja auch.
thnx
____Sven_________________________________________________________________________________________
System 1, Raspberry Pi 4, 4GB RAM, openHAB 2.5.10 / System 2, Raspberry Pi 4, 2GB RAM, openHAB 3.3.0 /
System 3, Raspberry Pi 4, 2GB RAM, openHAB 4.0.2 / System 4 (Testsystem), Raspberry Pi 4, 2GB RAM, openHAB 4.1.1 / System 5, (als NAS) Raspberry PI 4, 4 GB RAM, openmediavault 6.8.0-1 (Shaitan)

Locke
Beiträge: 251
Registriert: 14. Apr 2020 11:35
Answers: 3
Wohnort: bei Hamburg

Re: openhab 3 Regel zum Daten senden an Wemos D1 Mini mit i2c Display 20x4

Beitrag von Locke »

Harka hat geschrieben: 19. Aug 2023 10:25 Moin,
ich habe zwar kein Display bin aber von Natur aus neugierig und habe mich daher gerade mit dem Thema beschäftigt.
Ich verstehe die offene Aufgabe so: Wie bekomme ich beliebige Infos am Display angezeigt? Fehlt dafür nicht nur das passende mqtt-cmd?
Wenn Du mit dem MQTT-Explorer an cmnd/Tasmota2/DisplayText ein raw-Wert [l3c1]Hallo Welt schickst, passiert da was?
Hi Harka,
ja der Text kommt am Display an
thnx
____Sven_________________________________________________________________________________________
System 1, Raspberry Pi 4, 4GB RAM, openHAB 2.5.10 / System 2, Raspberry Pi 4, 2GB RAM, openHAB 3.3.0 /
System 3, Raspberry Pi 4, 2GB RAM, openHAB 4.0.2 / System 4 (Testsystem), Raspberry Pi 4, 2GB RAM, openHAB 4.1.1 / System 5, (als NAS) Raspberry PI 4, 4 GB RAM, openmediavault 6.8.0-1 (Shaitan)

Harka
Beiträge: 489
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: openhab 3 Regel zum Daten senden an Wemos D1 Mini mit i2c Display 20x4

Beitrag von Harka »

gut.
Trag mal im Thing/Channels/Display20x4_Text mit Typ String unter "MQTT Command Topic" das cmnd/Tasmota2/DisplayText ein. Dann sollte Version 1 funktionieren. Alternativ (Version 2) kannst Du auch unter Einstellungen/Add-ons/Automation/Block Libraries "MQTT Actions" installieren und Deinen Befehl direkt schicken.
Das [z] löscht das Display während ich beim 2. Beispiel Leerzeichen angehängt habe um unterschiedlich lange Ausgaben zu kompensieren. Das große Textfeld findest Du an 2. Stelle unter Text
ForumDisplay.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Locke
Beiträge: 251
Registriert: 14. Apr 2020 11:35
Answers: 3
Wohnort: bei Hamburg

Re: openhab 3 Regel zum Daten senden an Wemos D1 Mini mit i2c Display 20x4

Beitrag von Locke »

wo hast Du das "Create Text with" her ?
ich finde es nicht.
Gehe jetzt erstmal einkaufen, sonst wird es nichts wenn weiter hier probiere. Nach dem Einkufen geht es weiter.

Danke für Deine Unterstützung
thnx
____Sven_________________________________________________________________________________________
System 1, Raspberry Pi 4, 4GB RAM, openHAB 2.5.10 / System 2, Raspberry Pi 4, 2GB RAM, openHAB 3.3.0 /
System 3, Raspberry Pi 4, 2GB RAM, openHAB 4.0.2 / System 4 (Testsystem), Raspberry Pi 4, 2GB RAM, openHAB 4.1.1 / System 5, (als NAS) Raspberry PI 4, 4 GB RAM, openmediavault 6.8.0-1 (Shaitan)

Harka
Beiträge: 489
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: openhab 3 Regel zum Daten senden an Wemos D1 Mini mit i2c Display 20x4

Beitrag von Harka »

Unter Text an 2.Stelle, ist im Rohzustand nur mit dem Zahnrad bekleidet. Habe es extra noch im Kleingedruckten erwähnt weil ich zu Anfang auch suchen musste 8-)

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: openhab 3 Regel zum Daten senden an Wemos D1 Mini mit i2c Display 20x4

Beitrag von udo1toni »

STOPP!
1. Wenn der Text mit dem MQTT Publish korrekt auf dem Display angezeigt wird, ist der Tasmota Teil korrekt. Ich kann icht nachvollziehen, warum Du glaubst, hier noch mal flashen zu müssen, wo es doch schon hervorragend funktioniert!

2. Schau bitte mal GENAU hin, was in formatBeforePublish steht. Das ist NICHT das, was ich angegeben habe. Ich meine, ja, ich mache ständig irgendwelche Fehler, aber hier einfach etwas komplett anderes zu schreiben und dann zu sagen "geht nicht"... ?!?

formatBeforePublish muss so aussehen:

Code: Alles auswählen

formatBeforePublish: {"text":%s}
das hier ist falsch:

Code: Alles auswählen

formatBeforePublish: "{text:%s}"
Falls das Format von openHAB unerwarteter Weise umgebaut werden sollte, musst Du die Anführungszeichen notfalls escapen:

Code: Alles auswählen

formatBeforePublish: "{\"text\":%s}"
Aber eigentlich sollte das nicht nötig sein.

Falls es nicht funktioniert, wäre die Frage, was publiziert wird.

Und nur zur Klarstellung: Der String Channel mqtt:topic:Broker_163:Drucker_Fortschritt:Drucker_Message muss natürlich mit einem String Item gekoppelt werden. Um den Text auf das Display zu bringen, musst Du dasStringItem.sendCommand("Text") verwenden, wobei dasStringItem das Item ist, welches mit dm Channel verlinkt ist.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Locke
Beiträge: 251
Registriert: 14. Apr 2020 11:35
Answers: 3
Wohnort: bei Hamburg

Re: openhab 3 Regel zum Daten senden an Wemos D1 Mini mit i2c Display 20x4

Beitrag von Locke »

Hi Udo,
sorry war ein Schreibfehler von, wenn Du weiter oben schaust hatte ich es richtig und funktioniert nicht.
Hatte es per Hand nochmal reingeschrieben, falls beim kopieren etwas nicht richtig war, dabei nicht richtig gelesen. :roll:
Locke hat geschrieben: 18. Aug 2023 23:29

Code: Alles auswählen

      commandTopic: openHAB/message
      formatBeforePublish: {"text":%s}
      
     
     
nach dem speichern steht es so im code:
      
      formatBeforePublish: {"text":%s}
      commandTopic: openHAB/message
thnx
____Sven_________________________________________________________________________________________
System 1, Raspberry Pi 4, 4GB RAM, openHAB 2.5.10 / System 2, Raspberry Pi 4, 2GB RAM, openHAB 3.3.0 /
System 3, Raspberry Pi 4, 2GB RAM, openHAB 4.0.2 / System 4 (Testsystem), Raspberry Pi 4, 2GB RAM, openHAB 4.1.1 / System 5, (als NAS) Raspberry PI 4, 4 GB RAM, openmediavault 6.8.0-1 (Shaitan)

Locke
Beiträge: 251
Registriert: 14. Apr 2020 11:35
Answers: 3
Wohnort: bei Hamburg

Re: openhab 3 Regel zum Daten senden an Wemos D1 Mini mit i2c Display 20x4

Beitrag von Locke »

udo1toni hat geschrieben: 19. Aug 2023 13:36 STOPP!
ich kopiere es rein und speicher es so wie es dort steht

Code: Alles auswählen

formatBeforePublish: {"text":%s}

Code: Alles auswählen

UID: mqtt:topic:Broker_163:Drucker_Fortschritt
label: 3D Drucker Fortschritt
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:Broker_163
channels:
  - id: Drucker_Fortschritt
    channelTypeUID: mqtt:number
    label: Drucker Fortschritt
    description: ""
    configuration:
      stateTopic: octoPrint/progress/printing
      transformationPattern: JSONPATH:$.progress
  - id: Drucker_Message
    channelTypeUID: mqtt:string
    label: Nachricht
    description: ""
    configuration:
      commandTopic: openHAB/message
      formatBeforePublish: {"text":%s}
nach dem speichern steht es wieder falsch im code

Code: Alles auswählen

UID: mqtt:topic:Broker_163:Drucker_Fortschritt
label: 3D Drucker Fortschritt
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:Broker_163
channels:
  - id: Drucker_Fortschritt
    channelTypeUID: mqtt:number
    label: Drucker Fortschritt
    description: ""
    configuration:
      stateTopic: octoPrint/progress/printing
      transformationPattern: JSONPATH:$.progress
  - id: Drucker_Message
    channelTypeUID: mqtt:string
    label: Nachricht
    description: null
    configuration:
      formatBeforePublish: "{text=%s}"
      commandTopic: openHAB/message
Habe es jetzt damit probiert

Code: Alles auswählen

formatBeforePublish: "{\"text\":%s}"
so ist es jetzt im Code nach dem speichern

Code: Alles auswählen

UID: mqtt:topic:Broker_163:Drucker_Fortschritt
label: 3D Drucker Fortschritt
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:Broker_163
channels:
  - id: Drucker_Fortschritt
    channelTypeUID: mqtt:number
    label: Drucker Fortschritt
    description: ""
    configuration:
      stateTopic: octoPrint/progress/printing
      transformationPattern: JSONPATH:$.progress
  - id: Drucker_Message
    channelTypeUID: mqtt:string
    label: Nachricht
    description: null
    configuration:
      formatBeforePublish: '{"text":%s}'
      commandTopic: openHAB/message
bin fast soweit das ich es aufgebe, openHab habe ich zwischendurch auch schon neu gestartet falls irgendwas hängt, keine Besserung.
thnx
____Sven_________________________________________________________________________________________
System 1, Raspberry Pi 4, 4GB RAM, openHAB 2.5.10 / System 2, Raspberry Pi 4, 2GB RAM, openHAB 3.3.0 /
System 3, Raspberry Pi 4, 2GB RAM, openHAB 4.0.2 / System 4 (Testsystem), Raspberry Pi 4, 2GB RAM, openHAB 4.1.1 / System 5, (als NAS) Raspberry PI 4, 4 GB RAM, openmediavault 6.8.0-1 (Shaitan)

Locke
Beiträge: 251
Registriert: 14. Apr 2020 11:35
Answers: 3
Wohnort: bei Hamburg

Re: openhab 3 Regel zum Daten senden an Wemos D1 Mini mit i2c Display 20x4

Beitrag von Locke »

udo1toni hat geschrieben: 19. Aug 2023 13:36 Und nur zur Klarstellung: Der String Channel mqtt:topic:Broker_163:Drucker_Fortschritt:Drucker_Message muss natürlich mit einem String Item gekoppelt werden. Um den Text auf das Display zu bringen, musst Du dasStringItem.sendCommand("Text") verwenden, wobei dasStringItem das Item ist, welches mit dm Channel verlinkt ist.
Kann Dir gerade nicht folgen,entweder habe ich jetzt ein Brett vorm Kopf und völlig durcheinander.
Ich habe den Channel
Nachricht
mqtt:topic:Broker_163:Drucker_Fortschritt:Drucker_Message angelegt und ein StringItem Nachricht verlinkt.
Wo soll ich dasStringItem.sendCommand("Text") angeben ?
Ich arbeite über UI und denke Du bist anders unterwegs.
Sorry wenn ich jetzt so blöde Fragen stelle.

Danke für Deine Geduld
thnx
____Sven_________________________________________________________________________________________
System 1, Raspberry Pi 4, 4GB RAM, openHAB 2.5.10 / System 2, Raspberry Pi 4, 2GB RAM, openHAB 3.3.0 /
System 3, Raspberry Pi 4, 2GB RAM, openHAB 4.0.2 / System 4 (Testsystem), Raspberry Pi 4, 2GB RAM, openHAB 4.1.1 / System 5, (als NAS) Raspberry PI 4, 4 GB RAM, openmediavault 6.8.0-1 (Shaitan)

Antworten