homebridge-http "status_url", "on_body" und "off_body"

  • Hallo zusammen,

    da ich mich mehr oder weniger mit json in der config.json so durchwurschtele an Newbie, wäre ich für die Hilfe einen Profis gerade sehr dankbar.


    Ich nutze den Plugin homebridge-http um meinen Staubsauger Roboter zu starten oder in seine Ladestation zu schicken. Das funktioniert auch bestens.



    Allerdings startet der Roboter täglich auch automatisch um die Wohnung selbständig zu reinigen.

    Der Switch bleibt aber in der App immer auf OFF da kein Status abgefragt wird.

    Allerdings gibt es auch eine Statuszeile

    Code
    "status_url":  "http://xxx.xxx.xxx.xx:6260/status.html",

    die in die config.json eingetragen werden kann und es gibt vom Roboter auch eine Status URL



    Die URL vom Roboter bietet folgenden Inhalt und in der ersten Zeile den Robot-state: CHARGING


    Es gibt drei Status für on = WORKING, BACKMOVING_INIT, HOMING und off können sein CHARGING, STANDBY, PAUSE


    Was muss nun in der config rein bei "on_body" und "off_body" sowie natürlich im passenden json Format, dass die Information status_url aus der ersten Zeile "Robot-state:" ausgelesen wird und dann als on oder off interpretiert und mit dem aktuellen verhalten angezeigt wird, so dass sich der Schalter auf on befindet auch wenn der Roboter manuell am Gerät oder per Timer startet oder in der Ladestation steht bzw. pausiert?


    Vorab vielen, vielen Dank für die Unterstützung.

    VG

    Hilfreich?

  • Da diese Infos so nicht auswertet werden, kann man das nur im Plugin-Code direkt einbauen. Programmierkenntnisse in JavaScript sind da unumgänglich. Andernfalls warten, bis jemand ein passendes Plugin entwickelt.

  • ich bin etwas weiter mein Hombot gibt mir jetzt nur den Status...

    WORKING oder CHARGING auf einer separaten Status Seite aus.


    Aber das http Plugin versteht den Zustand des Geräts auch per

    "status_on": "WORKING"
    "status_off": "CHARGING"

    in der config.json nicht.

  • Ich würde das Thema gerne noch einmal nach oben holen.


    grover Vielleicht hast Du auch die Möglichkeit hier etwas quick and dirty zu zaubern? Da frag ich jetzt mal ganz frech da Du als Master of Plugin Development mit Auszeichnung hervorgehoben hast. 8o


    Jedesmal wenn Robbie täglich und automatisch seine Runden dreht, vermisse ich nach wie vor, dass sich der Status in der Home oder Eve App nicht entsprechend anpasst.


    Nach wie vor nutze ich das Plugin homebridge-http


    Damit lässt sich dann über einen einfachen Switch der HomBot starten und bei Off, in die Ladestation schicken.

    Robbie läuft aber natürlich täglich automatisch und zuverlässig nach seinem internen Plan und der HomeKit Schalter bleibt entsprechend auf Off und bekommt den Status nicht mit.


    Seinen Status liefert Robbie aber durchaus über eine weitere URL

    http://xxx.xxx.xxx.xx:xxxx/status.html

    Die spuckt so etwas im Browser aus.


    Robot-state: WORKING

    Batt-Perc: 60

    Program Version: lg.srv, V2.51 compiled 18.11.2016, by fx2

    Client Commands: 0

    Cmd per second: 0.000000

    Http requests: 1755

    Cpu-Idle: 51.04

    Cpu-User: 37.72

    Cpu-Sys: 11.22

    Cpu-Nice: 0.00

    Mem-Usage: 10.949 MB

    Turbo: false

    Repeat: false

    Mode: ZZ

    Version: 16552

    Nickname: HOMBOT

    Bumping: 1067

    Last-Clean: 2018/02/04/14/00/15.686356


    Die erste Zeile ist ausschlaggebend.

    Robot-state: WORKING


    Es gibt drei Status für ON =

    WORKING

    BACKMOVING_INIT

    HOMING


    Status für OFF =

    CHARGING

    STANDBY

    PAUSE

    Hilfreich?

  • Da könntest du zum Beispiel ein kleines Script schreiben, welches den Status von http://xxx.xxx.xxx.xx:xxxx/status.html ausliest und entsprechend in eine Datei entweder eine 0 oder eine 1 schreibt, wenn das Wort "WORKING" gefunden wurde.


    In der Config müsstest du dann auf die selbstgeneriert Status URL verlinken.

    Code
    "status_url":  "http://raspi.local/mein_robbie_status.php",

    Falls du PHP laufen hast, könnte das Script so aussehen:

    PHP: mein_robbie_status.php
    <?php
        echo (strpos(file_get_contents('http://xxx.xxx.xxx.xx:xxxx/status.html'), 'WORKING')) ? '1' : '0';
    ?>

    Einmal editiert, zuletzt von Gerrit ()

  • DJay sorry das ich jetzt erst antworte: War bis heute auf Dienstreise.


    Also das Problem am http-plugin ist, dass die status-Regeln nicht auf die Header der Antwort vom Sauger angewendet werden. Die Header sollten für sowas auch nicht verwendet werden (vergleich zu einem Umschlag bei einem Brief.)


    Das Plugin selbst kann allerdings auch angepasst werden. Ich nehme es mal auf die Liste auf, wird aber im Februar knapp.

  • Zitat

    Ich nehme es mal auf die Liste auf, wird aber im Februar knapp.

    Ich glaub du brauchst bald eine Sekretärin ^^