Hallo Leute,
vorab bitte ich um Nachsicht, ich bin neu im Thema MQTT und wage mich so langsam an das Thema heran.
Ich habe meinen Roborock S5 erfolgreich auf Valetudo geflasht. Ich möchte den Saugroboter jetzt gerne per Mqtt in FHEM einbinden.
Ich habe den FHEM MQTT Broker eingerichtet, dieser funktioniert auch wunderbar mit meinen Shellys.
Nun habe ich den Sauger per MQTT2_Device angelegt und das Roborock-Tamplete gewählt, der Sager wird auch erkannt und alle Daten werden auch ausgelesen und angezeigt.
Jetzt kommt allerdings mein Problem: Wenn ich den Roboter starten möchte, passiert nichts. Es werden keine Befehle angenommen bzw. ausgeführt.
Ich habe im Internet auch eine Anleitung für den Mosquitto Broker befolgt, aber auch ohne erfolg??
Ich bin gerade echt ratlos und hoffe, dass jemand von Euch mir ein wenig helfen kann bzw. mir einen Tipp geben kann!?
Internals:
CID rockrobo
DEF rockrobo
DEVICETOPIC rockrobo
FUUID 61bcbc84-f33f-f546-c486-b0f872d8eab5398e
FVERSION 10_MQTT2_DEVICE.pm:0.248610/2021-08-20
IODev mqtt
NAME rockrobo
NR 212
STATE set_start
TYPE MQTT2_DEVICE
OLDREADINGS:
READINGS:
2021-12-18 09:23:02 IODev mqtt
2021-12-18 09:23:02 attrTemplateVersion 20200522 or prior
hmccu:
Attributes:
IODev mqtt
alias rockrobo
comment For original code for "attrTmqtt2_roborock_valetudo2svg()" see <a href="https://forum.fhem.de/index.php/topic,104687.msg986304.html#msg986304">this forum thread</a>. To display generated map seperately, define a weblink device: <br>define valetudo_map weblink htmlCode <img src="fhem/images/rockrobo_map.svg">
devStateIcon { '<img src="fhem/images/rockrobo_map.svg" style="max-width:256;;max-height:256;;">' }
icon vacuum_top
model roborock
readingList homeassistant/vacuum/valetudo_rockrobo/config:.* { json2nameValue($EVENT) }
valetudo/rockrobo/state:.* { json2nameValue($EVENT) }
valetudo/rockrobo/attributes:.* { json2nameValue($EVENT) }
valetudo/rockrobo/map_data:.* {attrTmqtt2_roborock_valetudo2svg("map_data",$EVENT,"www/images/rockrobo_map.svg")}
setList start:noArg valetudo/rockrobo/command start
charge:noArg valetudo/rockrobo/command return_to_base
stop:noArg valetudo/rockrobo/command stop
spot:noArg valetudo/rockrobo/command clean_spot
pause:noArg valetudo/rockrobo/command pause
locate:noArg valetudo/rockrobo/command locate
fan_power:min,medium,high,max,mop valetudo/rockrobo/set_fan_speed $EVTPART1
zone valetudo/rockrobo/custom_command {"command":"zoned_cleanup","zone_ids":["$EVTPART1"]}
goto valetudo/rockrobo/custom_command {"command":"go_to","spot_id":"$EVTPART1"}
load_map valetudo/rockrobo/custom_command {"command":"load_map","name":"$EVTPART1"}
store_map valetudo/rockrobo/custom_command {"command":"store_map","name":"$EVTPART1"}
setStateList charge locate pause stop start
verbose 5
nternals:
DEF 127.0.0.1:1883
DeviceName 127.0.0.1:1883
FD 17
FUUID 61bc6ef0-f33f-f546-8344-a52a61cb699f17ce
FVERSION 00_MQTT.pm:0.249810/2021-09-16
NAME mqtt
NOTIFYDEV global
NR 211
NTFY_ORDER 50-mqtt
PARTIAL
STATE opened
TYPE MQTT
buf
msgid 1
ping_received 1
timeout 60
READINGS:
2021-12-18 09:27:41 connection active
2021-12-17 19:05:39 state opened
messages:
Attributes:
room MQTT
Was benötigt ihr noch für Infos?
Vielen Dank für Eure Hilfe
Gruß Tom
TYPE=MQTT und TYPE=MQTT2_DEVICE passen nicht zusammen => MQTT2_CLIENT
Zitat von: Beta-User am 18 Dezember 2021, 09:38:25
TYPE=MQTT und TYPE=MQTT2_DEVICE passen nicht zusammen => MQTT2_CLIENT
Hallo Beta-User,
danke für Deinen Hinweis, ich habe es versucht zu ändern, scheint auch funktioniert zu haben:
Internals:
BUF
Clients :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
ClientsKeepOrder 1
DEF 127.0.0.1:1883
DeviceName 127.0.0.1:1883
FD 17
FUUID 61bd9efd-f33f-f546-18cd-b7c9301d5c5bdf6d
FVERSION 00_MQTT2_CLIENT.pm:0.249820/2021-09-16
NAME MQTT
NR 211
PARTIAL
STATE opened
TYPE MQTT2_CLIENT
WBCallback
clientId MQTT
lastMsgTime 1639817299.19848
nextOpenDelay 5
MatchList:
1:MQTT2_DEVICE ^.
2:MQTT_GENERIC_BRIDGE ^.
READINGS:
2021-12-18 09:47:49 state opened
Attributes:
autocreate simple
Internals:
CID rockrobo
DEF rockrobo
DEVICETOPIC MQTT2_MQTT
FUUID 61bd9f16-f33f-f546-5946-1944553b2f4c7d5f
FVERSION 10_MQTT2_DEVICE.pm:0.248610/2021-08-20
IODev MQTT
LASTInputDev MQTT
MQTT_MSGCNT 59
MQTT_TIME 2021-12-18 09:51:39
MSGCNT 59
NAME MQTT2_MQTT
NR 212
STATE set_start
TYPE MQTT2_DEVICE
READINGS:
2021-12-18 09:50:35 IODev MQTT
2021-12-18 09:51:39 area 6025
2021-12-18 09:43:58 attrTemplateVersion 20200522 or prior
2021-12-18 09:51:05 command start
2021-12-18 09:51:39 detail none
2021-12-18 09:51:39 dustbin true
2021-12-18 09:51:39 error
2021-12-18 09:51:39 frequency 2.4ghz
2021-12-18 09:51:39 ips 192.168.1.48,fe80::7e49:ebff:fe9a:44af
2021-12-18 09:51:39 level 100
2021-12-18 09:51:39 map-data x��X�n$�
��~��.��^�<H��%ci���+��f���C�]Á�:楚d����e���������l�<=�_~������������ϧ��v�e��|��~R�_T��*���p�l7y�.���Y���q�wR~�����
9�ߝ��|��������uߞ�{Ʊ�n7��o�
�������?�ׇ<�>�c��}y���7ȿ����S�"8���B���z�%��I��v���|A��ė��fR�����T���JI�v��'E�~~�aݎe��:��͟�?_^��6�����ǧO�������s�i��rt�eO� ��[a�sva
���ta�5 6
��nB!��k%RY�{�z7f8`��s&�ah�a5��V�Y�cYu�lj����A��0�ȯ
E
��bAO-�t��T��'Խ��D�փe�<�NB�Mi�5T��Po�6-�쑎���0ky:�C��gGf��ѳ;�߳"�8�վk`�A��8�Hk+3v7L;�!
xdB5��>�`�@�}2}z'̉7'��,KX�,K(��H�>�]҉�ffY���,�s����>��#<}Z��Z��W��zz����o���k�z-l�ɞ ���ڀs�4���op٧���u�J��TO+̡�ã�>����v5��q�t�å�Rf���8��G�3��px��M>�M>Z]QĖ�s\Z�H�7݉D�����f�F����Q\v�{��9�D����if&�kWT�����/ԇu7`u���x��VћD_B=P�o��jTcaT�sb�$�6WȦ:L.�s4�:.[������n�dc�ƹ��Nij�EL]��A
f�YNZJ%��^�c���<MC�6@j�^����rg�Q]8k��P����I��&�՝�9AZ�T����
ᨧ�۠��Ȯ�4��:�^����{�&�6t9p���u��@��������L_��i�u"��Xx��&H�������hi��&j�����Z@�`�υ�=v�H�7w2�$W��:�i��B�oD��*B&�9��"���%��o�h���d��h������A���D$��$D���-&䌨�S��E��#"�!ѐ@���솽P��u�8<b�3�/����~R��` ��f]z��`k�VE�Gv�C7�`YK����O��I8'AAEz�ޣ�=|t�u��f?}D�b(�j�r�C0WY9R4�z�ƣ0��3%Mwk�K��uC�����9z)]^)�N����ι�F��^�w��^���`��;��s��t�A��@�"�ka3$9*�j ���2NQG�P���ӎ�#���d���h2��S�����LRCjShShsh�b+���%�R�FuY �v5d��0�-d-d=dL|<�e�76(U"�4�l�� Q�&��湈t;�3zl��5�/}��%Sx�����#�GL���ܕ�f.^m�%|Y�\�1��ѝU�Ś����ё,��뒅];ˈk��!�!�G[Йw
T�����m�O�k^�&+�!!�!�K��V��2[SØ��2�������s*qJ�4E�RT-E�RT�ȴڨAjq2g7(lbg/N�=|Ǻ�� 2�vQ"�Υ��������U�Z���U�!�
�P��PQqmT(G�������)������6ƒMCŵk28�Ñ�7⼨Z���Z��幺�D7��%���7��D5J ���=�Qjh�%���'��7���`i
��v�9�����Rz<c�)�#�E
�;��ayD5�\�ըG��/�:5�jZyTvN
4G|,4>gɂ����[��־�7YԪF]���E�)�!��
U�͐E�r,���!NoM�I��~���}�GӾ�j��]�SbFH�Dgz ���3�DR��"�����ZR6�
'o���)
��men�C�
���K��`�/To��@����?��ǖl&u�߶��~�bSv�n�*�;_^^��������oe������py�Kf�(�oP��.�?��K9��?*Ë�HH��-�$8EBg�;�
cU��m��'�b��&�G迓�v����~��o��!��׃?]��|x�>k��������WQ�
2021-12-18 09:51:39 mop false
2021-12-18 09:51:39 preset max
2021-12-18 09:51:39 presets {}
2021-12-18 09:51:39 segments {}
2021-12-18 09:51:39 signal -41
2021-12-18 09:51:39 ssid Hoth
2021-12-18 09:51:04 state set_start
2021-12-18 09:51:39 status charged
2021-12-18 09:51:39 time 29
2021-12-18 09:51:39 watertank false
Attributes:
alias Roborock
comment For original code for "attrTmqtt2_roborock_valetudo2svg()" see <a href="https://forum.fhem.de/index.php/topic,104687.msg986304.html#msg986304">this forum thread</a>. To display generated map seperately, define a weblink device: <br>define valetudo_map weblink htmlCode <img src="fhem/images/rockrobo_map.svg">
devStateIcon { '<img src="fhem/images/rockrobo_map.svg" style="max-width:256;;max-height:256;;">' }
icon vacuum_top
model roborock
readingList homeassistant/vacuum/valetudo_rockrobo/config:.* { json2nameValue($EVENT) }
valetudo/rockrobo/state:.* { json2nameValue($EVENT) }
valetudo/rockrobo/attributes:.* { json2nameValue($EVENT) }
valetudo/rockrobo/map_data:.* {attrTmqtt2_roborock_valetudo2svg("map_data",$EVENT,"www/images/rockrobo_map.svg")}
MQTT:valetudo/rockrobo/MapData/map-data:.* map-data
MQTT:valetudo/rockrobo/MapData/segments:.* segments
MQTT:valetudo/rockrobo/FanSpeedControlCapability/preset:.* preset
MQTT:valetudo/rockrobo/ZoneCleaningCapability/presets:.* presets
MQTT:valetudo/rockrobo/GoToLocationCapability/presets:.* presets
MQTT:valetudo/rockrobo/WifiConfigurationCapability/ssid:.* ssid
MQTT:valetudo/rockrobo/WifiConfigurationCapability/ips:.* ips
MQTT:valetudo/rockrobo/WifiConfigurationCapability/frequency:.* frequency
MQTT:valetudo/rockrobo/WifiConfigurationCapability/signal:.* signal
MQTT:valetudo/rockrobo/CurrentStatisticsCapability/time:.* time
MQTT:valetudo/rockrobo/CurrentStatisticsCapability/area:.* area
MQTT:valetudo/rockrobo/StatusStateAttribute/status:.* status
MQTT:valetudo/rockrobo/StatusStateAttribute/detail:.* detail
MQTT:valetudo/rockrobo/StatusStateAttribute/error:.* error
MQTT:valetudo/rockrobo/BatteryStateAttribute/level:.* level
MQTT:valetudo/rockrobo/BatteryStateAttribute/status:.* status
MQTT:valetudo/rockrobo/AttachmentStateAttribute/dustbin:.* dustbin
MQTT:valetudo/rockrobo/AttachmentStateAttribute/watertank:.* watertank
MQTT:valetudo/rockrobo/AttachmentStateAttribute/mop:.* mop
MQTT:valetudo/rockrobo/command:.* command
room MQTT2_DEVICE
setList start:noArg valetudo/rockrobo/command start
charge:noArg valetudo/rockrobo/command return_to_base
stop:noArg valetudo/rockrobo/command stop
spot:noArg valetudo/rockrobo/command clean_spot
pause:noArg valetudo/rockrobo/command pause
locate:noArg valetudo/rockrobo/command locate
fan_power:min,medium,high,max,mop valetudo/rockrobo/set_fan_speed $EVTPART1
zone valetudo/rockrobo/custom_command {"command":"zoned_cleanup","zone_ids":["$EVTPART1"]}
goto valetudo/rockrobo/custom_command {"command":"go_to","spot_id":"$EVTPART1"}
load_map valetudo/rockrobo/custom_command {"command":"load_map","name":"$EVTPART1"}
store_map valetudo/rockrobo/custom_command {"command":"store_map","name":"$EVTPART1"}
setStateList charge locate pause stop start
Leider funktioniert es immer noch nicht!? Der Roboter bzw. Veletudo nimmt keine Befehle an!? :(
Gruß Tom
Hallo Tom,
den Satz versteh ich nicht?
Ich habe den FHEM MQTT Broker eingerichtet, dieser funktioniert auch wunderbar mit meinen Shellys.
Du hast den MQTT2_SERVER eingerichtet oder Du hast einen mqtt Broker und Deine Shellys auch per MQTT2_CLIENT verbunden?
Gruß Otto
Würde tippen, dass sich bei valetudo einiges geändert hat. Vielleicht selbst mal in die Doku dort sehen...?
Hallo Otto,
ich habe beides versucht.
Ich habe zuerst lt. Wiki den FHEMBroker eingerichtet. Der Roboter (und die Shellies) wurde auch sofort per autocreate eingerichtet. Die Shellies konnte ich auch normal bedienen.
Dann habe ich irgendwo aufgeschnappt, dass Valetudo besser mit Mosquitto laufen soll. Dann habe ich den FHEMBroker deaktiviert, Mosquitto eingerichtet Ich habe z.B. versucht, einen Befehl (lt. Anleitung) per Mosquitto abzusetzen, aber da sprach der Roboter auch nicht an (mosquitto_pub -t valetudo/rockrobo/command -m start).
Jetzt habe ich Mosquitto gelöscht und bin wieder zu dem FHEMBroker zurück, der Roboter wurde erkannt und ich habe das Roborock Template aktiviert...
...keine Funktion.
Ich hoffe ich konnte einigermaßen beschreiben, was ich versucht habe!?
Danke und viele Grüße
Tom
Ich wuerde verifizieren, ob die subscriptions der Verbindung (list TYPE=MQTT2_SERVER subscriptions) zu Doku passen.
Hallo Rudolf,
habe ich mal eingegeben, folgendes wurde ausgespuckt:
myBroker_192.168.1.29_1268 shellies/command=1639821978.73625 shellies/shelly1-F4CFA27499AC/command=1639821978.75857 shellies/shelly1-F4CFA27499AC/relay/0/command=1639821978.75874
myBroker_192.168.1.48_43383
die 1.29 ist ein Shelly
die 1.48 ist die IP vom Roborock
Ist das jetzt gut oder schlecht, dass bei dem Roborock keine Ausgabe erscheint!?
Mir fällt jetzt gerade ein: Da gab es mal die Aussage, dass Valetudo zwar mqtt hat aber die Schnittstelle praktisch nicht funktioniert. Ist aber eine Weile her und ich habe die nie verifiziert. Es war aber für mich seinerzeit der Grund valetudoRE zu nehmen.
Darüber gab es aber auch einen "philosphischen Streit" von wegen gut oder schlecht richtig oder falsch usw.
Kann sein diese Ausage ist Schnee von gestern!!!
Aber die Doku (https://valetudo.cloud/pages/integrations/mqtt.html)liest sich jetzt ganz anders als das was hier versucht wurde: ???
ZitatCommand topic: <TOPIC PREFIX>/<IDENTIFIER>/BasicControlCapability/operation/set
Command response topic: <TOPIC PREFIX>/<IDENTIFIER>/BasicControlCapability/operation
Data type: enum (allowed payloads: START, STOP, PAUSE, HOME)
Danke für den Tipp Otto!
Hmm, dann muss ich evtl. mal den Nachmittag nutzen und VeletudoRE installieren!? Sollte hoffentlich so funktionieren wie das normale Valetudo!?
Ich versuche es mal und gebe Feedback!!
Würde mich trotzdem freuen, wenn jemand die zündende Idee hat :)
Danke Euch für Eure Hilfe!
ZitatIst das jetzt gut oder schlecht, dass bei dem Roborock keine Ausgabe erscheint!?
Das heisst, dass der Roborock an keinen MQTT-Nachrichten interessiert ist, und deswegen auch nie(!) benachrichtigt wird.
Ist aus deiner Standpunkt heraus vmtl. schlecht :)
So,
konnte es nicht abwarten und habe VeletudoRE installiert...ES LÄUFT! :D
Wahrscheinlich ist die Aussage von Otte bzgl. Valetudo und MQTT immer noch aktuell!?
Seis drum, er läuft wieder und ich bin glücklich.
Vielen Dank für Eure Hilfe!
Viele Grüße
Tom
Dazu gab es diesen Beitrag seinerzeit von mir
https://forum.fhem.de/index.php/topic,121017.0.html
@Otto: Falls es Handlungsbedarf in Richtung attrTemplate gibt: Kannst du das bitte übernehmen? (Dann muss ich mich in dieses Thema grade zur Abwechslung nicht selbst eindenken)
Mach ich, aber mit valetudoRE scheint es keinen Handlungsbedarf zu geben. Ob ich jetzt wirklich die valetudo Geschichte aufarbeiten will, muss ich mir mal überlegen. Eigentlich habe ich gerade keine Langeweile :D