Roomba Staubsaugerroboter

Begonnen von Prof. Dr. Peter Henning, 10 September 2020, 16:40:34

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Klar geht das - und es sind auch keine Readings, sondern Attribute, genauer: User-Attribute userattr. Die verbinden benannte Zonen mit den Zonen-Identifiern aus dem Roomba.

Hier mal ein List eines meiner drei Roboter. Mit dem Befehl "set RoombaEmma CleanEG Sitzgruppe" schicke ich ihn gezielt zur Sitzgruppe

Internals:
   CID        xxxxxxxxxxxxx
   DEF        xxxxxxxxxxxxx
   FUUID      60e322df-f33f-8771-a8d6-2b967edc3a8c6a7e
   IODev      RoombaEmmaClient
   LASTInputDev RoombaEmmaClient
   MSGCNT     1311
   NAME       RoombaEmma
   NR         184
   RoombaEmmaClient_MSGCNT 1311
   RoombaEmmaClient_TIME 2023-12-26 13:39:08
   STATE      Charge (100 %), client disconnected
   TYPE       MQTT2_DEVICE
   VERSION    1.3
   eventCount 1388
   READINGS:
     2023-12-24 21:08:04   IODev           RoombaEmmaClient
     2023-12-26 13:34:14   NumOfSchedules  0
     2023-12-26 13:34:14   audioVolume     100
     2023-12-26 13:34:14   battery         100
     2023-12-26 13:39:01   bbrEvacs        0
     2023-12-26 13:39:01   bbrTime         :
     2023-12-26 13:39:01   bbrTime2        0d 0h m
     2023-12-26 13:34:14   cmBinFull       false
     2023-12-26 13:39:01   cmCycle         none
     2023-12-26 13:39:01   cmError         None
     2023-12-26 13:39:01   cmErrorD        Kein Fehler
     2023-12-26 13:39:01   cmExpire        Never
     2023-12-26 13:39:01   cmInitiator     localApp
     2023-12-26 13:39:01   cmNotReady      false
     2023-12-26 13:39:01   cmPhase         charge
     2023-12-26 13:39:01   cmPhaseD        Ladung
     2023-12-26 13:39:01   cmPhaseE        Charge
     2023-12-26 13:39:01   cmTime          0 min
     2023-12-26 13:38:56   dockKnown       true
     2023-12-26 13:34:14   lastCommand     start
     2023-12-26 13:34:14   lastCommandInitiator localApp
     2023-12-26 13:39:15   mqttclient      disconnected
     2023-12-26 13:34:14   sBinPause       true
     2023-12-26 13:34:14   sCarpetBoost    false
     2023-12-26 13:34:14   sNoAutoPasses   true
     2023-12-26 13:34:14   sOpenOnly       true
     2023-12-26 13:34:14   sSchedHold      false
     2023-12-26 13:34:14   sTwoPass        false
     2023-12-26 13:34:14   sVacHigh        false
     2023-12-26 13:34:14   signalAP        FritzRepeater3000
     2023-12-26 13:34:14   signalBssid     0c:72:74:aa:d6:46
     2023-12-26 13:39:08   signalRSSI      -55
     2023-12-26 13:34:13   state           CleanEG
   helper:
Attributes:
   IODev      RoombaEmmaClient
   SVG_collect SVG_RoombaEmma.xml
   SVG_color1 green:lightgreen
   SVG_color2 orange:yellow
   SVG_color3 red:pink
   SVG_color4 blue:lightblue
   SVG_final  SVG_RoombaEmma.svg
   SVG_room   SVG_EG.svg
   babbleName Staubsauger_1
   devStateIcon Charge.*100.*:vacuum_red Charge.*9\d.*:vacuum_yellow_90 Charge.*8\d.*:vacuum_yellow_80 Charge.*7\d.*:vacuum_yellow_70 Charge.*6\d.*:vacuum_yellow_60 Charge.*5\d.*:vacuum_yellow_50 Charge.*4\d.*:vacuum_yellow_40 Charge.*3\d.*:vacuum_yellow_30 Charge.*2\d.*:vacuum_yellow_20 Charge.*1\d.*:vacuum_yellow_10  Mission.*100.*:vacuum_green_100  Mission.*9\d.*:vacuum_green_90 Mission.*8\d.*:vacuum_green_80 Mission.*7\d.*:vacuum_green_70 Mission.*6\d.*:vacuum_green_60 Mission.*5\d.*:vacuum_green_50 Mission.*4\d.*:vacuum_green_40 Mission.*3\d.*:vacuum_green_30 Mission.*2\d.*:vacuum_green_20 Mission.*1\d.*:vacuum_green_10
   devicetopic yyyyyyyyyyyy
   floor_Erdgeschoss_label Erdgeschoss
   floor_Erdgeschoss_pMapId zzzzzzzzz
   floor_Erdgeschoss_userPmapvId 221106T121339
   group      Staubsaugen
   noMap      true
   readingList $DEVICETOPIC:.* {roomba::reading($NAME,$EVENT)}
   room       Kontrollraum
   room_Erdgeschoss_floor Terrassentür
   room_Erdgeschoss_id 3
   room_Erdgeschoss_label Erdgeschoss
   room_Esstisch_floor Erdgeschoss
   room_Esstisch_id 0
   room_Esstisch_label Esstisch
   room_Esstisch_type zid
   room_Garderobe_floor Erdgeschoss
   room_Garderobe_id 4
   room_Garderobe_label Garderobe
   room_Garderobe_type rid
   room_Kaminofen_floor Erdgeschoss
   room_Kaminofen_id 4
   room_Kaminofen_label Kaminofen
   room_Kaminofen_type zid
   room_Kueche_floor Erdgeschoss
   room_Kueche_id 3
   room_Kueche_label Küche
   room_Kueche_type rid
   room_Kuechentuer_floor Erdgeschoss
   room_Kuechentuer_id 5
   room_Kuechentuer_label Kuechentuer
   room_Kuechentuer_type zid
   room_Mittendrin_floor Erdgeschoss
   room_Mittendrin_id 6
   room_Mittendrin_label Mittendrin
   room_Mittendrin_type zid
   room_Sitzgruppe_floor Erdgeschoss
   room_Sitzgruppe_id 1
   room_Sitzgruppe_label Sitzgruppe
   room_Sitzgruppe_type zid
   room_Terrassentuer_floor Erdgeschoss
   room_Terrassentuer_id 3
   room_Terrassentuer_label Terrassentuer
   room_Terrassentuer_type zid
   room_VorSchrank_floor Erdgeschoss
   room_VorSchrank_id 2
   room_VorSchrank_label VorSchrank
   room_VorSchrank_type zid
   room_Wohnzimmer_floor Erdgeschoss
   room_Wohnzimmer_id 1
   room_Wohnzimmer_label Wohnzimmer
   room_Wohnzimmer_type rid
   setList    start:noArg {roomba::command($NAME,"start",$EVENT)}
stop:noArg {roomba::command($NAME,"stop",$EVENT)}
dock:noArg {roomba::command($NAME,"dock",$EVENT)}
resume:noArg {roomba::command($NAME,"resume",$EVENT)}
pause:noArg {roomba::command($NAME,"pause",$EVENT)}
Allow:true,false {roomba::allow()}
CarpetBoost:true,false {roomba::setting($NAME,"carpetBoost",$EVENT)}
TwoPass:true,false {roomba::setting($NAME,"twoPass",$EVENT)}
NoAutoPasses:true,false {roomba::setting($NAME,"noAutoPasses",$EVENT)}
NoPP:true,false {roomba::setting($NAME,"noPP",$EVENT)}
VacHigh:true,false {roomba::setting($NAME,"vacHigh",$EVENT)}
BinPause:true,false {roomba::setting($NAME,"binPause",$EVENT)}
OpenOnly:true,false {roomba::setting($NAME,"openOnly",$EVENT)}
ProgHold:true,false {roomba::setting($NAME,"schedHold",$EVENT)}
ProgSun:time {roomba::setsched2($NAME,0,$EVENT)}
ProgMon:time {roomba::setsched2($NAME,1,$EVENT)}
ProgTue:time {roomba::setsched2($NAME,2,$EVENT)}
ProgWed:time {roomba::setsched2($NAME,3,$EVENT)}
ProgThu:time {roomba::setsched2($NAME,4,$EVENT)}
ProgFri:time {roomba::setsched2($NAME,5,$EVENT)}
ProgSat:time {roomba::setsched2($NAME,6,$EVENT)}
maplist:noArg {roomba::listmaps($NAME)}
mapdel {roomba::delmap($NAME,$EVENT)}
SetScheduleAll:true,false {roomba::setsched2($NAME,"all",$EVENT)}
SetSchedule1:true,false {roomba::setsched2($NAME,"1",$EVENT)}
SetSchedule2:true,false {roomba::setsched2($NAME,"2",$EVENT)}
CreateFloor {roomba::createFloor($NAME,$EVENT)}
CreateRoom {roomba::createRoom($NAME,$EVENT)}
CleanEG:Sitzgruppe,Kaminofen,Terrassentuer,VorSchrank,Mittendrin,Esstisch,Kuechentuer,Kueche,Garderobe,Wohnzimmer {roomba::cleanRoom($NAME,"Erdgeschoss",$EVENT)}
   startdir   north
   startx     1080
   starty     500
   stateFormat cmPhaseE (battery %), client mqttclient
   userReadings signalAP:.*signalBssid.* {my $bssid=ReadingsVal('RoombaEmma','signalBssid','');;(($bssid=~/44.*20/)?'FritzBox':(($bssid=~/e8.*0f/)?'FritzRepeater1750':'FritzRepeater3000'))}, mqttclient:.* {Value("RoombaEmmaClient")}
   userattr   LOG_dir SVG_collect SVG_color1 SVG_color2 SVG_color3 SVG_color4 SVG_dir SVG_final SVG_room debug floor_Erdgeschoss_label floor_Erdgeschoss_pMapId floor_Erdgeschoss_userPmapvId noMap:true,false room_Erdgeschoss_floor room_Erdgeschoss_id room_Erdgeschoss_label room_Erdgeschoss_type room_Esstisch_floor room_Esstisch_id room_Esstisch_label room_Esstisch_type room_Garderobe_floor room_Garderobe_id room_Garderobe_label room_Garderobe_type room_Kaminofen_floor room_Kaminofen_id room_Kaminofen_label room_Kaminofen_type room_Kueche_floor room_Kueche_id room_Kueche_label room_Kueche_type room_Kuechentuer_floor room_Kuechentuer_id room_Kuechentuer_label room_Kuechentuer_type room_Mittendrin_floor room_Mittendrin_id room_Mittendrin_label room_Mittendrin_type room_Sitzgruppe_floor room_Sitzgruppe_id room_Sitzgruppe_label room_Sitzgruppe_type room_Terrassentuer_floor room_Terrassentuer_id room_Terrassentuer_label room_Terrassentuer_type room_Testzone_floor room_Testzone_id room_Testzone_label room_Testzone_type room_VorSchrank_floor room_VorSchrank_id room_VorSchrank_label room_VorSchrank_type room_Wohnzimmer_floor room_Wohnzimmer_id room_Wohnzimmer_label room_Wohnzimmer_type startdir:north,west,south,east startx starty
   webCmd     CleanEG:pause:resume:dock

LG

pah

cbl

Frohes neues Jahr!

Zitat von: Prof. Dr. Peter Henning am 28 Dezember 2023, 17:05:49Klar geht das - und es sind auch keine Readings, sondern Attribute, genauer: User-Attribute userattr. Die verbinden benannte Zonen mit den Zonen-Identifiern aus dem Roomba.

Hier mal ein List eines meiner drei Roboter. Mit dem Befehl "set RoombaEmma CleanEG Sitzgruppe" schicke ich ihn gezielt zur Sitzgruppe

Internals:
   CID        xxxxxxxxxxxxx
   DEF        xxxxxxxxxxxxx
   FUUID      60e322df-f33f-8771-a8d6-2b967edc3a8c6a7e
   IODev      RoombaEmmaClient
   LASTInputDev RoombaEmmaClient
   MSGCNT     1311
   NAME       RoombaEmma
   NR         184
   RoombaEmmaClient_MSGCNT 1311
   RoombaEmmaClient_TIME 2023-12-26 13:39:08
   STATE      Charge (100 %), client disconnected
   TYPE       MQTT2_DEVICE
   VERSION    1.3
   eventCount 1388
   READINGS:
     2023-12-24 21:08:04   IODev           RoombaEmmaClient
     2023-12-26 13:34:14   NumOfSchedules  0
     2023-12-26 13:34:14   audioVolume     100
     2023-12-26 13:34:14   battery         100
     2023-12-26 13:39:01   bbrEvacs        0
     2023-12-26 13:39:01   bbrTime         :
     2023-12-26 13:39:01   bbrTime2        0d 0h m
     2023-12-26 13:34:14   cmBinFull       false
     2023-12-26 13:39:01   cmCycle         none
     2023-12-26 13:39:01   cmError         None
     2023-12-26 13:39:01   cmErrorD        Kein Fehler
     2023-12-26 13:39:01   cmExpire        Never
     2023-12-26 13:39:01   cmInitiator     localApp
     2023-12-26 13:39:01   cmNotReady      false
     2023-12-26 13:39:01   cmPhase         charge
     2023-12-26 13:39:01   cmPhaseD        Ladung
     2023-12-26 13:39:01   cmPhaseE        Charge
     2023-12-26 13:39:01   cmTime          0 min
     2023-12-26 13:38:56   dockKnown       true
     2023-12-26 13:34:14   lastCommand     start
     2023-12-26 13:34:14   lastCommandInitiator localApp
     2023-12-26 13:39:15   mqttclient      disconnected
     2023-12-26 13:34:14   sBinPause       true
     2023-12-26 13:34:14   sCarpetBoost    false
     2023-12-26 13:34:14   sNoAutoPasses   true
     2023-12-26 13:34:14   sOpenOnly       true
     2023-12-26 13:34:14   sSchedHold      false
     2023-12-26 13:34:14   sTwoPass        false
     2023-12-26 13:34:14   sVacHigh        false
     2023-12-26 13:34:14   signalAP        FritzRepeater3000
     2023-12-26 13:34:14   signalBssid     0c:72:74:aa:d6:46
     2023-12-26 13:39:08   signalRSSI      -55
     2023-12-26 13:34:13   state           CleanEG
   helper:
