Ein String eines Readings von einem MQTT Sensor in einzelne Werte trennen, wie?

Begonnen von ClashC, 03 September 2018, 17:39:34

Vorheriges Thema - Nächstes Thema

ClashC

Hallo zusammen,

Ich bekomme in einem neu angelegten MQTT Device, welches von einem easyesp-Sensor Daten als Reading bekommt, folgenden String:
BMP280
{"idx":1,"RSSI":5,"nvalue":0,"svalue":"26.8;40.9;1;1010.0;0"}
2018-09-03 17:33:35


Wie kann ich hier die hinteren 4 Werte jeweils in eine Variable schreiben?
Oder in so etwas ändern:
Temperatur 26.8
Luftfeuchtigkeit 40.9
Luftdruck 1010.0

Viele Grüße

Vaddi

Hey, welche Werte brauchst du genau?
Wo sollen die Variablen/Readings gespeichert werden?

Gruß
Vaddi
fhem auf RPi 3
HM-MOD-RPI-PCB sowie 433mhz Sender
Mehrere HM und 433mhz Produkte

CoolTux

userreading mit folgender Regex

m#svalue":"(-?\d+?.\d);(\d+?.\d);\d;(\d+?.\d);.*#

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

alpha1974

Ist das kein Anwendungsfall des expandJSON-Moduls? Ein entsprechendes Device dröselt das Reading mit der Mqtt-Nachricht in deren Einzelteile auf und macht daraus einzelne Readings (mit div. Optionen).

Gesendet mit einem ortsungebundenen Telefonapparat via Tapatalk

FHEM/Z-Wave USB-Dongle + div. Devices

CoolTux

Zitat von: alpha1974 am 03 September 2018, 22:22:46
Ist das kein Anwendungsfall des expandJSON-Moduls? Ein entsprechendes Device dröselt das Reading mit der Mqtt-Nachricht in deren Einzelteile auf und macht daraus einzelne Readings (mit div. Optionen).

Gesendet mit einem ortsungebundenen Telefonapparat via Tapatalk

Ja wäre auch möglich.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Beta-User

Auch die MQTT2-Module entpacken den JSON. Wenn du also erst in das Thema einsteigst: ist nach meinem Eindruck viel einfacher!

Allerdings mußt du vermutlich trotzdem den hinteren Teil (26.8;40.9;1;1010.0;0) irgendwie aufteilen, das dürfte erst mal im Reading "svalue" landen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

CoolTux

Zitat von: Beta-User am 03 September 2018, 23:01:03
Auch die MQTT2-Module entpacken den JSON. Wenn du also erst in das Thema einsteigst: ist nach meinem Eindruck viel einfacher!

Allerdings mußt du vermutlich trotzdem den hinteren Teil (26.8;40.9;1;1010.0;0) irgendwie aufteilen, das dürfte erst mal im Reading "svalue" landen.

Aber das wäre ja schnell mit nem userReadings und split erledigt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ClashC

Hallo zusammen,

vielen Dank für die vielen Antworten. :)
Leider kann ich mit den kurzen Stichpunkten als Anfänger (gepostet im Anfängerforum) nicht so viel anfangen.
Es wäre für mich sinnvoller, wenn man das kurz Erläutern würde. z.B. userReading mit folgenden Redex habe ich einfach nicht hinbekommen.

Ich habe für mich nun folgende Lösung gefunden. Den MQTT Controller von domoticz nach OpenHab(er muß Username/Password unterstützen) geändert. Dieser sendet für jedes Value ein Reading.

Viele Grüße,
ClashC

Beta-User

Zitat von: ClashC am 04 September 2018, 12:20:21
Den MQTT Controller von domoticz nach OpenHab(er muß Username/Password unterstützen) geändert.
Für den Fall, dass sich das auf den Hinweis auf MQTT2 bezog: MQTT2_SERVER kann mit "allowed" mit "Username/Password" umgehen.

ZitatLeider kann ich mit den kurzen Stichpunkten als Anfänger (gepostet im Anfängerforum) nicht so viel anfangen.
Woher sollen wir wissen, auf welchem Kenntnisstand du bist? Darfst ja nachfragen, wenn die Stichworte allein nicht reichen...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

ClashC

Zitat von: Beta-User am 04 September 2018, 12:26:53
Für den Fall, dass sich das auf den Hinweis auf MQTT2 bezog: MQTT2_SERVER kann mit "allowed" mit "Username/Password" umgehen.
Ich meinte hier, die verfügbaren MQTT Controller, die Easyesp anbietet. Hier können nur domoticz und OpenHab mit Username/Password umgehen, PiDom-mqtt nicht.
Den MQTT2-Server muss ich mir mal anschauen... :)


Beta-User

Die Doku zu ESPEasy ist m.E. ein wenig verwirrend...

Wie dem auch sei:
ZitatOpenHAB does not have a build-in MQTT broker. You can install Mosquitto quite easily if you have OpenHAB running on a Raspberry-PI. The ESP communicates with a MQTT Broker on it's default port 1883, but of course that can be changed. The MQTT broker distributes all messages between connected nodes (systems that have a subscription to this broker).
Jedenfalls bei meinen (Nicht-ESPEasy-Devices), die seither mit Mosquitto gesprochen hatten, war es gar kein Problem, die auf die MQTT2-Module "umzumodeln" (bisher aber noch ohne User/password). Genauer gesagt mußte ich da _nichts_ an den Einstellungen auf den ESP's ändern, sondern nur den Mosquitto abschalten und den MQTT2-Server definieren (mit Port 1883) ::) .

Versuch's ggf. mal einfach mit diesem Controller-Typen als Einstellung ;) .

Viel Erfolg,

Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors