Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. IRobot Roomba Steuerung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    IRobot Roomba Steuerung

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      tesso last edited by

      Ich werde den Adapter auch testen.

      Der Roomba hat bisher bei mir nur WLAN, aber keine Einbindung in die Steuerung.

      1 Reply Last reply Reply Quote 0
      • eric2905
        eric2905 last edited by

        @tesso:

        Übernimm einfach mal die Node-red Flows von mir - macht Spaß, den Roomba integriert zu wissen 😉

        Eine passende View (Wigdets) kann ich auch bereitstellen, wenn gewünscht.

        Gruß,

        Eric

        1 Reply Last reply Reply Quote 0
        • T
          tesso last edited by

          Die Widgets interessieren mich auch.

          Habe eben die flows importiert. dabei habe ich Fehler bekommen (iobroker input und output wären nicht vorhanden).

          Suche nun den Fehler und schaue dann weiter.

          1 Reply Last reply Reply Quote 0
          • A
            Arminhh last edited by

            hat sofort funktioniert! Super Beschreibung und Flow!! 😄

            Das Widget würde mich auch sehr interessieren!

            mfg

            Arminhh

            1 Reply Last reply Reply Quote 0
            • eric2905
              eric2905 last edited by

              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

              smarthomegirl 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators last edited by

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

                Gruß

                Rainer

                1 Reply Last reply Reply Quote 0
                • H
                  hometm last edited by

                  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 Reply Last reply Reply Quote 0
                  • eric2905
                    eric2905 last edited by

                    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

                    1 Reply Last reply Reply Quote 0
                    • T
                      tesso last edited by

                      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 Reply Last reply Reply Quote 0
                      • eric2905
                        eric2905 last edited by

                        Moin,

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

                        Gruß,

                        Eric

                        1 Reply Last reply Reply Quote 0
                        • derAuge
                          derAuge last edited by

                          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 Reply Last reply Reply Quote 0
                          • H
                            hometm last edited by

                            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 Reply Last reply Reply Quote 0
                            • T
                              tesso last edited by

                              Cool, endlich ist der Roomba in der Haussteuerung.

                              1 Reply Last reply Reply Quote 0
                              • A
                                Arminhh last edited by

                                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 Reply Last reply Reply Quote 0
                                • eric2905
                                  eric2905 last edited by

                                  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

                                  1 Reply Last reply Reply Quote 0
                                  • smarthomegirl
                                    smarthomegirl @eric2905 last edited by smarthomegirl

                                    @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?

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    864
                                    Online

                                    31.8k
                                    Users

                                    80.0k
                                    Topics

                                    1.3m
                                    Posts

                                    7
                                    19
                                    4033
                                    Loading More Posts
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                    The ioBroker Community 2014-2023
                                    logo