Attributes:
   IODev      RoombaEmmaClient
   SVG_collect SVG_RoombaEmma.xml
   SVG_color1 green:lightgreen
   SVG_color2 orange:yellow
   SVG_color3 red:pink
   SVG_color4 blue:lightblue
   SVG_final  SVG_RoombaEmma.svg
   SVG_room   SVG_EG.svg
   babbleName Staubsauger_1
   devStateIcon Charge.*100.*:vacuum_red Charge.*9\d.*:vacuum_yellow_90 Charge.*8\d.*:vacuum_yellow_80 Charge.*7\d.*:vacuum_yellow_70 Charge.*6\d.*:vacuum_yellow_60 Charge.*5\d.*:vacuum_yellow_50 Charge.*4\d.*:vacuum_yellow_40 Charge.*3\d.*:vacuum_yellow_30 Charge.*2\d.*:vacuum_yellow_20 Charge.*1\d.*:vacuum_yellow_10  Mission.*100.*:vacuum_green_100  Mission.*9\d.*:vacuum_green_90 Mission.*8\d.*:vacuum_green_80 Mission.*7\d.*:vacuum_green_70 Mission.*6\d.*:vacuum_green_60 Mission.*5\d.*:vacuum_green_50 Mission.*4\d.*:vacuum_green_40 Mission.*3\d.*:vacuum_green_30 Mission.*2\d.*:vacuum_green_20 Mission.*1\d.*:vacuum_green_10
   devicetopic yyyyyyyyyyyy
   floor_Erdgeschoss_label Erdgeschoss
   floor_Erdgeschoss_pMapId zzzzzzzzz
   floor_Erdgeschoss_userPmapvId 221106T121339
   group      Staubsaugen
   noMap      true
   readingList $DEVICETOPIC:.* {roomba::reading($NAME,$EVENT)}
   room       Kontrollraum
   room_Erdgeschoss_floor Terrassentür
   room_Erdgeschoss_id 3
   room_Erdgeschoss_label Erdgeschoss
   room_Esstisch_floor Erdgeschoss
   room_Esstisch_id 0
   room_Esstisch_label Esstisch
   room_Esstisch_type zid
   room_Garderobe_floor Erdgeschoss
   room_Garderobe_id 4
   room_Garderobe_label Garderobe
   room_Garderobe_type rid
   room_Kaminofen_floor Erdgeschoss
   room_Kaminofen_id 4
   room_Kaminofen_label Kaminofen
   room_Kaminofen_type zid
   room_Kueche_floor Erdgeschoss
   room_Kueche_id 3
   room_Kueche_label Küche
   room_Kueche_type rid
   room_Kuechentuer_floor Erdgeschoss
   room_Kuechentuer_id 5
   room_Kuechentuer_label Kuechentuer
   room_Kuechentuer_type zid
   room_Mittendrin_floor Erdgeschoss
   room_Mittendrin_id 6
   room_Mittendrin_label Mittendrin
   room_Mittendrin_type zid
   room_Sitzgruppe_floor Erdgeschoss
   room_Sitzgruppe_id 1
   room_Sitzgruppe_label Sitzgruppe
   room_Sitzgruppe_type zid
   room_Terrassentuer_floor Erdgeschoss
   room_Terrassentuer_id 3
   room_Terrassentuer_label Terrassentuer
   room_Terrassentuer_type zid
   room_VorSchrank_floor Erdgeschoss
   room_VorSchrank_id 2
   room_VorSchrank_label VorSchrank
   room_VorSchrank_type zid
   room_Wohnzimmer_floor Erdgeschoss
   room_Wohnzimmer_id 1
   room_Wohnzimmer_label Wohnzimmer
   room_Wohnzimmer_type rid
   setList    start:noArg {roomba::command($NAME,"start",$EVENT)}
