Entwicklungsprojekt: Worx Landroid & Kress Mission Desktop App


  • Zur Thematik Akku-Anzeige hat Positec ja was in der neuen App gefrickelt.

    Code
    1. f = Math.max((bt.p - 30), 0) * 100.0 / 60.0;
    2. n = bt.c ? Math.round(Math.min(Math.max(f, 1.0), 99.0)) : Math.round(Math.min(Math.max(f, 1.0), 100.0));
    3. t = n + "%"
    4. bt.p - Akku-Ladung aus der Json in Prozent
    5. bt.c - wenn true (1) dann wird Akku geladen

    Wie ist die Werte Meinung bzgl. Übernahme dieses Codes in die DeskApp? (gern auch mit Erklärungsversuchen ;-)
    Naa, solange mir keiner die Mathematik schlüssig erklärt baue ich das nicht ein.


    Dann will ich es mal versuchen:
    In der ersten Zeile werden die Json-Prozent bt.p ein wenig gestretcht: Alles was kleiner ist als 30% wird zu 0%, der Bereich von 31-90% wird auf 1-100% gedehnt, 100% wird zu 116%.
    In der zweiten Zeile wird vom Ergebnis f der ersten Zeile alles <1% auf 1% normiert und wenn geladen wird, wird alles >99% auf 99% begrenzt. Wenn nicht geladen wird, wird alles >100% auf 100% begrenzt. Dadurch kann die Anzeige während des Ladens nicht 100% erreichen, das würde den Betrachter verwirren.
    Im Prinzip ist das eine Konvertierung von "tatsächlicher Akkuladung" zu "verfügbarer Akkuladung" mit ein bisschen Kosmetik.


    Gruß Martin


    Edith weist darauf hin, daß die bei der Berechnung entstehenden Nachkommastellen noch weggerundet werden und in der dritten Zeile der Ausgaberstring t zusammengebaut wird, indem ein "%" an das Rechenergebnis n angehängt wird.

    WR102SI.1 - V3.45 - 200m² in 2 Mähzonen
    Für jedes komplexe Problem gibt es eine Lösung, die einfach, einleuchtend und falsch ist.

    Edited 10 times, last by Navicacher ().

  • Hi Martin, wer ist Edith? (Sag ihr unbekannter Weise einen schönen Dank, dass sie Dich nochmal kontrolliert hat ;-)


    OK, dass erklärt die Verwirrung einiger die plötzlich behaupten ihr Mäher fährt bei unter 30% nach Hause.
    Die Rechnung ist trotzdem für mich schwer nachvollziehbar. Gäbe es denn von seiten der Elektriker hier eine "bessere" prozentuale Angabe aus der Spannung? Gern auch getrennt nach Laden und Arbeiten.


    Phillip
    Man kann die 015 mit "LandroidS.exe name" starten und sie nimmt dann "LandroidS.name.json" und "AWS.name.p12" für die Verbindung.


    Maeffjus
    Bei jeder Statusänderung wird die CmdOut.json aktualisiert. Jede Sekunde wird bei aktiver Verbindung die CmdIn.json auf Änderung geprüft und ggf. so an den Mqtt-Broker übermittelt. Falls Du in Richtung TCP-Socket gehen möchtest würde ich das mal in Node.js versuchen, dass wäre dann flexibler für andere Interessenten.

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


  • Die Rechnung ist trotzdem für mich schwer nachvollziehbar. Gäbe es denn von seiten der Elektriker hier eine "bessere" prozentuale Angabe aus der Spannung? Gern auch getrennt nach Laden und Arbeiten.


    Im Prinzip ja, aber das ist ja so ne Sache. Wenn du dir mal untenstehendes Diagramm anschaust dann siehst du wie das zusammen hängt und verstehst vielleicht etwas was die dort versucht haben. [Blocked Image: http://www.powerstream.com/z/li-charge-voltage.png]

  • Maeffjus
    Bei jeder Statusänderung wird die CmdOut.json aktualisiert. Jede Sekunde wird bei aktiver Verbindung die CmdIn.json auf Änderung geprüft und ggf. so an den Mqtt-Broker übermittelt. Falls Du in Richtung TCP-Socket gehen möchtest würde ich das mal in Node.js versuchen, dass wäre dann flexibler für andere Interessenten.


    Hast Du denn irgendwie ein Format für die Cmd.In.json? Ich würde ja gerne was mitteilen, ich weiß nur nicht was bzw wie ;-)


    Gruß,


    Maeffjus

  • In die CmdIn.json darf quasi alles, auch in Einzelteilen, was im cfg-Element von der CmdOut.json vorkommt.


    Beispiele:
    {"rd":60} - Regenzeit auf 1h
    {"cmd":1} - Mähen starten (2-Stop, 3-Home)

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

  • The two files "strings.(de/nl).xml" are extracted in the application folder?
    The folder is not on a restricted place like Desktop or Progam Files?
    You have write access?


    If the two char language code "nl" ist not found it should be load "de" but no nothing as in your picture ...

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

  • Hey Eisha,


    hast Du noch die Werte aus dem Read(Out) von CMD?
    Also z.b. ist Laden ja 0, ich nehme an Mähen ist dann 1, 2 gestoppt und 3 auf dem Heimweg?
    Ich werde es mal eingeben und hoffen das die gleich sind mit dem IN.


    Achso, das Signal, ist das die Daempfung in db?


    Also so:


    Gruß,
    Maeffjus

    Edited once, last by Maeffjus ().

  • hast Du noch die Werte aus dem Read(Out) von CMD?
    Achso, das Signal, ist das die Daempfung in db?


    Wenn Du das RSSI meinst, dann google nach Excellent, Good, Fair und Weak. ( 50<60<70<? )


    Ansonsten, vergess ich gern mal immer wieder das die Quellen nicht mehr allgemein verfügbar sind.

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

  • Superb, Eisha!


    Aber ich muss dann doch noch ein bisschen Hilfe haben, ich kommentiere das mal kurz. Vielleicht kann mir jemand auf die Sprünge helfen was der da genau macht.
    Für mich bleibt da viel Interpretationsspielraum... Oder sind da einige Codes für andere als die Landroid-S? Wenn ja, könnte da jemand vielleicht schonmal ein paar Codes aussortieren :-)


    UNK = -1, Was soll das sein?
    IDLE = 0,
    HOME = 1, Das ist ja nicht die Heimfahrt oder? Das wäre doch 30, oder?
    START_SEQUENCE = 2, Ich vermute mal hier ist "Zurücksetzen, Piepsen, Messer an, Mähen" gemeint oder?
    LEAVE_HOUSE = 3, Scheint mir gleich wie 2 zu sein.
    FOLLOW_WIRE = 4, Wobei tritt das auf? Heimfahrt ist doch 30.
    SEARCHING_HOME = 5,
    SEARCHING_WIRE = 6,
    GRASS_CUTTING = 7,
    LIFT_RECOVERY = 8, Inwiefern treten die Recovery (8,9,10) auf, nachdem der Fehler behoben ist oder während des Fehlers?
    TRAPPED_RECOVERY = 9,
    BLADE_BLOCKED_RECOVERY = 10,
    DEBUG = 11,
    REMOTE_CONTROL = 12, Ich würde sagen, für die Landroid-S ist das Quatsch...
    APP_WIRE_FOLLOW_GOING_HOME = 30,
    APP_WIRE_FOLLOW_AREA_TRAINING = 31,
    APP_WIRE_FOLLOW_BORDER_CUT = 32,
    APP_WIRE_FOLLOW_AREA_SEARCH = 33,
    PAUSE = 34


    Gruß,
    Maeffjus

  • Ich fange mal von hinten an ...


    Die >=30 sind neu und ersetzen teilweise andere ...
    Einige sind wie Du vermutest für die M/L-Modell und andere wohl nur für Positec intern.


    Die Recovery treten solang bis Timeout auf, d.h. der Mäher sich versucht zu befreien.
    5,6,7 sind klar ...
    4 dürfte mit 30-33 weg gefallen sein, aber ältere FW-Stände vor 3.45 liefern dies noch.
    2 und 3 habe ich beide schon gesehen, aber frage nicht nach dem Unterschied. Vielleicht das 2 normal ist und ansonsten bei Kante nicht vorkommt.
    1 Er ist in der LS
    0 IDLE er steht rum und wird in 20 min aus gehen ohne das Stop (Pause) gedrückt wurde
    -1 Unbekannt

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

  • Ich fange mal von hinten an ...
    1 Er ist in der LS
    0 IDLE er steht rum und wird in 20 min aus gehen ohne das Stop (Pause) gedrückt wurde
    -1 Unbekannt


    Also ich bin mir halbwegs sicher, dass der gestern Abend in der Station dauernd "0" hatte. Was Du meinst ist "34" oder?

  • Wenn er von selbst in die LS fährt und sie dann mal nicht mehr erkennt, dann geht er von HOME(1) nach IDLE(0). Schau mal ins Logbuch.
    PAUSE(34) ist neu, wenn man ihm das CMD_STOP(2) sendet. Ob das in der LS sinnvoll verarbeitet wird k.A.

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

  • Wenn er von selbst in die LS fährt und sie dann mal nicht mehr erkennt, dann geht er von HOME(1) nach IDLE(0). Schau mal ins Logbuch.
    PAUSE(34) ist neu, wenn man ihm das CMD_STOP(2) sendet. Ob das in der LS sinnvoll verarbeitet wird k.A.


    Also meiner ist gerade angedockt (ich bin auf der Arbeit, aber laut Status ;-) ) - da steht er jetzt auf 1, ich hätte aber ne andere Idee / Interpretation:


    0 = In Station, nach Feierabend (nach der Mähzeit)
    1 = In Station, beim Laden (danach geht die Arbeit weiter)


    Für mich habe ich das mal so interpretiert: