Seite 1 von 1

Startverzögerung über API

Verfasst: Do 3. Mai 2018, 20:16
von Kasulske
Hallo Fabian,

ich bastele schon geraume Zeit daran, meinen Robbi mit einem Raspberry Pi zu verheiraten.
Das läuft mittlerweile auch ganz anständig. Als Problem hat sich allerdings das zügige Losfahren aus der Ladestation ergeben. Durch Polling des Status ist der Pi nicht immer schnell genug, Robbi zu stoppen. Dann rammt der erst mal das Rolltor. Schön wäre, wenn es einen parametrierbaren Delay geben würde.
Es würde schon ausreichen, wenn Robbi nach dedektieren des entsprechenden Status vom HX gestoppt wird.
Das würde der Pi ja dann in aller Ruhe auslesen können, das Rolltor öffnen und dann Robbi per API starten.

Die Zeilen in Pyhton sehen bisher wie folgt aus:

Code: Alles auswählen

if status == 0 or status == 5:
          if status_alt == 17 or status_alt == 4 :
          	print ,'Robbi fährt raus'
                request = Request('http://192.168.0.24/json?user=Kasulske&pass=XXXXXXXX&cmd=stop')
                response = urlopen(request)
                echo = response.read()
                print echo
                print 'Robbi gestoppt'
                print 'Tor öffnen'
                #dummy für Toröffnung****
                sleep(20)
                # ***************************
                print 'Tor geöffnet'
                request = Request('http://192.168.0.24/json?user=Kasulske&pass=XXXXXXXX&cmd=start')
                response = urlopen(request)
                echo = response.read()
                print echo
                print 'Mäher gestartet'

Noch eleganter wäre natürlich eine variable Startverzögerung mit Delay(x Sekunden) . Bei Eingabe von 999 würde Robby dann auf Stopp bleiben.

Liebe Grüße aus Marl
Ulrich

Re: Startverzögerung über API

Verfasst: Do 3. Mai 2018, 22:24
von Lampi
Hallo Ulrich,

wenn du den Status über API abfragst bekommst du wenn Status 17 o. 4 doch auch die nächste Startzeit mit übertragen. Wäre es da nicht einfacher x Sekunden vorher das Tor zu öffnen? Erspart dir dann auch das umständliche Stoppen und wieder Starten.

Gruß
Jörg

Re: Startverzögerung über API

Verfasst: Do 3. Mai 2018, 22:33
von Kasulske
Hallo Jörg,

die Übertragung der Startzeiten ist wohl irgendwie auf der Strecke gebleiben. Jedenfalls habe ich noch keine finden können.
Würde aber auch nicht weiter helfen, da ich das Tor auch beim Nachtanken schließen möchte. Außerdem kriege ich so
Robbi weder beim manuellen Start noch beim Mähauftrag aus der Hütte.

Das Starten und Stoppen funktioniert übrigens reibungslos.

Grüße aus Marl
Ulrich.

Re: Startverzögerung über API

Verfasst: Do 3. Mai 2018, 22:38
von Kasulske
Hier einmal den API-Response bei einer Statusabfrage:

{"name": "Robbi", "id": "9BC6FD", "Status": {"Status": 17, "stopped": false, "duration": 823, "mode": 2, "battery": 100, "hours": 724}, "Timer": {"Status": 1}, "blades": {"quality": 83, "hours": 35, "days": 10}, "wlan": {"signal": -85}, "Health": {"temperature": 24, "humidity": 29}, "error": {"error_code": 0, "error_message": "Unbekannter Fehlercode!", "date": "1970-01-01", "time": "00:00:00", "unix": 0}, "clock": {"date": "2018-05-03", "time": "22:34:39", "unix": 1525386879}, "successful": true}

Re: Startverzögerung über API

Verfasst: Fr 4. Mai 2018, 00:01
von Lampi
Bei mir kommt

<robonect><name>H330x</name><id>D09515</id><Status><Status>1</Status><stopped>false</stopped><duration>1016</duration><mode>0</mode><battery>100</battery><hours>5529</hours></Status><Timer><Status>2</Status><next><date>2018-05-04</date><time>04:29:00</time><unix>1525408140</unix></next></Timer><blades><quality>78</quality><hours>45</hours><days>5</days></blades><wlan><signal>-77</signal></wlan><Health><temperature>20</temperature><humidity>20</humidity></Health><error><error_code>0</error_code><error_message>Unbekannter Fehlercode!</error_message><date>1970-01-01</date><time>00:00:00</time><unix>0</unix></error><clock><date>2018-05-03</date><time>23:47:45</time><unix>1525391265</unix></clock><successful>true</successful></robonect>

