FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: jostmario am 16 Dezember 2022, 18:27:21

Titel: MQTT Wert per Slider übergeben
Beitrag von: jostmario am 16 Dezember 2022, 18:27:21
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
Titel: Antw:MQTT Wert per Slider übergeben
Beitrag von: carlos am 17 Dezember 2022, 00:40:19
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
Titel: Antw:MQTT Wert per Slider übergeben
Beitrag von: Schlafsack am 22 Dezember 2022, 11:26:56
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). '}'}
Titel: Antw:MQTT Wert per Slider übergeben
Beitrag von: Beta-User am 22 Dezember 2022, 19:30:35
Warum einfach, wenn es auch kompliziert geht...
Ist das ernsthaft gemeint, dass Einsteigern noch die alten Module empfohlen werden?
Titel: Antw:MQTT Wert per Slider übergeben
Beitrag von: jostmario am 22 Dezember 2022, 22:31:16
Hallo,

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

Gruß Josty
Titel: Antw:MQTT Wert per Slider übergeben
Beitrag von: Beta-User am 22 Dezember 2022, 22:59:50
MQTT2_DEVICE anlegen, und setList füllen analog zum Vorschlag von carlos?
Titel: Antw:MQTT Wert per Slider übergeben
Beitrag von: Schlafsack am 04 Januar 2023, 10:56:20
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
Titel: Antw:MQTT Wert per Slider übergeben
Beitrag von: Beta-User am 04 Januar 2023, 11:10:45
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}

Titel: Antw:MQTT Wert per Slider übergeben
Beitrag von: Schlafsack am 04 Januar 2023, 11:36:51
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
Titel: Antw:MQTT Wert per Slider übergeben
Beitrag von: Beta-User am 04 Januar 2023, 11:39:58
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
Titel: Antw:MQTT Wert per Slider übergeben
Beitrag von: Schlafsack am 04 Januar 2023, 11:42:20
Antwort gibts über N/...
Schreiben über W/...
Titel: Antw:MQTT Wert per Slider übergeben
Beitrag von: Beta-User am 04 Januar 2023, 11:49:42
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...?