Official Landroid Interface: Wünsche, Ideen

  • Für den Kantenschnitt musst Du wohl einen scheduler Eintrag von 1-2 Minuten erzeugen mit angewähltem Kantenschnitt für den Tag. Wenn er schon auf der Fläche ist, macht er ja nur einen Teil des Randes der ja auch nur 5% zufällig sein kann und das wär ja wohl nicht gewollt.

    Landroid S WR106 seit 6/17 - FW3.40 - 200m² - Einfachgrundstück
    Landroid M WR111 seit 8/17 - FW5.18 - 700m² - Buckelhangpiste

    iRobot Roomba 650

    FAQ Allgemein für worx-kress-landxcape

  • 4. ab dem Zeitpunkt des auf den Draht Treffens nachdem der Kantenschnitt gestartet wurde bis wieder in die Ladestation.

    Ich meinte damit eher die von dir vorgeschlagene Befehlsreihenfolge. Wenn ich Starten - Pause - Home sende, bleibt dann nicht das Mähwerk bei der Heimfahrt ausgeschaltet? Würde ja dann nicht wirklich helfen, da es dann kein Kantenschnitt wäre. Dann bliebe nur die 15-Minuten Mähfenster Variante.

  • Die Befehlsreihenfolge geht so:

    - Start Zonen Training

    - warte bis Folge Draht

    - Stopp (Pause)

    - Starte Heimfahrt


    Teste mal in der DeskApp die Home-Taste, wenn der in der LS steht und schreibe eine CSV mit.

    Landroid SB450 Gustav - WR102SI - Firmware 3.51 - App 1.1.21 - ca. 550m²
    Entwicklungsprojekte ==> DeskApp, Analyser
    Erst Lesen, dann Fragen ==> FAQ - Allgemein

  • - Start Zonen Training

    - warte bis Folge Draht

    - Stopp (Pause)

    - Starte Heimfahrt

    Geht das denn auch per API? Oder ist das die Variante, um manuell via APP einen Kantenschnitt zu starten?

  • Es gibt keine offizielle API von Positec.


    Eigentlich weiß ich gerade nicht ob ich noch helfen soll...


    Zonen Training ist auch nur ein cmd wie Start Stop oder Home.

    Landroid SB450 Gustav - WR102SI - Firmware 3.51 - App 1.1.21 - ca. 550m²
    Entwicklungsprojekte ==> DeskApp, Analyser
    Erst Lesen, dann Fragen ==> FAQ - Allgemein

  • Es gibt keine offizielle API von Positec.

    Ich habe mich jetzt gestern Abend mal durch den 62 Seiten Thread zu dem Thema DeskApp gekämpft. Sehr spannend, was da in den letzten mehr als zwei Jahren schon passiert ist und Kompliment was daraus entstanden ist.

    Eigentlich weiß ich gerade nicht ob ich noch helfen soll...

    Vielleicht ändert sich das ja an diesem wunderschönen sonnigen Sonntag. :)

    Ich hätte da nämlich noch eine Frage (siehe unten)

    Zonen Training ist auch nur ein cmd wie Start Stop oder Home.


    Okay, habe ich verstanden. Hatte bislang nur die Commands 1,2 und 3 auf dem Radar.


    Habe jetzt dank deiner Windows App (geniales Projekt!!!) die "4" gesehen. Ist dann wohl Zonentraining und das CSV Log zusammen mit dem MQTT-Trace interpretiere ich jetzt so: Nachdem der Mäher die LS verlassen hat, kommt dann irgendwann der Status APP_WIRE_FOLLOW_AREA_TRAINING (ls=?). Das ist der Zeitpunkt wo er den Draht hinter der LS gefunden hat, dann wird das PAUSE (cmd=2) Kommando gesendet und sobald dieses bestätigt ist (ls=2) das Kommand HOME (cmd=3).


    Lassen sich die Daten des MQTT Tabs auch irgendwie aufzeichnen? Im CSV sehe ich zwar APP_WIRE_FOLLOW_AREA_TRAINING, aber nicht den zugehörigen ls-Wert.


    Danke im Voraus für ein kurzes Feedback....:saint:


    VG, André

  • Du Schlingel hat nicht alle Seiten gelesen! Und auch nicht gesucht

    Nicht Wort für Wort aber doch sinngemäß. Gesucht habe ich auch ne ganze Menge. Parallel habe ich ja auch noch das ganze in PHP implementiert =O. Habe aber auch gerade mit der App noch mal "HOME" gestartet und dann auf MQTT geschaltet und quasi live mitgeschrieben: 1,3,31,34,5,30,1. Das lässt sich dann super zu den Einträgen im CSV matchen. ^^ Aber danke natürlich für den Link, die Liste hatte ich tatsächlich nicht gefunden oder übersehen.


    Und ich musste ja noch verstehen, was eigentlich ein Poll ist, denn darauf sollte man ja lieber verzichten. 10 minütiges Push-Update reicht mir auch. Wird eigentlich ein Update in der App (Ziehen nach unten) auch als Poll gewertet, d.h. kann ich mir dadurch auch einen 24h Sperre einhandeln? Hatte mir durch einen Fehler im MQTT-Subscribe vor zwei Tagen eine Sperre generiert, das möchte ich gerne zukünftige vermeiden.


    Danke für deine Hilfe....

    VG

    André

  • Ja, die App pollt da auch durch Senden eines leeren MqttJson. Ich vermute du wirst 3 App's brauchen um dich auszusperren.


    In PHP, dann schau ggf. noch auf GitHub EishaV, da liegt ein einfaches Node.js-Skript rum. Es gibt auch noch eine JavaScript Browser Variante, die nur die Web-API nutzt falls Du Interesse hast.


    Ja mei, aussperren gehört zur Entwicklung. ^^

    Landroid SB450 Gustav - WR102SI - Firmware 3.51 - App 1.1.21 - ca. 550m²
    Entwicklungsprojekte ==> DeskApp, Analyser
    Erst Lesen, dann Fragen ==> FAQ - Allgemein

  • In PHP, dann schau ggf. noch auf GitHub EishaV, da liegt ein einfaches Node.js-Skript rum. Es gibt auch noch eine JavaScript Browser Variante, die nur die Web-API nutzt falls Du Interesse hast.

    Das Grundfunktionen habe ich schon fertig und lauffähig, d.h. Web-API (UserToken, UserProfile, AWSCert, ProductItems, Products, Boards) und MQTT Subscribe und Publish (Start, Pause, Home). Bin jetzt gerade beim Error-Handling und dann die erweiterten Features, daher meine obigen Fragen zu den Status Codes.


    Gerne teile ich meine Ergebnisse, allerdings habe ich verstanden, dass es von Positec nicht gewünscht ist, daher erstmal nur als mein PoC und nicht auf GitHub. Ich bin aber an einem Austausch zum Thema Worx API immer interessiert, insbesondere auch, wenn es mal eine Official API geben sollte. Sowas wie HomeConnect für BOSCH/SIemens Hausgeräte wäre echt cool. Der Indego+ is wohl der erste Bosch Mäher, der auch HomeConnect spricht. Ich steuere meine Waschmaschine schon darüber, das ist echt genial.

  • Board und Products braucht man nicht mehr zwingend, seitdem bei product-items die Topics mit kommen.


    Auf GitHub kann man auch ein privates Projekt mit ein begrenzten Anzahl von Nutzern freigeben.

    Landroid SB450 Gustav - WR102SI - Firmware 3.51 - App 1.1.21 - ca. 550m²
    Entwicklungsprojekte ==> DeskApp, Analyser
    Erst Lesen, dann Fragen ==> FAQ - Allgemein

  • jonofe: Kann es sein, dass du auch im knx-user-forum unterwegs bist? :)


    Ich bin auch gerade dabei mit Eisha 's Hilfe die API in Java umzusetzen, da ich eher Java als PHP Entwickler bin. Am Ende will ich einen kleinen Prozess haben, der mit einer vernünftigen REST API bedient werden kann. Dann kann man den Landroid überall einbinden. Bei mir eher KNX über Loxone bzw. Control4.

    M500 2019er Modell, alias "Der Günder"

  • Ich bin nicht so der node.js Fan ;) Nach dem "npm install" werden erst einmal über 100 MB an node_modules runter geladen.

    Da ist mir ein kleiner Java Prozess lieber.


    Es ist schade, dass Positec keine vernünftige REST API raus gibt. Wäre doch total einfach den MQTT Teil zu kapseln und das ganze noch mit einem Aufruf-Limit zu belegen.

    Naja, vielleicht kommt ja in den nächsten Monaten noch etwas.

    M500 2019er Modell, alias "Der Günder"

  • Eisha : Ich hätte da noch mal eine Frage. Wie bekommst du in der DeskApp den initialen Zustand? Machst du beim Start der DeskApp ein POLL? Das mit dem Kantenschnittmodus funktioniert inzwischen super. Danke nochmal für die entsprechenden Hinweise dazu.

  • jonofe: Ja, einen leeren Request Publish("{}"), wobei neuerdings auch im Web-API meist der letzte Zustand verfügbar ist.


    mredeker:

    Was würdest Du von einem dotnet core runtime service (~30MB) halten?

    Also einfache REST-API + minimales WebIf.

    OK, geht wohl nur 64bit, aber da durchaus einige Systeme.

    Spaß würde mir dabei die Lauffähigkeit unter Android machen. ;-)

    Landroid SB450 Gustav - WR102SI - Firmware 3.51 - App 1.1.21 - ca. 550m²
    Entwicklungsprojekte ==> DeskApp, Analyser
    Erst Lesen, dann Fragen ==> FAQ - Allgemein

  • Ja, einen leeren Request Publish("{}"), wobei neuerdings auch im Web-API meist der letzte Zustand verfügbar ist.

    Ist es dann Teil des product-items Call oder gibt es noch einen anderen? Sind dann alle Status Infos, die auch über den MQTT Subscribe kommen enthalten.


    Wichtig wäre mir z.B. den aktuellen Schedule am Anfang zu haben, damit man selektiv Tage ändern kann. Ich habe festgestellt, wenn man nur Daten für einen Tag sendet, dann wird immer der aktualisiert, auch wenn man z.B. als Index 3 verwendet. Es müssen also offensichtlich alle Tage gesendet werden, oder zumindest alle bis zu dem Tag, den man ändern will.

  • Es ist ein separates GET auf "product-items/<serial-no>/status". Da kommt das letzte MqttJson oder nix.


    Es geht mEn nicht einen Tag explizit anzusprechen. Das Json-Object-Array ist ja nicht indiziert, sondern eine mit Komma getrennte Initialisierung.

    Dieses "sc" sollte man immer komplett übertragen, also inklusive mode und perc.

    Landroid SB450 Gustav - WR102SI - Firmware 3.51 - App 1.1.21 - ca. 550m²
    Entwicklungsprojekte ==> DeskApp, Analyser
    Erst Lesen, dann Fragen ==> FAQ - Allgemein

  • Es ist ein separates GET auf "product-items/<serial-no>/status". Da kommt das letzte MqttJson oder nix.

    Ist der Weg über den Status API Call denn zu bevorzugen? Insbesondere bzgl. Blocking? Ich denke es werden sowohl Anzahl API Calls auch auch Anzahl MQTT Publish von Positec überwacht. Und inhaltlich kommen da ja genau dieselben Daten. Wenn der API Call möglicherweise auch mal eine leere Response zurückliefert, dann wäre vermutlich das MQTT Publish (leere Payload) die zuverlässigere Wahl für die initiale Statusabfrage, insbesondere, da man die API dann ja eigentlich gar nicht mehr benötigt.


    Im Moment mache ich es so, dass ich beim ersten Verbinden die API Calls ausführe und dann für die entsprechende DeviceID alle relevanten Daten in einer Datei speichere. Ab diesem Zeitpunkt wird dann auch bei Neustart nur noch die MQTT Verbindung aufgebaut. API Calls gibts dann nur noch bei explizitem User Reset Request. Macht das Sinn oder übersehe ich da etwas?

  • Naja, in meinem Kopf mach dieses Vorgehen so auch Sinn, deshalb speichere ich ja das AWS-Cert.

    In der DeskApp will ich hinterher sowieso die "stehende" Mqtt-Verbindung und deswegen erlaube ich mir den einen Poll.


    Das es die Android App ebenso mach glaube ich nicht, wobei die ja dafür durch läuft, wenn man sie nicht killt.

    Landroid SB450 Gustav - WR102SI - Firmware 3.51 - App 1.1.21 - ca. 550m²
    Entwicklungsprojekte ==> DeskApp, Analyser
    Erst Lesen, dann Fragen ==> FAQ - Allgemein