Mir scheint es, dass die nächste Startzeit immer wenn im Status 4 (läd) oder der Timer im Status 2 (stand by) ist mitgesendet wird. Zumindest bei xml?cmd=Status. Ob es bei json?cmd=Status auch so ist kann ich Dir leider nicht sagen.

Gruß
Jörg

Re: Startverzögerung über API

Verfasst: Fr 4. Mai 2018, 07:20
von Kasulske
Hallo Jörg,

du hast recht. Nach Tageswechsel zeigt auch die json-Version die nächste Startzeit an.
Da ich die Öffnungszeiten der Hütte minimieren will, hilft das allerdings nicht viel weiter.
Hintergrund des Vorhabens ist die Minimierung der Blattansammlung an windigen Tagen in der Hütte. Auch möchte ich den "Besuch" des neugierigen Pekinesen unseres Nachbarn verhindern.
Da ich die Hütte abends indirekt beleuchte, könnte ich auf einem Blick sehen, ob Robbi im Bett ist. :D

Liebe Grüße aus Marl
Ulrich

Re: Startverzögerung über API

Verfasst: Fr 4. Mai 2018, 11:03
von automatic
Ich hatte für Leute, die ihren Robby sowieso mit irgendeiner Automation steuern, schon mal folgende Vorgehensweise vorgeschlagen(evtl. mal nach meinen Beiträgen suchen(sind nicht viele)):

Ruhezustand: robby(home:schläft), tor zu
-wenn mähzeit erreicht: tor auf, warten, robby umstellen auf (Auto:startet/ausfahrt)
-wenn robby(Auto:mäht) tor zu (entl.verzögert)
-wenn robby(Auto:sucht ladestation) dann tor auf
-wenn robby(Auto:lädt) tor zu und robby umstellen auf (home:lädt)
-wenn robby(home:schläft) und weiter gemäht werden soll dann zyklus wieder von vorn

zu sendende Kommandos sind fett und zu prüfende Zustände sind unterstrichen

Damit das funktioniert müssen alle Timer gelöscht sein oder auf immer stehen, sonst kann der Robby nicht mit home/Auto gesteuert werden.

Re: Startverzögerung über API

Verfasst: Fr 4. Mai 2018, 11:36
von Kasulske
Hallo automatic,

klar würde das so funktionieren. Dann müsste ich allerdings die komplette Steuerung inclusive Webside im Pi nachbauen.
Damit würde ich allerdings auf die von Fabian so toll gebaute Webside verzichten müssen.
Ich möchte das eigentlich genau andersrum gestalten und die bestehenden Funktionen erhalten. Das Ganze soll weiterhin von der gesamten Familie bedienbar bleiben. Ich möchte Robbi auch nicht in meine Hausautomation integrieren, sondern eine separate Struktur für die Gartenautomation, bestehend aus den Komponenten Beleuchtung, Bewässerung, Ladestation mit Hütte und Robbi, aufbauen. Alle Funktionen von Robbi sollen weiterhin bedienbar bleiben.

Dies ist eine Vorgabe meiner ehemaligen Verlobten, also Gesetz. Ihr jetzt auch noch die Programmierung einer Webseite
beizubringen schaffe ich nicht. Dann mähe ich lieber den Rasen mit der Nagelschere.

Liebe Grüße aus Marl
Ulrich

Re: Startverzögerung über API

Verfasst: Di 31. Jul 2018, 11:11
von Kasulske
Hallo Fabian,

du hast meine Bitte super mit der neuen Firmware umgesetzt. Meinen herzlichsten Dank dafür.
Beim Austesten der neuen Funktion ist mir eine Abweichung zu deiner Beschreibung aufgefallen.
Du beschreibst den Rückgabewert der Statusabfrage bei aktiver Torfunktion mit dem Wert "12".
Bei mir erscheint durchgängig eine "18". Ist für die Torsteuerung natürlich völlig egal, könnte in der Dokumentation allerdings angepasst werden.

Liebe Grüße aus dem hochsommerlichen Marl
Ulrich

Re: Startverzögerung über API

Verfasst: Di 31. Jul 2018, 15:42
von ing-michel
Es ist hex (0x)12 = dezimal 18