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.
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