Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. IRobot Roomba Steuerung

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    477

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

IRobot Roomba Steuerung

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
19 Beiträge 7 Kommentatoren 4.2k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • eric2905E Offline
    eric2905E Offline
    eric2905
    schrieb am zuletzt editiert von
    #8

    So, dann hier die Widgets.

    Die Steuerung:

    [{"tpl":"tplFrame","data":{"visibility-cond":"==","visibility-val":1,"title":"Steuerung","title_color":"black","title_top":"5","title_left":"15","header_height":"30","header_color":"#a0c0ca"},"style":{"left":"560px","top":"60px","width":"345px","height":"423px","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_Clean","visibility-cond":"==","visibility-val":1,"buttontext":"Normal saugen","padding":"5","value":"1"},"style":{"left":"590px","top":"120px","z-index":"20"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_SpotSaugen","visibility-cond":"==","visibility-val":1,"buttontext":"Spot saugen","padding":"5","value":"1"},"style":{"left":"590px","top":"170px","z-index":"20"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_MaxSaugen","visibility-cond":"==","visibility-val":1,"buttontext":"Max saugen","padding":"5","value":"1"},"style":{"left":"590px","top":"220px","z-index":"20"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_DriveStop","visibility-cond":"==","visibility-val":1,"buttontext":"Stop","padding":"5","value":"1"},"style":{"left":"590px","top":"290px","z-index":"20"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_PowerOff","visibility-cond":"==","visibility-val":1,"buttontext":"Power off","padding":"5","value":"1"},"style":{"left":"590px","top":"420px","z-index":"20"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_Findme","visibility-cond":"==","visibility-val":1,"buttontext":"Find me","padding":"5","value":"1"},"style":{"left":"730px","top":"420px","z-index":"20"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_BackToDock","visibility-cond":"==","visibility-val":1,"buttontext":"Zur Basis","padding":"5","value":"1"},"style":{"left":"590px","top":"370px","z-index":"20"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_LeaveDock","visibility-cond":"==","visibility-val":1,"buttontext":"Basis verlassen","padding":"5","value":"1"},"style":{"left":"730px","top":"370px","z-index":"20"},"widgetSet":"jqui"}]
    

    Die Statusinfos:

    [{"tpl":"tplFrame","data":{"visibility-cond":"==","visibility-val":1,"title":"Status","title_color":"black","title_top":"5","title_left":"15","header_height":"30","header_color":"#a0c0ca"},"style":{"left":"50px","top":"60px","width":"435px","height":"453px","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Akkustatus"},"style":{"left":"70px","top":"120px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueFloat","data":{"oid":"node-red.0.Roomba.akkuladung","visibility-cond":"==","visibility-val":1,"is_comma":"true","factor":"1","html_append_singular":" %","html_append_plural":" %"},"style":{"left":"360px","top":"120px","width":"100px","height":"22px","color":"white","text-align":"right","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","z-index":"20"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Akkukapazität max."},"style":{"left":"70px","top":"160px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueFloat","data":{"oid":"node-red.0.Roomba.akkusoll","visibility-cond":"==","visibility-val":1,"is_comma":"true","factor":"1","html_append_singular":" mA","html_append_plural":" mA"},"style":{"left":"360px","top":"160px","width":"100px","height":"22px","color":"white","text-align":"right","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","z-index":"20"},"widgetSet":"basic"},{"tpl":"tplValueFloat","data":{"oid":"node-red.0.Roomba.akkuist","visibility-cond":"==","visibility-val":1,"is_comma":"true","factor":"1","html_append_singular":" mA","html_append_plural":" mA"},"style":{"left":"360px","top":"190px","width":"100px","height":"22px","color":"white","text-align":"right","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","z-index":"20"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Akkukapazität ist"},"style":{"left":"70px","top":"190px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"","visibility-cond":"==","visibility-val":1,"html_prepend":"Saugt gerade"},"style":{"left":"70px","top":"240px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueListHtml8","data":{"oid":"node-red.0.Roomba.saugt","visibility-cond":"==","visibility-val":1,"count":"1","value0":"Nein","value1":"Ja","style1":"background-color: green","style0":"background-color: red","value2":"Offen","style2":"background-color: red; padding:4px;","test_list":"0"},"style":{"left":"360px","top":"240px","color":"white","text-align":"center","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","width":"100px","height":"22px","z-index":"20","overflow-x":""},"widgetSet":"basic"},{"tpl":"tplValueListHtml8","data":{"oid":"node-red.0.Roomba.schmutzbehaelter","visibility-cond":"==","visibility-val":1,"count":"1","value0":"Nein","value1":"Ja","style1":"background-color: red","style0":"background-color: green","value2":"Offen","style2":"background-color: red; padding:4px;","test_list":"0"},"style":{"left":"360px","top":"280px","color":"white","text-align":"center","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","width":"100px","height":"22px","z-index":"20","overflow-x":""},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"","visibility-cond":"==","visibility-val":1,"html_prepend":"Staubbehälter voll"},"style":{"left":"70px","top":"280px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"","visibility-cond":"==","visibility-val":1,"html_prepend":"Status"},"style":{"left":"70px","top":"360px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"node-red.0.Roomba.status","visibility-cond":"==","visibility-val":1},"style":{"left":"140px","top":"360px","z-index":"20","color":"rgb(255, 255, 255)","text-align":"right","text-shadow":"none","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"16px","line-height":"18px","letter-spacing":"0","word-spacing":"0px","width":"320px","height":"20px"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Gefahrene Strecke"},"style":{"left":"70px","top":"390px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueFloat","data":{"oid":"node-red.0.Roomba.strecke","visibility-cond":"==","visibility-val":1,"is_comma":"true","factor":"","html_append_singular":" m","html_append_plural":" m"},"style":{"left":"360px","top":"390px","width":"100px","height":"22px","color":"white","text-align":"right","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","z-index":"20"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Temperatur"},"style":{"left":"70px","top":"420px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueFloat","data":{"oid":"node-red.0.Roomba.temperatur","visibility-cond":"==","visibility-val":1,"is_comma":"true","factor":"","html_append_singular":" ºC","html_append_plural":" ºC"},"style":{"left":"360px","top":"420px","width":"100px","height":"22px","color":"white","text-align":"right","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","z-index":"20"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"node-red.0.Roomba.Statusuhrzeit","visibility-cond":"==","visibility-val":1,"html_prepend":"(Stand : ","html_append":")"},"style":{"left":"130px","top":"66px","color":"black","text-align":"left","width":"250px","height":"20px","z-index":"20","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-weight":"bold","font-size":"large"},"widgetSet":"basic"}]
    

    Am node-red-Flow für die Statusinfos habe ich noch was angepasst - die Uhrzeit der Statusabfrage wird nun auch in einen Datenpunkt geschrieben und im Widget mit angezeigt. So sieht man immer, wie alt der angezeigte Status ist.

    Hier der überarbeitete Flow "Roomba Status" (ist auch im Posting oben angepasst):

    [{"id":"a5a2adf.f5a5d5","type":"inject","name":"Full Status jede 1 Minute","topic":"","payload":"","payloadType":"date","repeat":"60","crontab":"","once":true,"x":180,"y":62,"z":"7859072e.87a6f8","wires":[["504181f6.afbe8","182e191.fe7d1e7"]]},{"id":"504181f6.afbe8","type":"http request","name":"Roomba command","method":"GET","ret":"txt","url":"http://192.168.178.55/full_status.xml","x":408,"y":63,"z":"7859072e.87a6f8","wires":[["b7123aff.48edc8","3050ead5.cfaf16","6c22b045.93dd5","c8c15059.373eb","205772fb.dfa88e","bee92f3c.4116d","f8aef704.075108","a899536.f5766b","666e081d.9991f8"]]},{"id":"b7123aff.48edc8","type":"function","name":"Name auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<name>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":658,"y":63,"z":"7859072e.87a6f8","wires":[["5f503576.a0afcc"]]},{"id":"5f503576.a0afcc","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.name","ack":"false","autoCreate":"true","x":990,"y":64,"z":"7859072e.87a6f8","wires":[]},{"id":"3050ead5.cfaf16","type":"function","name":"Strecke auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<cleaning_distance>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":664,"y":133,"z":"7859072e.87a6f8","wires":[["b475f945.4b8a08"]]},{"id":"b475f945.4b8a08","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.strecke","ack":"false","autoCreate":"true","x":996,"y":134,"z":"7859072e.87a6f8","wires":[]},{"id":"6c22b045.93dd5","type":"function","name":"Schmutzbehälter auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<bin_status>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":693,"y":191,"z":"7859072e.87a6f8","wires":[["11db5550.ee24ab"]]},{"id":"11db5550.ee24ab","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.schmutzbehaelter","ack":"false","autoCreate":"true","x":1029,"y":193,"z":"7859072e.87a6f8","wires":[]},{"id":"c8c15059.373eb","type":"function","name":"Akkuladung auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<battery_charge>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":666,"y":259,"z":"7859072e.87a6f8","wires":[["8c8c5798.7373a8"]]},{"id":"8c8c5798.7373a8","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.akkuladung","ack":"false","autoCreate":"true","x":1030,"y":260,"z":"7859072e.87a6f8","wires":[]},{"id":"205772fb.dfa88e","type":"function","name":"Akkukapazität (Soll) auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<capacity>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":688,"y":319,"z":"7859072e.87a6f8","wires":[["5c1179c1.a3ee88"]]},{"id":"5c1179c1.a3ee88","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.akkusoll","ack":"false","autoCreate":"true","x":1036,"y":319,"z":"7859072e.87a6f8","wires":[]},{"id":"bee92f3c.4116d","type":"function","name":"Akkukapazität (Ist) auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<charge>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":690,"y":378,"z":"7859072e.87a6f8","wires":[["334dc150.ccb23e"]]},{"id":"334dc150.ccb23e","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.akkuist","ack":"false","autoCreate":"true","x":1026,"y":380,"z":"7859072e.87a6f8","wires":[]},{"id":"f8aef704.075108","type":"function","name":"Temperatur auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<temperature>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":692,"y":436,"z":"7859072e.87a6f8","wires":[["2712b369.d8ed4c"]]},{"id":"2712b369.d8ed4c","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.temperatur","ack":"false","autoCreate":"true","x":1028,"y":438,"z":"7859072e.87a6f8","wires":[]},{"id":"a899536.f5766b","type":"function","name":"Status auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<cleaner_state>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\n\nif (daten == \"st_base\"){\n    daten = \"Auf Basis, nicht ladend\";\n}\n\nif (daten == \"st_base_recon\"){\n    daten = \"Auf Basis, Auffrischungsladung\";\n}\n\nif (daten == \"st_base_full\"){\n    daten = \"Auf Basis, normal aufladend\";\n}\n\nif (daten == \"st_base_trickle\"){\n    daten = \"Auf Basis, Erhaltungsladung\";\n}\n\nif (daten == \"st_base_wait\"){\n    daten = \"Auf Basis, wartend\";\n}\n\nif (daten == \"st_plug\"){\n    daten = \"Eingesteckt, nicht ladend\";\n}\n\nif (daten == \"st_plug_recon\"){\n    daten = \"Eingesteckt, Auffrischungsladung\";\n}\n\nif (daten == \"st_plug_full\"){\n    daten = \"Eingesteckt, normal aufladend\";\n}\n\nif (daten == \"st_plug_trickle\"){\n    daten = \"Eingesteckt, Erhaltungsladung\";\n}\n\nif (daten == \"st_plug_wait\"){\n    daten = \"Eingesteckt, wartend\";\n}\n\nif (daten == \"st_stopped\"){\n    daten = \"Angehalten\";\n}\n\nif (daten == \"st_clean\"){\n    daten = \"Reinigung läuft\";\n}\n\nif (daten == \"st_cleanstop\"){\n    daten = \"Reinigung gestoppt\";\n}\n\nif (daten == \"st_clean_spot\"){\n    daten = \"Spot-Reinigung\";\n}\n\nif (daten == \"st_clean_max\"){\n    daten = \"Max-Reinigung\";\n}\n\nif (daten == \"st_delayed\"){\n    daten = \"Reinigung verzögert, startet gleich\";\n}\n\nif (daten == \"st_dock\"){\n    daten = \"Suche Basis\";\n}\n\nif (daten == \"st_pickup\"){\n    daten = \"Roomba hochgehoben\";\n}\n\nif (daten == \"st_remote\"){\n    daten = \"Ferngesteuertes fahren\";\n}\n\nif (daten == \"st_wait\"){\n    daten = \"Warte auf Befehle\";\n}\n\nif (daten == \"st_off\"){\n    daten = \"Aus\";\n}\n\nif (daten == \"st_error\"){\n    daten = \"Fehler\";\n}\n\nif (daten == \"st_locate\"){\n    daten = \"Finde mich\";\n}\n\nif (daten == \"st_unknown\"){\n    daten = \"Status unbekannt\";\n}\n\n\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":692,"y":497,"z":"7859072e.87a6f8","wires":[["f6e00de3.091ff"]]},{"id":"f6e00de3.091ff","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.status","ack":"false","autoCreate":"true","x":1028,"y":499,"z":"7859072e.87a6f8","wires":[]},{"id":"666e081d.9991f8","type":"function","name":"Saugt gerade auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<cleaning>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":706,"y":556,"z":"7859072e.87a6f8","wires":[["c7157fc8.38ea8"]]},{"id":"c7157fc8.38ea8","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.saugt","ack":"false","autoCreate":"true","x":1042,"y":558,"z":"7859072e.87a6f8","wires":[]},{"id":"182e191.fe7d1e7","type":"function","name":"Status-Uhrzeit ermitteln","func":"msg = {};\n\n\nfunction addZero(i) {\n    if (i < 10) {\n        i = \"0\" + i;\n    }\n    return i;\n}\n\n\nvar currentdate = new Date(); \nvar h = addZero(currentdate.getHours());\nvar m = addZero(currentdate.getMinutes());\nvar s = addZero(currentdate.getSeconds());\n\n\nvar datetime = h + \":\" + m + \":\" + s;\n\nmsg.payload = datetime;\nreturn msg;\n","outputs":1,"noerr":0,"x":701,"y":631,"z":"7859072e.87a6f8","wires":[["57efa4f2.a8105c"]]},{"id":"57efa4f2.a8105c","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.Statusuhrzeit","ack":"false","autoCreate":"true","x":1044,"y":636,"z":"7859072e.87a6f8","wires":[]}]</cleaning></cleaner_state></temperature></charge></capacity></battery_charge></bin_status></cleaning_distance></name>
    

    Viel Spaß damit :-)

    Gruß,

    Eric

    Roses are red, violets are blue,

    if I listen to metal, my neighbours do too

    smarthomegirlS 1 Antwort Letzte Antwort
    0
    • HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #9

      Welche Roombas gehen denn per WLAN? und wo gibt's das WLAN-Modul?

      Gruß

      Rainer

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      1 Antwort Letzte Antwort
      0
      • H Offline
        H Offline
        hometm
        schrieb am zuletzt editiert von
        #10

        Such mal nach roowifi im Netz. Bestellt habe ich das Modul vor 3 Wochen, aber erhalten habe ich es noch nicht. Daher kann ich noch keine Aussage dazu machen.

        Gesendet von meinem VT10416-2 mit Tapatalk

        1 Antwort Letzte Antwort
        0
        • eric2905E Offline
          eric2905E Offline
          eric2905
          schrieb am zuletzt editiert von
          #11

          Hallo Rainer,

          @Homoran:

          Welche Roombas gehen denn per WLAN? und wo gibt's das WLAN-Modul? `
          derzeit geht die 500/600er-Serie und für die 700/800er-Serie ist gerade auf Kickstarter wieder ein Projekt gestartet => Infos hier : http://www.thinkingcleaner.com

          In Deutschland kannst Du das WLAN-Modul hier kaufen => http://www.homewizard.de/thinking-clean … 00-eu.html

          Da habe ich meinen auch bestellt (ohne Versandkosten). Ging sehr zügig.

          Gruß,

          Eric

          Roses are red, violets are blue,

          if I listen to metal, my neighbours do too

          1 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            tesso
            schrieb am zuletzt editiert von
            #12

            Ich kann die flows nicht testen. Suche immer noch nach den verlorenen nodes in/out.

            Noch fehlt mir die Idee für eine Lösung.

            1 Antwort Letzte Antwort
            0
            • eric2905E Offline
              eric2905E Offline
              eric2905
              schrieb am zuletzt editiert von
              #13

              Moin,

              hast Du den node-red-Adapter schon deinstalliert und neu installiert?

              Gruß,

              Eric

              Roses are red, violets are blue,

              if I listen to metal, my neighbours do too

              1 Antwort Letzte Antwort
              0
              • derAugeD Offline
                derAugeD Offline
                derAuge
                schrieb am zuletzt editiert von
                #14

                Frage:

                ist dieser Robi dafür brauchbar?

                http://onlineshop.real.de/Saugroboter-R … 8947001001

                oder

                http://www.comtech.de/Markenshops/iRobo ... augroboter

                Gruß

                Jürgen

                1 Antwort Letzte Antwort
                0
                • H Offline
                  H Offline
                  hometm
                  schrieb am zuletzt editiert von
                  #15

                  Ich habe einen 870 und bin voll zufrieden.

                  Meiner Meinung nach sind die räumlichen Gegebenheiten viel wichtiger als das Modell.

                  Wenn z.B.

                  • Treppen vorhanden sind

                  • Gardinen bis auf den Boden reichen

                  • Kabel herum liegen

                  • Der sauger sich unter niedrigen Möbelstücken verklemmt

                  • Teppichfranzen

                  -…

                  Dann ist der Spass schnell vorbei. Daher sollte man sich so ein Gerät da bestellen, wo man es auch ohne Probleme zurück geben kann

                  Tobias

                  Gesendet von meinem VT10416-2 mit Tapatalk

                  1 Antwort Letzte Antwort
                  0
                  • T Offline
                    T Offline
                    tesso
                    schrieb am zuletzt editiert von
                    #16

                    Cool, endlich ist der Roomba in der Haussteuerung.

                    1 Antwort Letzte Antwort
                    0
                    • A Offline
                      A Offline
                      Arminhh
                      schrieb am zuletzt editiert von
                      #17

                      moin

                      ich habe mir gerade eine Szene erstellt wenn der Staubbehälter voll ist, das ich eine Nachricht bekomme. Funktioniert auch soweit, ausser das nach dem leeren die Variable nicht zurückgesetzt wird. Hat der Staubbehälter einen Sensor? Wenn ja wo? Oder wie wird der Füllstand sonst ausgewertet?

                      mfg

                      Armin

                      1 Antwort Letzte Antwort
                      0
                      • eric2905E Offline
                        eric2905E Offline
                        eric2905
                        schrieb am zuletzt editiert von
                        #18

                        Moin,

                        eh, … bei mir wird die Variable (aus dem Flow) zurückgesetzt ... allerdings habe ich noch nie darauf geachtet, wann.

                        Evtl. nach dem nächsten Clean-Start?

                        Mal probieren.

                        Ist die Verarbeitung über eine Szene einfacher, als über einen Flow?

                        Ich habe mich noch nicht mit den Szenen befasst, daher meine Frage.

                        Gruß,

                        Eric

                        Roses are red, violets are blue,

                        if I listen to metal, my neighbours do too

                        1 Antwort Letzte Antwort
                        0
                        • eric2905E eric2905

                          So, dann hier die Widgets.

                          Die Steuerung:

                          [{"tpl":"tplFrame","data":{"visibility-cond":"==","visibility-val":1,"title":"Steuerung","title_color":"black","title_top":"5","title_left":"15","header_height":"30","header_color":"#a0c0ca"},"style":{"left":"560px","top":"60px","width":"345px","height":"423px","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_Clean","visibility-cond":"==","visibility-val":1,"buttontext":"Normal saugen","padding":"5","value":"1"},"style":{"left":"590px","top":"120px","z-index":"20"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_SpotSaugen","visibility-cond":"==","visibility-val":1,"buttontext":"Spot saugen","padding":"5","value":"1"},"style":{"left":"590px","top":"170px","z-index":"20"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_MaxSaugen","visibility-cond":"==","visibility-val":1,"buttontext":"Max saugen","padding":"5","value":"1"},"style":{"left":"590px","top":"220px","z-index":"20"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_DriveStop","visibility-cond":"==","visibility-val":1,"buttontext":"Stop","padding":"5","value":"1"},"style":{"left":"590px","top":"290px","z-index":"20"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_PowerOff","visibility-cond":"==","visibility-val":1,"buttontext":"Power off","padding":"5","value":"1"},"style":{"left":"590px","top":"420px","z-index":"20"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_Findme","visibility-cond":"==","visibility-val":1,"buttontext":"Find me","padding":"5","value":"1"},"style":{"left":"730px","top":"420px","z-index":"20"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_BackToDock","visibility-cond":"==","visibility-val":1,"buttontext":"Zur Basis","padding":"5","value":"1"},"style":{"left":"590px","top":"370px","z-index":"20"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"node-red.0.Roomba.command_LeaveDock","visibility-cond":"==","visibility-val":1,"buttontext":"Basis verlassen","padding":"5","value":"1"},"style":{"left":"730px","top":"370px","z-index":"20"},"widgetSet":"jqui"}]
                          

                          Die Statusinfos:

                          [{"tpl":"tplFrame","data":{"visibility-cond":"==","visibility-val":1,"title":"Status","title_color":"black","title_top":"5","title_left":"15","header_height":"30","header_color":"#a0c0ca"},"style":{"left":"50px","top":"60px","width":"435px","height":"453px","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Akkustatus"},"style":{"left":"70px","top":"120px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueFloat","data":{"oid":"node-red.0.Roomba.akkuladung","visibility-cond":"==","visibility-val":1,"is_comma":"true","factor":"1","html_append_singular":" %","html_append_plural":" %"},"style":{"left":"360px","top":"120px","width":"100px","height":"22px","color":"white","text-align":"right","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","z-index":"20"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Akkukapazität max."},"style":{"left":"70px","top":"160px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueFloat","data":{"oid":"node-red.0.Roomba.akkusoll","visibility-cond":"==","visibility-val":1,"is_comma":"true","factor":"1","html_append_singular":" mA","html_append_plural":" mA"},"style":{"left":"360px","top":"160px","width":"100px","height":"22px","color":"white","text-align":"right","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","z-index":"20"},"widgetSet":"basic"},{"tpl":"tplValueFloat","data":{"oid":"node-red.0.Roomba.akkuist","visibility-cond":"==","visibility-val":1,"is_comma":"true","factor":"1","html_append_singular":" mA","html_append_plural":" mA"},"style":{"left":"360px","top":"190px","width":"100px","height":"22px","color":"white","text-align":"right","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","z-index":"20"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Akkukapazität ist"},"style":{"left":"70px","top":"190px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"","visibility-cond":"==","visibility-val":1,"html_prepend":"Saugt gerade"},"style":{"left":"70px","top":"240px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueListHtml8","data":{"oid":"node-red.0.Roomba.saugt","visibility-cond":"==","visibility-val":1,"count":"1","value0":"Nein","value1":"Ja","style1":"background-color: green","style0":"background-color: red","value2":"Offen","style2":"background-color: red; padding:4px;","test_list":"0"},"style":{"left":"360px","top":"240px","color":"white","text-align":"center","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","width":"100px","height":"22px","z-index":"20","overflow-x":""},"widgetSet":"basic"},{"tpl":"tplValueListHtml8","data":{"oid":"node-red.0.Roomba.schmutzbehaelter","visibility-cond":"==","visibility-val":1,"count":"1","value0":"Nein","value1":"Ja","style1":"background-color: red","style0":"background-color: green","value2":"Offen","style2":"background-color: red; padding:4px;","test_list":"0"},"style":{"left":"360px","top":"280px","color":"white","text-align":"center","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","width":"100px","height":"22px","z-index":"20","overflow-x":""},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"","visibility-cond":"==","visibility-val":1,"html_prepend":"Staubbehälter voll"},"style":{"left":"70px","top":"280px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"","visibility-cond":"==","visibility-val":1,"html_prepend":"Status"},"style":{"left":"70px","top":"360px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"node-red.0.Roomba.status","visibility-cond":"==","visibility-val":1},"style":{"left":"140px","top":"360px","z-index":"20","color":"rgb(255, 255, 255)","text-align":"right","text-shadow":"none","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"16px","line-height":"18px","letter-spacing":"0","word-spacing":"0px","width":"320px","height":"20px"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Gefahrene Strecke"},"style":{"left":"70px","top":"390px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueFloat","data":{"oid":"node-red.0.Roomba.strecke","visibility-cond":"==","visibility-val":1,"is_comma":"true","factor":"","html_append_singular":" m","html_append_plural":" m"},"style":{"left":"360px","top":"390px","width":"100px","height":"22px","color":"white","text-align":"right","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","z-index":"20"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"nothing_selected","visibility-cond":"==","visibility-val":1,"html_prepend":"Temperatur"},"style":{"left":"70px","top":"420px","width":"200px","height":"20px","color":"white","text-align":"left","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueFloat","data":{"oid":"node-red.0.Roomba.temperatur","visibility-cond":"==","visibility-val":1,"is_comma":"true","factor":"","html_append_singular":" ºC","html_append_plural":" ºC"},"style":{"left":"360px","top":"420px","width":"100px","height":"22px","color":"white","text-align":"right","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-variant":"normal","font-weight":"bold","font-size":"large","z-index":"20"},"widgetSet":"basic"},{"tpl":"tplValueString","data":{"oid":"node-red.0.Roomba.Statusuhrzeit","visibility-cond":"==","visibility-val":1,"html_prepend":"(Stand : ","html_append":")"},"style":{"left":"130px","top":"66px","color":"black","text-align":"left","width":"250px","height":"20px","z-index":"20","font-family":"Arial, Helvetica, sans-serif","font-style":"normal","font-weight":"bold","font-size":"large"},"widgetSet":"basic"}]
                          

                          Am node-red-Flow für die Statusinfos habe ich noch was angepasst - die Uhrzeit der Statusabfrage wird nun auch in einen Datenpunkt geschrieben und im Widget mit angezeigt. So sieht man immer, wie alt der angezeigte Status ist.

                          Hier der überarbeitete Flow "Roomba Status" (ist auch im Posting oben angepasst):

                          [{"id":"a5a2adf.f5a5d5","type":"inject","name":"Full Status jede 1 Minute","topic":"","payload":"","payloadType":"date","repeat":"60","crontab":"","once":true,"x":180,"y":62,"z":"7859072e.87a6f8","wires":[["504181f6.afbe8","182e191.fe7d1e7"]]},{"id":"504181f6.afbe8","type":"http request","name":"Roomba command","method":"GET","ret":"txt","url":"http://192.168.178.55/full_status.xml","x":408,"y":63,"z":"7859072e.87a6f8","wires":[["b7123aff.48edc8","3050ead5.cfaf16","6c22b045.93dd5","c8c15059.373eb","205772fb.dfa88e","bee92f3c.4116d","f8aef704.075108","a899536.f5766b","666e081d.9991f8"]]},{"id":"b7123aff.48edc8","type":"function","name":"Name auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<name>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":658,"y":63,"z":"7859072e.87a6f8","wires":[["5f503576.a0afcc"]]},{"id":"5f503576.a0afcc","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.name","ack":"false","autoCreate":"true","x":990,"y":64,"z":"7859072e.87a6f8","wires":[]},{"id":"3050ead5.cfaf16","type":"function","name":"Strecke auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<cleaning_distance>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":664,"y":133,"z":"7859072e.87a6f8","wires":[["b475f945.4b8a08"]]},{"id":"b475f945.4b8a08","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.strecke","ack":"false","autoCreate":"true","x":996,"y":134,"z":"7859072e.87a6f8","wires":[]},{"id":"6c22b045.93dd5","type":"function","name":"Schmutzbehälter auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<bin_status>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":693,"y":191,"z":"7859072e.87a6f8","wires":[["11db5550.ee24ab"]]},{"id":"11db5550.ee24ab","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.schmutzbehaelter","ack":"false","autoCreate":"true","x":1029,"y":193,"z":"7859072e.87a6f8","wires":[]},{"id":"c8c15059.373eb","type":"function","name":"Akkuladung auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<battery_charge>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":666,"y":259,"z":"7859072e.87a6f8","wires":[["8c8c5798.7373a8"]]},{"id":"8c8c5798.7373a8","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.akkuladung","ack":"false","autoCreate":"true","x":1030,"y":260,"z":"7859072e.87a6f8","wires":[]},{"id":"205772fb.dfa88e","type":"function","name":"Akkukapazität (Soll) auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<capacity>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":688,"y":319,"z":"7859072e.87a6f8","wires":[["5c1179c1.a3ee88"]]},{"id":"5c1179c1.a3ee88","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.akkusoll","ack":"false","autoCreate":"true","x":1036,"y":319,"z":"7859072e.87a6f8","wires":[]},{"id":"bee92f3c.4116d","type":"function","name":"Akkukapazität (Ist) auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<charge>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":690,"y":378,"z":"7859072e.87a6f8","wires":[["334dc150.ccb23e"]]},{"id":"334dc150.ccb23e","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.akkuist","ack":"false","autoCreate":"true","x":1026,"y":380,"z":"7859072e.87a6f8","wires":[]},{"id":"f8aef704.075108","type":"function","name":"Temperatur auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<temperature>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":692,"y":436,"z":"7859072e.87a6f8","wires":[["2712b369.d8ed4c"]]},{"id":"2712b369.d8ed4c","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.temperatur","ack":"false","autoCreate":"true","x":1028,"y":438,"z":"7859072e.87a6f8","wires":[]},{"id":"a899536.f5766b","type":"function","name":"Status auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<cleaner_state>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\n\nif (daten == \"st_base\"){\n    daten = \"Auf Basis, nicht ladend\";\n}\n\nif (daten == \"st_base_recon\"){\n    daten = \"Auf Basis, Auffrischungsladung\";\n}\n\nif (daten == \"st_base_full\"){\n    daten = \"Auf Basis, normal aufladend\";\n}\n\nif (daten == \"st_base_trickle\"){\n    daten = \"Auf Basis, Erhaltungsladung\";\n}\n\nif (daten == \"st_base_wait\"){\n    daten = \"Auf Basis, wartend\";\n}\n\nif (daten == \"st_plug\"){\n    daten = \"Eingesteckt, nicht ladend\";\n}\n\nif (daten == \"st_plug_recon\"){\n    daten = \"Eingesteckt, Auffrischungsladung\";\n}\n\nif (daten == \"st_plug_full\"){\n    daten = \"Eingesteckt, normal aufladend\";\n}\n\nif (daten == \"st_plug_trickle\"){\n    daten = \"Eingesteckt, Erhaltungsladung\";\n}\n\nif (daten == \"st_plug_wait\"){\n    daten = \"Eingesteckt, wartend\";\n}\n\nif (daten == \"st_stopped\"){\n    daten = \"Angehalten\";\n}\n\nif (daten == \"st_clean\"){\n    daten = \"Reinigung läuft\";\n}\n\nif (daten == \"st_cleanstop\"){\n    daten = \"Reinigung gestoppt\";\n}\n\nif (daten == \"st_clean_spot\"){\n    daten = \"Spot-Reinigung\";\n}\n\nif (daten == \"st_clean_max\"){\n    daten = \"Max-Reinigung\";\n}\n\nif (daten == \"st_delayed\"){\n    daten = \"Reinigung verzögert, startet gleich\";\n}\n\nif (daten == \"st_dock\"){\n    daten = \"Suche Basis\";\n}\n\nif (daten == \"st_pickup\"){\n    daten = \"Roomba hochgehoben\";\n}\n\nif (daten == \"st_remote\"){\n    daten = \"Ferngesteuertes fahren\";\n}\n\nif (daten == \"st_wait\"){\n    daten = \"Warte auf Befehle\";\n}\n\nif (daten == \"st_off\"){\n    daten = \"Aus\";\n}\n\nif (daten == \"st_error\"){\n    daten = \"Fehler\";\n}\n\nif (daten == \"st_locate\"){\n    daten = \"Finde mich\";\n}\n\nif (daten == \"st_unknown\"){\n    daten = \"Status unbekannt\";\n}\n\n\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":692,"y":497,"z":"7859072e.87a6f8","wires":[["f6e00de3.091ff"]]},{"id":"f6e00de3.091ff","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.status","ack":"false","autoCreate":"true","x":1028,"y":499,"z":"7859072e.87a6f8","wires":[]},{"id":"666e081d.9991f8","type":"function","name":"Saugt gerade auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<cleaning>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":706,"y":556,"z":"7859072e.87a6f8","wires":[["c7157fc8.38ea8"]]},{"id":"c7157fc8.38ea8","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.saugt","ack":"false","autoCreate":"true","x":1042,"y":558,"z":"7859072e.87a6f8","wires":[]},{"id":"182e191.fe7d1e7","type":"function","name":"Status-Uhrzeit ermitteln","func":"msg = {};\n\n\nfunction addZero(i) {\n    if (i < 10) {\n        i = \"0\" + i;\n    }\n    return i;\n}\n\n\nvar currentdate = new Date(); \nvar h = addZero(currentdate.getHours());\nvar m = addZero(currentdate.getMinutes());\nvar s = addZero(currentdate.getSeconds());\n\n\nvar datetime = h + \":\" + m + \":\" + s;\n\nmsg.payload = datetime;\nreturn msg;\n","outputs":1,"noerr":0,"x":701,"y":631,"z":"7859072e.87a6f8","wires":[["57efa4f2.a8105c"]]},{"id":"57efa4f2.a8105c","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.Statusuhrzeit","ack":"false","autoCreate":"true","x":1044,"y":636,"z":"7859072e.87a6f8","wires":[]}]</cleaning></cleaner_state></temperature></charge></capacity></battery_charge></bin_status></cleaning_distance></name>
                          

                          Viel Spaß damit :-)

                          Gruß,

                          Eric

                          smarthomegirlS Offline
                          smarthomegirlS Offline
                          smarthomegirl
                          schrieb am zuletzt editiert von smarthomegirl
                          #19

                          @eric2905 sagte in IRobot Roomba Steuerung:

                          Am node-red-Flow für die Statusinfos habe ich noch was angepasst - die Uhrzeit der Statusabfrage wird nun auch in einen Datenpunkt geschrieben und im Widget mit angezeigt. So sieht man immer, wie alt der angezeigte Status ist.

                          Hier der überarbeitete Flow "Roomba Status" (ist auch im Posting oben angepasst):

                          [{"id":"a5a2adf.f5a5d5","type":"inject","name":"Full Status jede 1 Minute","topic":"","payload":"","payloadType":"date","repeat":"60","crontab":"","once":true,"x":180,"y":62,"z":"7859072e.87a6f8","wires":[["504181f6.afbe8","182e191.fe7d1e7"]]},{"id":"504181f6.afbe8","type":"http request","name":"Roomba command","method":"GET","ret":"txt","url":"http://192.168.178.55/full_status.xml","x":408,"y":63,"z":"7859072e.87a6f8","wires":[["b7123aff.48edc8","3050ead5.cfaf16","6c22b045.93dd5","c8c15059.373eb","205772fb.dfa88e","bee92f3c.4116d","f8aef704.075108","a899536.f5766b","666e081d.9991f8"]]},{"id":"b7123aff.48edc8","type":"function","name":"Name auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<name>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":658,"y":63,"z":"7859072e.87a6f8","wires":[["5f503576.a0afcc"]]},{"id":"5f503576.a0afcc","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.name","ack":"false","autoCreate":"true","x":990,"y":64,"z":"7859072e.87a6f8","wires":[]},{"id":"3050ead5.cfaf16","type":"function","name":"Strecke auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<cleaning_distance>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":664,"y":133,"z":"7859072e.87a6f8","wires":[["b475f945.4b8a08"]]},{"id":"b475f945.4b8a08","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.strecke","ack":"false","autoCreate":"true","x":996,"y":134,"z":"7859072e.87a6f8","wires":[]},{"id":"6c22b045.93dd5","type":"function","name":"Schmutzbehälter auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<bin_status>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":693,"y":191,"z":"7859072e.87a6f8","wires":[["11db5550.ee24ab"]]},{"id":"11db5550.ee24ab","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.schmutzbehaelter","ack":"false","autoCreate":"true","x":1029,"y":193,"z":"7859072e.87a6f8","wires":[]},{"id":"c8c15059.373eb","type":"function","name":"Akkuladung auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<battery_charge>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":666,"y":259,"z":"7859072e.87a6f8","wires":[["8c8c5798.7373a8"]]},{"id":"8c8c5798.7373a8","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.akkuladung","ack":"false","autoCreate":"true","x":1030,"y":260,"z":"7859072e.87a6f8","wires":[]},{"id":"205772fb.dfa88e","type":"function","name":"Akkukapazität (Soll) auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<capacity>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":688,"y":319,"z":"7859072e.87a6f8","wires":[["5c1179c1.a3ee88"]]},{"id":"5c1179c1.a3ee88","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.akkusoll","ack":"false","autoCreate":"true","x":1036,"y":319,"z":"7859072e.87a6f8","wires":[]},{"id":"bee92f3c.4116d","type":"function","name":"Akkukapazität (Ist) auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<charge>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":690,"y":378,"z":"7859072e.87a6f8","wires":[["334dc150.ccb23e"]]},{"id":"334dc150.ccb23e","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.akkuist","ack":"false","autoCreate":"true","x":1026,"y":380,"z":"7859072e.87a6f8","wires":[]},{"id":"f8aef704.075108","type":"function","name":"Temperatur auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<temperature>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":692,"y":436,"z":"7859072e.87a6f8","wires":[["2712b369.d8ed4c"]]},{"id":"2712b369.d8ed4c","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.temperatur","ack":"false","autoCreate":"true","x":1028,"y":438,"z":"7859072e.87a6f8","wires":[]},{"id":"a899536.f5766b","type":"function","name":"Status auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<cleaner_state>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\n\nif (daten == \"st_base\"){\n    daten = \"Auf Basis, nicht ladend\";\n}\n\nif (daten == \"st_base_recon\"){\n    daten = \"Auf Basis, Auffrischungsladung\";\n}\n\nif (daten == \"st_base_full\"){\n    daten = \"Auf Basis, normal aufladend\";\n}\n\nif (daten == \"st_base_trickle\"){\n    daten = \"Auf Basis, Erhaltungsladung\";\n}\n\nif (daten == \"st_base_wait\"){\n    daten = \"Auf Basis, wartend\";\n}\n\nif (daten == \"st_plug\"){\n    daten = \"Eingesteckt, nicht ladend\";\n}\n\nif (daten == \"st_plug_recon\"){\n    daten = \"Eingesteckt, Auffrischungsladung\";\n}\n\nif (daten == \"st_plug_full\"){\n    daten = \"Eingesteckt, normal aufladend\";\n}\n\nif (daten == \"st_plug_trickle\"){\n    daten = \"Eingesteckt, Erhaltungsladung\";\n}\n\nif (daten == \"st_plug_wait\"){\n    daten = \"Eingesteckt, wartend\";\n}\n\nif (daten == \"st_stopped\"){\n    daten = \"Angehalten\";\n}\n\nif (daten == \"st_clean\"){\n    daten = \"Reinigung läuft\";\n}\n\nif (daten == \"st_cleanstop\"){\n    daten = \"Reinigung gestoppt\";\n}\n\nif (daten == \"st_clean_spot\"){\n    daten = \"Spot-Reinigung\";\n}\n\nif (daten == \"st_clean_max\"){\n    daten = \"Max-Reinigung\";\n}\n\nif (daten == \"st_delayed\"){\n    daten = \"Reinigung verzögert, startet gleich\";\n}\n\nif (daten == \"st_dock\"){\n    daten = \"Suche Basis\";\n}\n\nif (daten == \"st_pickup\"){\n    daten = \"Roomba hochgehoben\";\n}\n\nif (daten == \"st_remote\"){\n    daten = \"Ferngesteuertes fahren\";\n}\n\nif (daten == \"st_wait\"){\n    daten = \"Warte auf Befehle\";\n}\n\nif (daten == \"st_off\"){\n    daten = \"Aus\";\n}\n\nif (daten == \"st_error\"){\n    daten = \"Fehler\";\n}\n\nif (daten == \"st_locate\"){\n    daten = \"Finde mich\";\n}\n\nif (daten == \"st_unknown\"){\n    daten = \"Status unbekannt\";\n}\n\n\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":692,"y":497,"z":"7859072e.87a6f8","wires":[["f6e00de3.091ff"]]},{"id":"f6e00de3.091ff","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.status","ack":"false","autoCreate":"true","x":1028,"y":499,"z":"7859072e.87a6f8","wires":[]},{"id":"666e081d.9991f8","type":"function","name":"Saugt gerade auswerten","func":"var quelle = msg.payload;\n\nmsg1 = {};\n\nsuche = \"<cleaning>\";\nsuche_laenge = (suche && suche.length);\n\n//  Suchwort \"suche\" finden \n// var daten_startpos = quelle.indexOf('cleaning_distance');\nvar daten_startpos = quelle.indexOf(suche);\nvar daten = quelle.substr(daten_startpos + suche_laenge, 50);\n\n// Finde \"<\" und merke dir die Position. Schneide aus von 0 bis Position\nvar daten_endpos = daten.indexOf('<');\ndaten = daten.substring(0, daten_endpos);\nmsg1.payload = daten; // String\n\nreturn [msg1];","outputs":"1","noerr":0,"x":706,"y":556,"z":"7859072e.87a6f8","wires":[["c7157fc8.38ea8"]]},{"id":"c7157fc8.38ea8","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.saugt","ack":"false","autoCreate":"true","x":1042,"y":558,"z":"7859072e.87a6f8","wires":[]},{"id":"182e191.fe7d1e7","type":"function","name":"Status-Uhrzeit ermitteln","func":"msg = {};\n\n\nfunction addZero(i) {\n    if (i < 10) {\n        i = \"0\" + i;\n    }\n    return i;\n}\n\n\nvar currentdate = new Date(); \nvar h = addZero(currentdate.getHours());\nvar m = addZero(currentdate.getMinutes());\nvar s = addZero(currentdate.getSeconds());\n\n\nvar datetime = h + \":\" + m + \":\" + s;\n\nmsg.payload = datetime;\nreturn msg;\n","outputs":1,"noerr":0,"x":701,"y":631,"z":"7859072e.87a6f8","wires":[["57efa4f2.a8105c"]]},{"id":"57efa4f2.a8105c","type":"ioBroker out","name":"","topic":"node-red.0.Roomba.Statusuhrzeit","ack":"false","autoCreate":"true","x":1044,"y":636,"z":"7859072e.87a6f8","wires":[]}]</cleaning></cleaner_state></temperature></charge></capacity></battery_charge></bin_status></cleaning_distance></name>
                          

                          Viel Spaß damit :-)

                          Gruß,

                          Eric

                          Hallo @eric2905,
                          beim Importieren des Roomba Status Flows in NodeRed kommt bei mir folgende Fehlermeldung:
                          479f8357-59e7-432e-b560-48b3598a1392-image.png

                          Was mache ich da falsch? Wo liegt der Fehler?

                          EDIT:
                          Es darf

                          </cleaning></cleaner_state></temperature></charge></capacity></battery_charge></bin_status></cleaning_distance></name>
                          

                          nicht enthalten sein.

                          Ein Problem habe ich aber trotzdem noch.
                          Ich habe wie beschrieben unter "Roomba command" meine IP Adresse des Saugroboters eingetragen, aber nach dem Deployen bekommt Node Red keine Verbindung. (siehe Bild) So wie es aussieht ist diese Verbindung nicht möglich.

                          b071a54d-df05-4b8e-acfc-dd74115bef9f-image.png

                          Der Aufruf dieses Links http://192.168.178.253/full_status.xml ist nicht möglich.

                          d5db8c82-88f5-47ce-a043-5aeab60e4d13-image.png

                          Im Log steht folgende Fehlermeldung:

                          node-red.0	2020-02-22 21:45:41.561	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
                          node-red.0	2020-02-22 21:45:41.561	error	(2903) 22 Feb 21:45:41 - [error] [http request:Roomba command] Error: connect ECONNREFUSED 192.168.178.253:80
                          node-red.0	2020-02-22 21:44:41.552	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
                          node-red.0	2020-02-22 21:44:41.552	error	(2903) 22 Feb 21:44:41 - [error] [http request:Roomba command] Error: connect ECONNREFUSED 192.168.178.253:80
                          node-red.0	2020-02-22 21:43:41.581	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
                          node-red.0	2020-02-22 21:43:41.581	error	(2903) 22 Feb 21:43:41 - [error] [http request:Roomba command] Error: connect ECONNREFUSED 192.168.178.253:80
                          node-red.0	2020-02-22 21:42:41.561	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
                          node-red.0	2020-02-22 21:42:41.561	error	(2903) 22 Feb 21:42:41 - [error] [http request:Roomba command] Error: connect ECONNREFUSED 192.168.178.253:80
                          node-red.0	2020-02-22 21:41:41.576	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
                          node-red.0	2020-02-22 21:41:41.576	error	(2903) 22 Feb 21:41:41 - [error] [http request:Roomba command] Error: connect ECONNREFUSED 192.168.178.253:80
                          node-red.0	2020-02-22 21:41:12.308	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
                          node-red.0	2020-02-22 21:41:12.308	error	(2903) 22 Feb 21:41:12 - [error] [http request:Roomba command] Error: connect ECONNREFUSED 192.168.178.253:80
                          node-red.0	2020-02-22 21:41:12.138	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
                          node-red.0	2020-02-22 21:41:12.138	error	(2903) 22 Feb 21:41:12 - [error] [http request:Roomba command] Error: connect ECONNREFUSED 192.168.178.253:80
                          node-red.0	2020-02-22 21:40:12.307	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
                          node-red.0	2020-02-22 21:40:12.307	error	(2903) 22 Feb 21:40:12 - [error] [http request:Roomba command] Error: connect ECONNREFUSED 192.168.178.253:80
                          node-red.0	2020-02-22 21:40:12.160	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
                          node-red.0	2020-02-22 21:40:12.160	error	(2903) 22 Feb 21:40:12 - [error] [http request:Roomba command] Error: connect ECONNREFUSED 192.168.178.253:80
                          node-red.0	2020-02-22 21:39:12.353	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
                          node-red.0	2020-02-22 21:39:12.353	error	(2903) 22 Feb 21:39:12 - [error] [http request:Roomba command] Error: connect ECONNREFUSED 192.168.178.253:80
                          node-red.0	2020-02-22 21:39:12.324	error	at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
                          node-red.0	2020-02-22 21:39:12.324	error	(2903) 22 Feb 21:39:12 - [error] [http request:Roomba command] Error: connect ECONNREFUSED 192.168.178.253:80
                          

                          Was ist da falsch? Was muss ich da machen?

                          👍 Ich danke Euch im Voraus. 👍

                          S Y S T E M:
                          ioBroker Master auf Raspi 4 4Gb (FW raspbian-buster), node v.12.22.5, npm v.6.14.14, js-controller v.3.3.15

                          1 Antwort Letzte Antwort
                          0
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          459

                          Online

                          32.5k

                          Benutzer

                          81.8k

                          Themen

                          1.3m

                          Beiträge
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                          ioBroker Community 2014-2025
                          logo
                          • Anmelden

                          • Du hast noch kein Konto? Registrieren

                          • Anmelden oder registrieren, um zu suchen
                          • Erster Beitrag
                            Letzter Beitrag
                          0
                          • Home
                          • Aktuell
                          • Tags
                          • Ungelesen 0
                          • Kategorien
                          • Unreplied
                          • Beliebt
                          • GitHub
                          • Docu
                          • Hilfe