roomba_980

Dies ist ein Plugin für das SmarthomeNG Projekt um den iRobot Roomba 980 zu steuern.

zusätzlich muss das Projekt https://github.com/NickWaterton/Roomba980-Python in das Plugin Verzeichniss hinterlegt werden

Wie bekomme ich meine blid und mein Passwort

zu erst müsst ihr das Projekt Roomba980-Python herrunterladen und das roomba Verzeichnis in das rooomba_980 Plugin Verzeichnis kopieren

in dem Verzeichnis befindet sich ein getpassword.py, das ihr ausführen müsst, danach bekommt ihr folgende meldung:

found 1 Roomba(s)
Make sure your robot (Robii) at IP 192.168.0.100 is on the Home Base and powered on (green lights on). Then press and hold the HOME button on your robot until it plays a series of tones (about 2 seconds). Release the button and your robot will flash WIFI light.
Press Enter to continue...
Received: {
  "robotname": "Robii",
  "sku": "R980040",
  "nc": 0,
  "ver": "3",
  "proto": "mqtt",
  "ip": "192.168.5.147",
  "hostname": "Roomba-123456789013456",
  "sw": "v2.4.6-3",
  "mac": "F0:03:8C:B5:68:63",
  "cap": {
    "carpetBoost": 1,
    "pp": 1,
    "langOta": 1,
    "binFullDetect": 1,
    "ota": 2,
    "maps": 1,
    "pose": 1,
    "eco": 1,
    "multiPass": 2,
    "edge": 1,
    "svcConf": 1
  }
}
Roomba (Robii) IP address is: 192.168.0.100
blid is: 123456789013456
Password=> ABCD EFGGDBAN <= Yes, all this string.
Use these credentials in roomba.py

Ganz am ende stehen die IP, blid und das Passwort welches ihr für die plugin.ymal braucht

Um das Plugin zu aktivieren müsst ihr Folgendes in eure plugin.ymal aufnehmen:

roomba_980:
    class_name: ROOMBA_980
    class_path: plugins.roomba_980
    adress: '192.168.0.100'         # IP Adresse des Roomba
    blid: '123456789013456'         # die blid des roomba Staubsaugers -> kann mit der getpassword.py ausgelesen werden"
    roombaPassword: 'ABCD EFGGDBAN' # das Passwort des roomba Staubsaugers -> kann mit der getpassword.py ausgelesen werden"
    # cycle: 900                    # Optional, nach wie vielen Sekunden die nächste Statusabfrage durchgeführt wird

Hier meine item.yaml:

roomba:

    status_batterie:
        type: num
        roomba_980: status_batterie

    status_bin_full:
        type: bool
        roomba_980: status_bin_full

    status_cleanMissionStatus_phase:
        type: str
        roomba_980: status_cleanMissionStatus_phase

    status_cleanMissionStatus_error:
        type: num
        roomba_980: status_cleanMissionStatus_error

    start:
        type: bool
        roomba_980: start
        visu_acl: rw
        autotimer: 2 = False

    stop:
        type: bool
        roomba_980: stop
        visu_acl: rw
        autotimer: 2 = False

    dock:
        type: bool
        roomba_980: dock
        visu_acl: rw
        autotimer: 2 = False

    uszu:
        name: roomba_uzsu
        type: dict
        uzsu_item: roomba.uzsu.text
        cache: 'True'
        visu_acl: rw
        enforce_updates: 'True'

        text:
            name: roomba Text
            type: str
            enforce_updates: 'True'
            autotimer: 2 = ""


    # Integration der Zeitschaltuhr mit der Abfrage vom Feiertag und Urlaubs Item
    uzsu_start:
        type: bool
        roomba_980: start
        eval: True if ( sh.roomba.uzsu.text() == "start" and sh.calendar.urlaub() == False and sh.calendar.feiertag() == False ) else False
        eval_trigger: roomba.uzsu.text

    uzsu_stop:
        type: bool
        roomba_980: stop
        eval: True if ( sh.roomba.uzsu.text() == "stop" and sh.calendar.urlaub() == False and sh.calendar.feiertag() == False ) else False
        eval_trigger: roomba.uzsu.text

    uzsu_dock:
        type: bool
        roomba_980: dock
        eval: True if ( sh.roomba.uzsu.text() == "dock" and sh.calendar.urlaub() == False and sh.calendar.feiertag() == False ) else False
        eval_trigger: roomba.uzsu.text