Tasmota Sensordaten an OH3 senden/auslesen

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

aolbernd
Beiträge: 19
Registriert: 7. Jan 2021 21:04

Re: Tasmota Sensordaten an OH3 senden/auslesen

Beitrag von aolbernd »

Ist JSONPATH Transformation Service ein addon?

Stachi
Beiträge: 77
Registriert: 8. Dez 2020 19:29

Re: Tasmota Sensordaten an OH3 senden/auslesen

Beitrag von Stachi »

Jep, findest du unter Transformations ;-)

aolbernd
Beiträge: 19
Registriert: 7. Jan 2021 21:04

Re: Tasmota Sensordaten an OH3 senden/auslesen

Beitrag von aolbernd »

Aha! Man muss nur an der richtigen Stelle suchen ;-)
Danke

Ich habe ein Generic MQTT Thing angelegt (Bridge Mqt Broker)
Als Channel habe ich bei state Topic "tele/Testsensor/SENSOR" eingetragen (siehe Anhang).
Anzeige ist NULL, also habe ich etwas falsch gemacht, oder aber es fehlt noch eine Eingabe. Am Kanal hängen 2 Temperatursensoren. Ich muss ja irgendwie den einzlnen Sensor abfragen, weiss aber nicht, wie und wo ich dies bei OH einstellen muss.
MQTT.FX liefert beim subscribe von tele/Testsensor/SENSOR:
{"Time":"2021-01-13T19:59:20","DS18B20-1":{"Id":"01204233A1AE","Temperature":23.4},"DS18B20-2":{"Id":"0120424FB577","Temperature":23.4},"TempUnit":"C"}
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Stachi
Beiträge: 77
Registriert: 8. Dez 2020 19:29

Re: Tasmota Sensordaten an OH3 senden/auslesen

Beitrag von Stachi »

Soweit, so gut.

Dann nochmal auf "Show Advanced" klicken und bei "Incoming Transformation Path"

Code: Alles auswählen

JSONPATH:$.DS18B20-1
eintragen.

Das gleiche dann als neues Thing für den 2. Sensor und max. 5 min warten (so lange dauerts, bis wieder ein tele/xxx/SENSOR gesendet wird, sagte der Udo1Toni... und Recht hat er damit auch noch :shock:

aolbernd
Beiträge: 19
Registriert: 7. Jan 2021 21:04

Re: Tasmota Sensordaten an OH3 senden/auslesen

Beitrag von aolbernd »

der 1. Sensor zeigt NULL an (auch nachdem Daten gesendet wurden)
Ich habe jetzt zum Test einen 2. Channel für den anderen Sensor erstellt.

Eingetragen bei "Incoming Value Transformations" (Incoming Transformation Path gibt es nicht)
Channel type "Number"


Hier der Code zum Item:
UID: mqtt:topic:8d8a4a54f4
label: Generic MQTT Thing
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:broker
channels:
- id: temp
channelTypeUID: mqtt:number
label: Temperatur
description: ""
configuration:
stateTopic: tele/Testsensor/SENSOR
transformationPattern: JSONPATH:$.DS18B20-1
- id: temoeratursensor2
channelTypeUID: mqtt:number
label: Temperatur 2
description: ""
configuration:
stateTopic: tele/Testsensor/SENSOR
transformationPattern: JSONPATH:$.DS18B20-2
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: Tasmota Sensordaten an OH3 senden/auslesen

Beitrag von udo1toni »

Du kannst auch mit nur einem Channel arbeiten (hab ich gestern erst rausgefunden).

Code: Alles auswählen

UID: mqtt:topic:8d8a4a54f4
label: Generic MQTT Thing
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:broker
channels:
- id: temp
  channelTypeUID: mqtt:string
  label: Sensordaten
  description: ""
  configuration:
  stateTopic: tele/Testsensor/SENSOR
Das heißt, Du legst erst mal den Channel als String Channel an! Dieser Channel hält das gesamte JSON Objekt.
Nun verlinkst Du zwei Number Items, wobei Du jeweils in den Metadaten JSONPATH auswählst und dort nun den korrekten JSONPATH einträgst:
$.DS18B20-1.Temperature bzw. $.DS18B20-2.Temperature
Du kannst auch noch ein drittes Item verlinken (Typ String) und nichts in den Metadaten definieren. damit kannst Du dann prima sehen, ob im JSON die Daten enthalten sind. Es könnte nämlich durchaus passieren, dass das Topic zwischendurch nichts mehr liefert - dann müsste man es doch anders bauen.
openHAB2.5.10 in einem Debian-Container (Proxmox, LXC)

aolbernd
Beiträge: 19
Registriert: 7. Jan 2021 21:04

Re: Tasmota Sensordaten an OH3 senden/auslesen

Beitrag von aolbernd »

"Das heißt, Du legst erst mal den Channel als String Channel an! Dieser Channel hält das gesamte JSON Objekt.
Nun verlinkst Du zwei Number Items, wobei Du jeweils in den Metadaten JSONPATH auswählst und dort nun den korrekten JSONPATH einträgst:
$.DS18B20-1.Temperature bzw. $.DS18B20-2.Temperature"

So wäre quasi der übesichtliche Aufbau (was von den Machern mit dieser Funktion/Möglichkeit auch so beabsichtigt war): Channel mit allen Sensoren des Items als einzelner String und die jeweiligen Werte dann nur über die Links abgefragt.
Übersichtlicher wäre es auf jeden Fall.

Ich hänge leider immer noch daran, die Temperaturwerte irgendwie per MQTT ausgelesen zu beokommen. Die Lösung oben wäre dann Feintuning, well alles läuft :-)

