MQTT Wert per Slider übergeben

Begonnen von jostmario, 16 Dezember 2022, 18:27:21

Vorheriges Thema - Nächstes Thema

jostmario

Hallo,

wie kann ich denn ein      set venusmqtt publish W/b827eb256f4c/settings/0/Settings/CGwacs/AcPowerSetPoint {"value": "50"}   Befehl per Slider absenden.
Der Wert 50 soll dann quasi vom Slider kommen.



venusmqtt ist ein MQTT2_CLIENT
Internals:
   BUF       
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        192.168.4.213:1883 root hallo1
   DeviceName 192.168.4.213:1883
   FD         17
   FUUID      63938ef8-f33f-2bfa-5d80-d4f8c42394c5e9b5
   NAME       venusmqtt
   NR         1558
   PARTIAL   
   STATE      opened
   TYPE       MQTT2_CLIENT
   WBCallback
   clientId   venusmqtt
   eventCount 5969
   lastMsgTime 1671211550.64211
   nextOpenDelay 5
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2022-12-16 18:25:42   lastPublish     R/b827eb256f4c/keepalive:["settings/#", "grid/#", "battery/#", "hub4/#", "vebus/#"]

     2022-12-16 15:32:38   state           opened
Attributes:
   DbLogExclude .*
   autocreate simple
   comment    W/b827eb256f4c/settings/0/Settings/CGwacs/AcPowerSetPoint {"value": "50"}

R/b827eb256f4c/system/0/Serial\ N/e0ff50a097c0/+/+/b827eb256f4c
attr venusmqtt event-on-change-reading nichts
   disable    0
   room       06_Victron,MQTT2_DEVICE
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

carlos

Ich habe das zum Beispiel bei meinem Hue motion so gemacht:
Attribute setList setzen

setList occupancy_timeout:slider,0,10,65535 $DEVICETOPIC/set {"occupancy_timeout": $EVTPART1}

funktioniert bei mir so.
Gruß

Carlos
FHEM svn auf Intel NUC mit proxmox, 3 Raspberry Pi, signalduino, nanoCUL,  toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Schlafsack

#2
ich habe es mit einem Dummy und mit einem Notify gemacht regelbar von -50 bis 50 in 10er Schritten
Für dich wäre das dann z.B. so:

defmod Sollwert_Netz dummy
attr Sollwert_Netz setList state:slider,-50,10,50
attr Sollwert_Netz webCmd state


defmod V_Sollwert_Netz notify Sollwert_Netz.*\
  {fhem 'set MQTT_GENERIC_BRIDGE publish W/b827eb256f4c/settings/0/Settings/CGwacs/AcPowerSetPoint {"value": ' .ReadingsVal("Sollwert_Netz","state",undef). '}'}

Beta-User

Warum einfach, wenn es auch kompliziert geht...
Ist das ernsthaft gemeint, dass Einsteigern noch die alten Module empfohlen werden?
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

jostmario

Hallo,

Ok wie geht es denn einfacher.
Es funktioniert ja so mit dem Notify und dem Slider.

Gruß Josty
Raspberry Pi  ---  HM-LAN ---  8X HM_HM_CC_RT_DN --- OWL+USB Strommesser    UVR1611

Beta-User

MQTT2_DEVICE anlegen, und setList füllen analog zum Vorschlag von carlos?
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

Schlafsack

Mal ne Frage an Beta-User,

es soll ja direkt im MQTT2 Device gehen. Was müsste ich denn in setList einsetzen? Wenn ich das Unten einsetze kommt bloß "Strom" als Nachricht.
Es soll aber, wenn ich z.B. "35" am Slider wähle, dass kommen: { "value": 35}
und an das Topic wird auch nicht gesendet?


defmod Test_MQTT MQTT2_DEVICE
attr Test_MQTT IODev MQTT2_Server
attr Test_MQTT autocreate 1
attr Test_MQTT setList Strom:slider,0,5,35 $W/Seriennummer/settings/0/Settings/SystemSetup/MaxChargeCurrent/set {"value": $EVTPART1}
attr Test_MQTT webCmd Strom


Besten Dank

Beta-User

Wo kommt (v.a.) das "$W" her? Und wie soll MQTT2_DEVICE wissen, wie es das auflösen soll?

Nach deinen bisherigen Infos müßte es so klappen (vorausgesetzt, der Topic paßt ansonsten):
attr Test_MQTT setList Strom:slider,0,5,35  W/b827eb256f4c/settings/0/Settings/SystemSetup/MaxChargeCurrent/set {"value": $EVTPART1}

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

Schlafsack

#8
Besten Dank,

ohne "set" und "$" wird alles richtig gesendet. Ich muss nur mal gucken warum mein Victron das nicht empfängt. Hier mein defmod


defmod Test_MQTT MQTT2_DEVICE
attr Test_MQTT autocreate 1
attr Test_MQTT setList Strom:slider,0,5,35 W/Seriennummer/settings/0/Settings/SystemSetup/MaxChargeCurrent {"value": $EVTPART1}
attr Test_MQTT webCmd Strom

Beta-User

Der "Verdacht" wäre, dass das der Antwort-Topic ist, und die Soll-Vorgabe auf einem anderen Topic erwartet wird. Ohne Doku bzw. ggf. "subscriptions"-Info vom MQTT2_DEVICE ist das halt schwierig von hier aus zu beurteilen...

Hier war mal zu finden:
W/b827eb256f4c/settings/0/Settings/CGwacs/AcPowerSetPoint
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

Schlafsack

Antwort gibts über N/...
Schreiben über W/...

Beta-User

OK, dann liegt es vermutlich an was anderem. Was ich neulich mal hatte: eine (nicht fertige) ESP-firmware hat sich nach einem FHEM-Restart nicht mehr beim MQTT2_SERVER eingeschrieben und daher keine updates mehr auf dem vorgesehenen Topic mehr empfangen. Reboot von dem Ding, und alles war wieder gut. Vielleicht ist es ja sowas...?
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