[gelöst]readingslist u. MQTT mit Teilen des Topic im Value

Begonnen von KölnSolar, 21 September 2019, 17:15:21

Vorheriges Thema - Nächstes Thema

KölnSolar

Hi,
so ganz hab ich die Möglichkeiten in readings list noch nicht verstanden. Ich versuche gerade aus dem topic den Value für das reading Lastcommand zu extrahieren. Kann ich nicht beliebigen Perlcode schreiben und dann den Hash retournieren ? So zB.
fhemuser_bumper_GLB19396e86:iot/p2p/[^/]+/helper1/bumper/helper1/4532b934-c2b1-4277-9fa6-e4b4851c2688/02uwxm/Uq7d/q/[^/]+/x:.* {my @a = ""; @a = split($TOPIC,"/");print $a[2]; return {"LastCommand" => $a[2] }}
Wenn nicht, andere Ideen ?

Schönes We
Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Beta-User

Hmm, "an sich" sollte das klappen.

Vielleicht hilft Ausweichen auf regex? Zwar nicht mit $TOPIC, aber mit $EVENT getestet (aus dem Tasmota-IR-Template; im Tastmota-RF sind noch mehr Varianten...):

attr DEVICE readingList \
  TELETOPIC/INFO.:.* { json2nameValue($EVENT) }\
  TELETOPIC/RESULT:.* { $EVENT =~ m,..IrReceived....Protocol...([A-Za-z0-9]+)...Bits..([\d]+)..Data...([A-Za-z0-9]+)..., ? {"$1_$2"=>$3} : json2nameValue($EVENT) }

Hier würde ja der Auszug "iot/p2p/([^/]+)/helper1/bumper" vermutlich ausreichen.

Ansonsten mal $TOPIC nicht via print ausgeben, sondern in ein Reading schreiben? (Zeile einfach doppeln, Beispiele wie oben)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

KölnSolar

Danke Dir. Hat insofern geholfen, dass sich meine Verunsicherung gelöst hat und ich den Fehler bei mir gesucht habe Siehe da, split falsch definiert.  ::) :-[
So geht es dann wie gewünscht
{my @a = ""; @a = split("/",$TOPIC);return {"LastCommand" => $a[2] }}
Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Beta-User

Danke für die Rückmeldung. Das sollte sich auch noch verkürzen lassen zu{my @a = split("/",$TOPIC);{"LastCommand" => $a[2] }}

Viel Erfolg weiterhin...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files