Autor Thema: PublishSet bei MQTT_DEVICE  (Gelesen 605 mal)

Offline TWART016

  • Sr. Member
  • ****
  • Beiträge: 858
PublishSet bei MQTT_DEVICE
« am: 09 April 2019, 22:04:24 »
Hallo,

ich möchte meinen Shelly RGBW2 Controller mit MQTT steuern.
In MQTT.fx funktioniert das z.B. soshellies/shellyrgbw2-5A3992/color/0/set
{"ison":true,"mode":"color","red":255,"green":255,"blue":255,"white":0,"gain":100,"effect":0,"power":55.90,"overpower":false}

Wie bekomme ich das in PublishSet_.*? Mit Kommagetrennt wird das abgeschnitten.

Endziel soll sein, den Wert von Gain aus einem Reading zu holen.

Normaler PublishSet für on/off funktioniert:
on off shellies/shellyrgbw2-5A3992/color/0/command

Gruß
TWART016
Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline TWART016

  • Sr. Member
  • ****
  • Beiträge: 858
Antw:PublishSet bei MQTT_DEVICE
« Antwort #1 am: 14 April 2019, 01:18:35 »
Hat jemand eine Idee?
Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline OdfFhem

  • Full Member
  • ***
  • Beiträge: 276
Antw:PublishSet bei MQTT_DEVICE
« Antwort #2 am: 14 April 2019, 05:08:19 »
Hier https://forum.fhem.de/index.php/topic,93999.msg866821.html#msg866821 wird - wenn ich Dein Problem richtig verstanden habe - ein ähnlicher Fall behandelt ...

Offline TWART016

  • Sr. Member
  • ****
  • Beiträge: 858
Antw:PublishSet bei MQTT_DEVICE
« Antwort #3 am: 14 April 2019, 20:47:58 »
Wenn ich das richtig sehr wird da escapt.

Problem ist, dass bei mir alles nach einem Komma in eine neue Zeile geschrieben wird. Wie kann ich ein Komma escapen?

Manuell über die Kommandline geht es:
set Shelly_Wohnzimmer_test test {"ison":true,"mode":"color","red":255,"green":255,"blue":255,"white":255,"gain":0,"effect":0,"power":41.05,"overpower":false}
Bei Set wird nur nach Kommagetrennt ein neuer Eintrag erstellt.
Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline TWART016

  • Sr. Member
  • ****
  • Beiträge: 858
Antw:PublishSet bei MQTT_DEVICE
« Antwort #4 am: 23 April 2019, 21:47:25 »
Niemand eine Idee?
Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7190
  • eigentlich eher user wie "developer"
Antw:PublishSet bei MQTT_DEVICE
« Antwort #5 am: 24 April 2019, 09:19:43 »
Moin.

Vor langem hatte ich das Problem auch mal (vor dem Umstieg auf MQTT2). Damals hatte ich das mit toJSON() gelöst. Reste des alten Codes sind hier zu finden (allerdings schon transferiert in die MQTT2-Welt): https://forum.fhem.de/index.php/topic,86932.msg832336.html#msg832336

Generell geht escapen eigentlich meistens mit dem backslash.

Hoffe, das hilft.
Server: HP-T5740@stretch, aktuelles FHEM + ConfigDB | CUL_HM@VCCU | MySensors: seriell, v.a. 2.3.1@RS485 | MQTT2: MiLight@ESP-GW + zigbee2mqtt | SIGNALduino | MapleCUN | ZWave
svn:MySensors, WeekdayTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline TWART016

  • Sr. Member
  • ****
  • Beiträge: 858
Antw:PublishSet bei MQTT_DEVICE
« Antwort #6 am: 24 April 2019, 21:37:20 »
setlist gibt es bei MQTT_Device leider nicht.

Backslash mit Escape habe ich bereits probiert, funktioniert nur bei dem Komma nicht.
Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7190
  • eigentlich eher user wie "developer"
Antw:PublishSet bei MQTT_DEVICE
« Antwort #7 am: 25 April 2019, 09:10:50 »
Dass es keine setList bei MQTT_DEVICE gibt, ist schon klar, aber toJSON() solltest du verwenden können ;) .
Server: HP-T5740@stretch, aktuelles FHEM + ConfigDB | CUL_HM@VCCU | MySensors: seriell, v.a. 2.3.1@RS485 | MQTT2: MiLight@ESP-GW + zigbee2mqtt | SIGNALduino | MapleCUN | ZWave
svn:MySensors, WeekdayTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline TWART016

  • Sr. Member
  • ****
  • Beiträge: 858
Antw:PublishSet bei MQTT_DEVICE
« Antwort #8 am: 25 April 2019, 17:12:04 »
Wie müsste ich das in das Reading publishSet_test eintragen?
toJSON({'gain'=>'0'})}gibt mir in set
"mode":"color"zurück
Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7190
  • eigentlich eher user wie "developer"
Antw:PublishSet bei MQTT_DEVICE
« Antwort #9 am: 25 April 2019, 17:42:07 »
Hmm, an sich klingt das doch schon mal nicht schlecht, wenn eine Antwort kommt, oder?
Dann solltest du mal versuchen, den ganzen toJSON zu bauen, also

toJSON({'gain'=>'0',"ison" => "true" , ... })
Server: HP-T5740@stretch, aktuelles FHEM + ConfigDB | CUL_HM@VCCU | MySensors: seriell, v.a. 2.3.1@RS485 | MQTT2: MiLight@ESP-GW + zigbee2mqtt | SIGNALduino | MapleCUN | ZWave
svn:MySensors, WeekdayTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline TWART016

  • Sr. Member
  • ****
  • Beiträge: 858
Antw:PublishSet bei MQTT_DEVICE
« Antwort #10 am: 26 April 2019, 08:38:59 »
Auch damit wird durch ein Komma ein Zeilenumbruch.
attr Shelly_Wohnzimmer_test publishSet_test toJSON({"ison":true,"mode":"color","red":255,"green":255,"blue":255,"white":255,"gain":0,"effect":0,"power":41.05,"overpower":false}) shellies/shellyrgbw2-5A3992/color/0/set

Das gleiche mit \
Intel NUC, Raspberry Pi,CUL 433+868, JeeLink, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit/Homebridge/Siri, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI, Winconnect, Geofancy, Nmap, Sysmon, Telegram

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7190
  • eigentlich eher user wie "developer"
Antw:PublishSet bei MQTT_DEVICE
« Antwort #11 am: 26 April 2019, 09:11:23 »
Hmm,

dann gehen mir ziemlich die Ideen aus. Du könntest noch die Funktion mal testweise in {} packen und/oder die Kommata verdoppeln (so wie man das mit ;; sonst auch machen muß.

Ansonsten würde ich dazu raten, einfach MQTT2_DEVICE dafür einzusetzen. Damit geht sowas problemlos...
Server: HP-T5740@stretch, aktuelles FHEM + ConfigDB | CUL_HM@VCCU | MySensors: seriell, v.a. 2.3.1@RS485 | MQTT2: MiLight@ESP-GW + zigbee2mqtt | SIGNALduino | MapleCUN | ZWave
svn:MySensors, WeekdayTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

 

decade-submarginal