stop:noArg {roomba::command($NAME,"stop",$EVENT)}
dock:noArg {roomba::command($NAME,"dock",$EVENT)}
resume:noArg {roomba::command($NAME,"resume",$EVENT)}
pause:noArg {roomba::command($NAME,"pause",$EVENT)}
Allow:true,false {roomba::allow()}
CarpetBoost:true,false {roomba::setting($NAME,"carpetBoost",$EVENT)}
TwoPass:true,false {roomba::setting($NAME,"twoPass",$EVENT)}
NoAutoPasses:true,false {roomba::setting($NAME,"noAutoPasses",$EVENT)}
NoPP:true,false {roomba::setting($NAME,"noPP",$EVENT)}
VacHigh:true,false {roomba::setting($NAME,"vacHigh",$EVENT)}
BinPause:true,false {roomba::setting($NAME,"binPause",$EVENT)}
OpenOnly:true,false {roomba::setting($NAME,"openOnly",$EVENT)}
ProgHold:true,false {roomba::setting($NAME,"schedHold",$EVENT)}
ProgSun:time {roomba::setsched2($NAME,0,$EVENT)}
ProgMon:time {roomba::setsched2($NAME,1,$EVENT)}
ProgTue:time {roomba::setsched2($NAME,2,$EVENT)}
ProgWed:time {roomba::setsched2($NAME,3,$EVENT)}
ProgThu:time {roomba::setsched2($NAME,4,$EVENT)}
ProgFri:time {roomba::setsched2($NAME,5,$EVENT)}
ProgSat:time {roomba::setsched2($NAME,6,$EVENT)}
maplist:noArg {roomba::listmaps($NAME)}
mapdel {roomba::delmap($NAME,$EVENT)}
SetScheduleAll:true,false {roomba::setsched2($NAME,"all",$EVENT)}
SetSchedule1:true,false {roomba::setsched2($NAME,"1",$EVENT)}
SetSchedule2:true,false {roomba::setsched2($NAME,"2",$EVENT)}
CreateFloor {roomba::createFloor($NAME,$EVENT)}
CreateRoom {roomba::createRoom($NAME,$EVENT)}
CleanEG:Sitzgruppe,Kaminofen,Terrassentuer,VorSchrank,Mittendrin,Esstisch,Kuechentuer,Kueche,Garderobe,Wohnzimmer {roomba::cleanRoom($NAME,"Erdgeschoss",$EVENT)}
   startdir   north
   startx     1080
   starty     500
   stateFormat cmPhaseE (battery %), client mqttclient
   userReadings signalAP:.*signalBssid.* {my $bssid=ReadingsVal('RoombaEmma','signalBssid','');;(($bssid=~/44.*20/)?'FritzBox':(($bssid=~/e8.*0f/)?'FritzRepeater1750':'FritzRepeater3000'))}, mqttclient:.* {Value("RoombaEmmaClient")}
   userattr   LOG_dir SVG_collect SVG_color1 SVG_color2 SVG_color3 SVG_color4 SVG_dir SVG_final SVG_room debug floor_Erdgeschoss_label floor_Erdgeschoss_pMapId floor_Erdgeschoss_userPmapvId noMap:true,false room_Erdgeschoss_floor room_Erdgeschoss_id room_Erdgeschoss_label room_Erdgeschoss_type room_Esstisch_floor room_Esstisch_id room_Esstisch_label room_Esstisch_type room_Garderobe_floor room_Garderobe_id room_Garderobe_label room_Garderobe_type room_Kaminofen_floor room_Kaminofen_id room_Kaminofen_label room_Kaminofen_type room_Kueche_floor room_Kueche_id room_Kueche_label room_Kueche_type room_Kuechentuer_floor room_Kuechentuer_id room_Kuechentuer_label room_Kuechentuer_type room_Mittendrin_floor room_Mittendrin_id room_Mittendrin_label room_Mittendrin_type room_Sitzgruppe_floor room_Sitzgruppe_id room_Sitzgruppe_label room_Sitzgruppe_type room_Terrassentuer_floor room_Terrassentuer_id room_Terrassentuer_label room_Terrassentuer_type room_Testzone_floor room_Testzone_id room_Testzone_label room_Testzone_type room_VorSchrank_floor room_VorSchrank_id room_VorSchrank_label room_VorSchrank_type room_Wohnzimmer_floor room_Wohnzimmer_id room_Wohnzimmer_label room_Wohnzimmer_type startdir:north,west,south,east startx starty
   webCmd     CleanEG:pause:resume:dock

Großartig! Das sieht genau nach dem aus, was ich gesucht habe. Wie komme ich an die pMapID und userPmapvId sowie die Ids und Types (zid = zoneID, rid = roomID?)? Muss ich dazu den Sauger einmal ins Netz lassen und über die App die jeweilige Zone/Raum reinigen lassen und mitlauschen, welche IDs da dann als Reading entstehen und mit welchen Werten befüllt werden?