Leider konnte ich gestern nicht mehr testen, weil mein MQTT Broker nicht mehr online war. Ich hatte aus Versehen den Stecker des Pi gezogen und nach dem Neustart war der Broker Offline (Connection Error). Ich musst mosquitto per Putty neu installieren und dann die Bridge neu einrichten, damit es wieder läuft. Das ist mir jetzt schon zum zweiten Mal passiert - scheint ein Bug zu sein.

Heute Abend werde ich mich wieder mit dem Thema beschäftigen und versuchen, die Sensordaten per mqtt zu integrieren...

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

Re: Tasmota Sensordaten an OH3 senden/auslesen

Beitrag von udo1toni »

Ein Zustand, dass mosquitto neu installiert werden muss (nur durch einen „Stromausfall“) ist eher unwahrscheinlich. Da ist dann vermutlich eher das Problem, dass Du nicht weißt, wie Du den Fehler eingrenzen musst.

Ganz grob: Es kann sein, dass der Dienst nicht startet. Du prüfst also die Ausgabe von

Code: Alles auswählen

systemctl status mosquitto.service
wenn dort einfach inactive (dead) steht, ist es immer eine Versuch wert, den Dienst manuell zu starten, mit

Code: Alles auswählen

sudo systemctl start mosquitto.service
Man bemerke den feinen Unterschied: den Status darf auch ein normaler Anwender abfragen (ohne sudo).
Es kann auch sein, dass da ein failed steht (meinst mit dem Hinweis, das journalctl -xe weitere Auskunft geben kann). Da muss dann auf jeden Fall noch ein sudo davor, also

Code: Alles auswählen

sudo journalctl -xe
womit dann die letzten Fehler gezeigt werden. Manchmal wird man dadurch nicht schlauer, dann sucht man mittels

Code: Alles auswählen

sudo journalctl -d mosquitto
nach dem Dienst (ich bin mir gerade nicht sicher ob des -d, kann auch ein anderer Buchstabe sein... journalctl -? gibt Auskunft)

Ein typischer Grund, warum mosquitto den Start verweigert (der auch zum Stromausfall passen würde) ist, wenn der Cache korrupt ist. Mosquitto hat eine eigene „Datenbank“, in der z.B. die retention gesichert wird. Wenn diese Datei kaputt ist, kann das zum Absturz führen. Die Datei wird aber nicht unbedingt gebraucht, nach einem Neu Aufsetzen ist sie leer. Es ist also kein Problem, die Datei händisch zu löschen, denn mosquitto wird sie beim Start neu anlegen.


Gesendet von iPad mit Tapatalk
openHAB2.5.10 in einem Debian-Container (Proxmox, LXC)

Stachi
Beiträge: 77
Registriert: 8. Dez 2020 19:29

Re: Tasmota Sensordaten an OH3 senden/auslesen

Beitrag von Stachi »

Oder der Mosquitto-Server ist nicht auf Autostart nach Raspi-Boot eingestellt ;-)

Code: Alles auswählen

sudo systemctl enable mosquitto.service
?

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

Re: Tasmota Sensordaten an OH3 senden/auslesen

Beitrag von udo1toni »

Ja, das ist eine Möglichkeit. Aber das sähe man dann ja, wenn man mittels

Code: Alles auswählen

systemctl status mosquitto.service
den Zustand geprüft hat.
openHAB2.5.10 in einem Debian-Container (Proxmox, LXC)

Antworten