Hallo,
bin mittlerweile so weit, dass bei mir ein DHT22 an ner tasmotageflashten S20 hängt und auf deren Woboberfläche sinnvolle Werte angezeigt werden.
Leider kann ich keine Quelle im Netz finden, die mir erklärt, wie ich die Werte für Temperatur und Luftfeuchtigkeit nach FHEM bekomme.
Per MQTT-Broker kann ich meine S20 bereits relaismäßig schalten.
Wie muss es denn generell laufen? Ist es so, dass seitens FHEM permanent nach den Werten für Temperatur und Luftfeuchtigkeit seitens der S20 "nachgefragt" werden muss (Polling), oder sollte die S20 dies per "Tasmota-Telemetry period" automatisch mitteilen?
Wer kann helfen?
Gruß Chris
Edit: Ich war wohl nur etwas zu ungeduldig. Nun kam "was rein": {"Time":"2018-07-05T21:56:16","AM2301":{"Temperature":24.3,"Humidity":62.6},"TempUnit":"C"}. Wie "zerlege" ich denn den Spass, so dass was Sinnvolles draus werden kann?
Mach mal autoSubscribeReadings auf 1. und dann 5 Minuten warten.
Gesendet von iPhone mit Tapatalk Pro
Zitat von: chq am 05 Juli 2018, 21:58:56
Edit: Ich war wohl nur etwas zu ungeduldig. Nun kam "was rein": {"Time":"2018-07-05T21:56:16","AM2301":{"Temperature":24.3,"Humidity":62.6},"TempUnit":"C"}. Wie "zerlege" ich denn den Spass, so dass was Sinnvolles draus werden kann?
Hallo Chris,
dazu ist expandJSON geeignet. Beispiel:
defmod sonoff_ej expandJSON sonoff.*:(SENSOR|STATE|RESULT):.{.*}
Gruss Helmut
Hallo,
danke für den Hinweis bzgl. des/der/dem expandJSON. Leider will es noch immer nicht so, wie ich will.
Wovon ich mittlerweile ausgehe:
1. Es ist tendenziell richtig, sich in einem in der Weboberfläche von Tasmota zu def. Intervall die Sensorwerte schicken zu lassen. Dies funktioniert soweit.
2. CPAN ist richtig installiert.
Bzgl. 2. bin ich folgendermaßen vorgegangen:
perl -v
sudo cpan install Net::MQTT:Simple
sudo cpan install Net::MQTT:Constants
sudo perl -MCPAN -e shell
cpan[1]> install CPAN
cpan[2]> reload cpan
Ob ich mir die letzten drei Zeilen hätte sparen können, kann ich mangels Fachwissen nicht sagen.
Hier ein list meines Tasmota-Devices:
Internals:
IODev mqtt
NAME Zahnbuerste
NR 21
STATE OFF
TYPE MQTT_DEVICE
qos *:0
retain *:1
READINGS:
2018-07-06 12:35:57 SENSOR {"Time":"2018-07-06T12:35:55","AM2301":{"Temperature":23.2,"Humidity":68.6},"TempUnit":"C"}
2018-07-06 19:35:40 Sensor {"Time":"2018-07-06T19:35:38","AM2301":{"Temperature":24.1,"Humidity":63.4},"TempUnit":"C"}
2018-07-06 18:07:30 state OFF
2018-07-06 19:35:40 transmission-state incoming publish received
message_ids:
publishSets:
:
topic cmnd/Zahnbuerste/power
values:
ON
OFF
sets:
OFF
ON
subscribe:
tele/Zahnbuerste/SENSOR
stat/Zahnbuerste/POWER
subscribeExpr:
^tele\/Zahnbuerste\/SENSOR$
^stat\/Zahnbuerste\/POWER$
subscribeQos:
stat/Zahnbuerste/POWER 0
tele/Zahnbuerste/SENSOR 0
subscribeReadings:
stat/Zahnbuerste/POWER:
cmd
name state
tele/Zahnbuerste/SENSOR:
cmd
name Sensor
Attributes:
IODev mqtt
devStateIcon OFF:FS20.off:ON ON:FS20.on:OFF
event-on-change-reading .*
publishSet ON OFF cmnd/Zahnbuerste/power
qos at-most-once
retain 1
room Bad
stateFormat state
subscribeReading_Sensor tele/Zahnbuerste/SENSOR
subscribeReading_state stat/Zahnbuerste/POWER
webCmd ON:OFF
Ich gehe davon aus, dass das Reading "SENSOR" noch aus vergangenen (und mittlerweile unerheblichen) Tests stammt.
Bzgl. des/der/dem expandJSON bin ich gedanklich so weit:
defmod ZahnbuersteJSON expandJSON Zahnbuerste:Sensor
Dass das (noch) nicht vollständig ist weiss ich, kann mir den Rest jedoch leider auch unter Zuhilfenahme der Commandref nicht wirklich herleiten.
|, /, ., :, * und mangelndes Verständnis bzgl. Regex verwirren doch sehr. :P
Gruß Chris
ZitatIch gehe davon aus, dass das Reading "SENSOR" noch aus vergangenen
Dann lösche es einfach:
deletereading Zahnbuerste SENSOR
Zitatmangelndes Verständnis bzgl. Regex verwirren doch sehr
Daran solltest Du arbeiten. Ohne regex zu verstehen oder anwenden zu können wirst Du Dich mit FHEM sehr schwer tun.
defmod ZahnbuersteJSON expandJSON Zahnbuerste:Sensor:.*
Hallo,
dank Dir für die Infos.
Nach Eingabe von..
defmod ZahnbuersteJSON expandJSON Zahnbuerste:Sensor:.*
..müsste das Device ZahnbuersteJSON nun theoretisch Readings erzeugen, sobald ein Sensor-Reading von Zahnbuerste "reinkommt", oder?
Dies ist leider nicht der Fall.
Gruß Chris
Edit: Ich glaub ich hab's. Die "fehlenden" Readings entstehen nicht im Device ZahnbuersteJSON, sondern im Device Zahnbuerste. Fett! :)