Und rein interessehalber noch eine Frage: Welche Erkenntnisse lassen sich aus den signal*-Readings ziehen? Ist das der Accesspoint, über den das Gerät gerade im WLAN ist? Lässt sich aus dem AP und der Signalstärke etwas ableiten?


Viele Grüße
Christian

Prof. Dr. Peter Henning

ZitatMuss ich dazu den Sauger einmal ins Netz lassen und über die App die jeweilige Zone/Raum reinigen lassen und mitlauschen, welche IDs da dann als Reading entstehen und mit welchen Werten befüllt werden?
Ja.

ZitatWelche Erkenntnisse lassen sich aus den signal*-Readings ziehen? Ist das der Accesspoint, über den das Gerät gerade im WLAN ist? Lässt sich aus dem AP und der Signalstärke etwas ableiten?
Keine. Ja. Nein.

LG

pah

FSausF

#453
Moin, Männers,
nachdem mein Roomba 960 für eine ganze Weile einigermaßen mit fhem lief, ist mir unlängst die fhem-Maschine abgeraucht (Karte gestorben) und ich habe das zum Anlass genommen, auf einen Rapsi 4 mit SSD umzusteigen.
Dabei auch das Debian modernisiert, neue IP, fhem zurückgespielt.
Es ging überraschend gut, aber der Roomba spielt nicht mehr mit.
Was ich bislang herausfinden konnte:
Ich habe den Roomba 960 auf Werkseinstellungen zurückgesetzt und mir aus dem Git die aktuelle Version von Dorita980 besorgt.
Damit konnte ich mit dem Roomba wohl grundsätzlich Verbindung aufnehmen, aber es scheitert dann irgendwo am Kleingedruckten bei SSL.
Ich vermute, dass das auch der Grund ist, warum der Connect des einschlägigen fhem-devices nicht klappt.
Im Log von fhem steht trotz Verbose 5 im MQTT-Device nichts spannendes:
2024.04.11 17:22:10 5: HttpUtils url=https://192.168.X.XX:8883/ NonBlocking via https
2024.04.11 17:22:10 4: IP: 192.168.X.XX -> 192.168.X.XX

Dorita 980 äußert sich bei getpassword wie folgt:
Robot Data:
{
  ver: '3',
  hostname: 'Roomba-TRALLALFIDIBUMM',
  robotname: 'Heinzelmann',
  ip: '192.168.X.XX',
  mac: 'DC:F5:05:B9:77:A6',
  sw: 'v2.4.17-138',
  sku: 'R960040',
  nc: 0,
  proto: 'mqtt',
  cap: {
    pose: 1,
    ota: 2,
    multiPass: 2,
    pp: 1,
    binFullDetect: 1,
    langOta: 1,
    maps: 1,
    edge: 1,
    eco: 1,
    svcConf: 1
  },
  blid: 'LUKEICHBINDEINVATER'
}
node:events:495
      throw er; // Unhandled 'error' event
      ^

Error: 4014908C7F000000:error:0A000152:SSL routines:final_renegotiate:unsafe legacy renegotiation disabled:../ssl/statem/extensions.c:893:

Emitted 'error' event on TLSSocket instance at:
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  library: 'SSL routines',
  reason: 'unsafe legacy renegotiation disabled',
  code: 'ERR_SSL_UNSAFE_LEGACY_RENEGOTIATION_DISABLED'
}

Das klingt mir so, als ob die Verbindung grundsätzlich klappt und die Maschine den Großteil ihres Status schon rausrückt, dann aber irgendwas am SSL zu meckern hat. Aber was?!?

Habt Ihr mir eventuell und bittebitte einen Tipp, wo ich als Kryptografie-Dummy da hin greifen muß?

Sahara-staubige Grüße aus Frankfurt,

Frank