Ankündigung

Einklappen
Keine Ankündigung bisher.

Xiaomi / Roboroc Baustein 19001929

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • trollmar
    antwortet
    erstmal danke Sipiyou fürs schnelle umsetzten.

    Kurze frage zu E20.
    Sind Segmente = Räume in der Xiaomi app ? Und sind die IDs die Raumnummern aus der App?
    Sorry hatte vorher nie räume mit dem gen1 ;-)

    LG

    Einen Kommentar schreiben:


  • sipiyou
    antwortet

    So, hier die nächste Beta für das LBS und auch VSE:

    https://www.dropbox.com/sh/cnnn22fw2...Rgw2MqENa?dl=0

    eXec

    trollmar :

    Ich hab jetzt auch ein neues Visuelement mit dem Button für die Häufigkeit. Über design lässt sich streiten, ich wollte da etwas "lebendiges".
    Die Farbe für den Button kommt aktuell vom ersten Eintrag der ausgewählten Color-Map. Weiss nicht, ob der Wunsch da ist, dass man dort die Farbe im VSE festlegt.

    Der Parameter an E20 kennt jetzt ein ";". Das, was dort angegeben ist, wird dann für die Anzahl der Reinigungen genommen. Ich habe dort absichtlich keine Beschränkung rein, falls die Roboter irgendwann auch 4/5x unterstützten.

    Im Visuelement wird auch die Zahl bei Neuaufruf der Seite immer auf 1x zurückgesetzt - wie in der App auch.

    Einen Kommentar schreiben:


  • sipiyou
    antwortet
    jonofe
    Ok, bitte nochmal testen. Hier ist die Delay-Funktion auch jetzt drin.

    E25 = 3 Byte Eingang, siehe Hilfe. E24 bleibt für die anderen Roboter bestehen, da der S7 auch andere Kommandos hat. Hättest du die Tabelle oben als Text ? Dann muss ich nicht die Varianten abtippen und kann die in der Hilfe entsprechend einbinden.

    Ich hab gesehen, dass man auch die jeweiligen Status-Meldungen (Wisch /Mop-Status) vom Roboter abrufen kann.
    Hast du am Wochenende abends Zeit, mich per Teamviewer an den Roboter zu lassen ? Würde gerne noch den aktuellen Status abrufen, hier brauche ich aber ein "lebendes Objekt" Schick mir sonst eine E-Mail oder PN. Müsste dann per ssh auf den Edomi-Host um den LBS in der Shell auszuführen und einen editor in der shell.
    Zuletzt geändert von sipiyou; 25.06.2022, 14:01.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von sipiyou Beitrag anzeigen
    Also, die Zeile hier entfernen

    logic_setVar($id, 12, time() + 15); // Refresh cleaningmaps in 15 seconds v1.01b

    und folgendes einfügen:

    set_time_limit(40);
    sleep(15);
    $refreshCleaningMap = 1;
    Okay werde ich testen. Wird das Auswirkungen haben, wenn während der Wartezeit weitere Trigger an den LBS kommen, also z.B: als Sequenz
    Map=1
    custom_mode=101
    water_vox_custom_mode=201
    mop_mode=301

    Zitat von sipiyou Beitrag anzeigen
    Da ich eh gerade am PC werkle, bau ich gleich noch fix die mop und custom-modes schonmal ein. D.h. es gibt 2 weitere Eingänge und über die Visu müsstest du dann entsprechende Buttons machen, die die Werte setzen. Ich denke so ist der Baustein flexibler oder was meinst du ?
    Ja, das würde auf jeden Fall funktionieren.

    Du könntest das auch über den bestehenden Eingang E24 machen, d.h. dort 3 mit Komma getrennte Werte annehmen. Das hätte den Vorteil, dass die Einstellung in einem Schritt gemacht werden kann und es nicht zu Timing Problemen kommen kann, wenn in schneller Sequenz 3 Einstellungen vorgenommen werden.

    Alternativ könnten auch alle Werte einzeln über den bestehende Eingang E24 verarbeitet werden, da ja an der Zahl erkennbar ist, welcher Mode gesetzt werden soll. Damit wären die notwendigen Anpassungen minimal. (>=300 => mop_mode, >=200 && <300 => water_bax_custom_mode, >=100 && <200 => custom_mode)

    Ich kann nicht beurteilen wie kritisch das Timing ist, wenn der LBS zu schnell über verschiedene Eingänge getriggert wird. Falls das kritisch ist, dann wäre vermutlich das Beste die Trigger perspektivisch über logic_setInputsQueued (LBS) und logic_getInputsQueued (EXEC) zu kommunizieren. Dann würde ganz sicher kein Trigger verlorengehen und der EXEC könnte weiter als terminierendes Skript arbeiten, aber mit einer While-Schleife, die so lange läuft, wie Daten in der Queue sind. Damit könnte man jederzeit triggern und es gäbe immer nur eine EXEC Instanz, die erst dann terminiert, wenn alle Befehle abgearbeitet sind. Beim nächsten Trigger wird dann eine neue EXEC Instanz gestartet. Vielleicht was für Version 2.0

    Einen Kommentar schreiben:


  • sipiyou
    antwortet
    Wie, du hast keine Visu ?!

    Die Visu gibt auch nur Kommandos an die Eingänge, d.h. dann gehts auch. Ich werds entsprechend dokumentieren.

    jonofe
    Da ich eh gerade am PC werkle, bau ich gleich noch fix die mop und custom-modes schonmal ein. D.h. es gibt 2 weitere Eingänge und über die Visu müsstest du dann entsprechende Buttons machen, die die Werte setzen. Ich denke so ist der Baustein flexibler oder was meinst du ?

    Einen Kommentar schreiben:


  • trollmar
    antwortet
    Zitat von sipiyou Beitrag anzeigen
    [.

    eXec: hab ich mir auf die todo liste gepackt, schau ich mir dann auch an. Das muss einstellbar sein, würde ich aber dann über die Visu lösen, d.h. da klickt man eben 3x auf den Raum und dann weiss der, dass dort 3x gesaugt werden soll.

    Bei 4x klick ist dann der Raum wieder deselektiert - oder so ähnlich.
    darf ich den wunsch äußern das auch über Eingänge zu lösen. hab keine visu
    vorher mit dem.gen1 war immer nur saugen. jetzt würd ich Raum 1 gerne nur wischen raum 2 wischen saugen etc.
    lg

    Einen Kommentar schreiben:


  • sipiyou
    antwortet
    jonofe ok, also ist das refresh doch das Problem.

    Der LBS sollte nicht sekündlich getriggert werden, das ist zuviel, das könnte auch dazu führen, dass der vorherige Aufruf noch nicht beendet ist.

    probier das mal bitte mit folgendem Code:

    Also, die Zeile hier entfernen

    logic_setVar($id, 12, time() + 15); // Refresh cleaningmaps in 15 seconds v1.01b

    und folgendes einfügen:

    set_time_limit(40);
    sleep(15);
    $refreshCleaningMap = 1;

    Ich schau mir den Rest die Tage an, lass uns erstmal die Bugs fixen.

    eXec: hab ich mir auf die todo liste gepackt, schau ich mir dann auch an. Das muss einstellbar sein, würde ich aber dann über die Visu lösen, d.h. da klickt man eben 3x auf den Raum und dann weiss der, dass dort 3x gesaugt werden soll.

    Bei 4x klick ist dann der Raum wieder deselektiert - oder so ähnlich.
    Zuletzt geändert von sipiyou; 24.06.2022, 20:42.

    Einen Kommentar schreiben:


  • eXec
    antwortet
    Hallo Nima,

    wo du gerade an dem LBS am werkeln bist, gibt es die Möglichkeit (analog zur App) dem Sauger den Befehl mitzugeben, dass er einen Raum 1, 2 oder 3 mal reinigen soll?

    Gruß André

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    sipiyou: Hier mal die verschiedenen Saug/Wisch-Modes für den S7 MaxV und die zugehöriges Command Codes:

    S7Max-Vac-Mop-Modes.png

    Vielleicht hilft dir das bei der Umsetzung, falls du sie nicht schon hattest ...

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von jonofe Beitrag anzeigen
    Ich probiere jetzt mal, wie weit ich den Wert runterdrehen kann und es trotzdem noch funktioniert.
    Also, Ergebnis ist, das es unterhalb von 10 Sekunden nicht stabil funktioniert. Selbst mit 10 Sekunden Wartezeit geht es manchmal nicht. Um auf Nummer Sicher zu gehen, könnte man das getActiveMapIndex() evtl. regelmäßig nach einem Map-Wechsel aufrufen, entweder automatisch im LBS oder über einen Eingang, mit dem man getActiveMapIndex() triggern könnte? Im letzteren Fall könnte man bei einem Triggern von E18 einen Telegrammgenerator starten, der dann für 20 Sekunden in einem bestimmte Takt den Eingang für getActiveMapIndex() triggert.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Ich wechsel die Map und triggere dann in der Liveansicht immer wieder mit E1=1. Aber auch nach 60 Sekunden ist noch nicht der richtige Wert an A13 zu sehen. Der Wert an A13 hinkt immer einen Mapwechsel hinterher, d h er zeigt immer die vorletzte map an, nie die aktuelle.

    Das war Quatsch!

    Ich glaube ich hatte den LBS noch nicht neu eingelesen. Es funktioniert nun nach ca. 10 Sekunden erscheint die korrekte MAP an A13 bei einem sekündlichen Update an E1 (Zeit-iKO als Trigger an E1).

    Ich probiere jetzt mal, wie weit ich den Wert runterdrehen kann und es trotzdem noch funktioniert.

    Zuletzt geändert von jonofe; 23.06.2022, 12:47.

    Einen Kommentar schreiben:


  • sipiyou
    antwortet
    jonofe: In welchen Zeitabständen triggerst du den Baustein ? Die Daten werden mit dem nächsten Trigger aktualisiert.

    Einen Kommentar schreiben:


  • trollmar
    antwortet
    Zitat von jonofe Beitrag anzeigen

    .

    D.h. es gibt 4 Varianten, die man konfigurieren kann
    1. Saugen/Wischen mit den Einstellungen Saugleistung & Wischintensität
    2. Wischen mit den Einstellungen Wischintensität & Wischroute
    3. Saugen mit den Einstellungen Saugleistung oder MAX+
    4. Individuell
    Ob das dann wirklich über die API geht weiss ich nicht, könnte aber den Betatester machen und Infos bereitstellen.
    Der Unterschied zum s7 ist hier nur die fehlende "max +" Option. der Rest Ist gleich.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von sipiyou Beitrag anzeigen
    Hab auch die E18 umgebaut. Es kann sein, dass der Refresh am LBS zu früh erfolgt ist. Ich hab jetzt eine Verzögerung von 10 Sekunden drin. Schau mal bitte, ob das so funktioniert.
    Funktioniert leider nicht. Hatte ich schon befürchtet, denn auch ein mehrfaches Triggern auch mit 30 Sekunden Abstand zum Map-Wechsel hat nicht funktioniert. A13 wird erst beim zweiten Kartenwechsel geändert, dann aber auf den vorhergehenden Wert. Das Update dauert dabei auch nur ca. 1-2 Sekunden.

    Zitat von sipiyou Beitrag anzeigen
    Wenn ich das richtig sehe gibts da ja noch paar mehr Optionen:
    Es sind die 4 o.g. Varianten und jeder Variante hat 0 bis 2 Optionen.
    D.h. zuerst wählt man Vac&Map, Saugen, Wischen, Individuell
    und dann je nach Auswahl die zugehörigen Parameter.

    Einen Kommentar schreiben:


  • sipiyou
    antwortet
    jonofe

    Ich hab deine Info bzgl. Vlan eingebunden in der Hilfe eingebunden. Hab auch die E18 umgebaut. Es kann sein, dass der Refresh am LBS zu früh erfolgt ist. Ich hab jetzt eine Verzögerung von 10 Sekunden drin. Schau mal bitte, ob das so funktioniert.

    Das ist der Wert in der Zeile 496, schau mal bitte, ob es auch mit 5 zuverlässig funktioniert - alternativ bischen mit dem Wert rumspielen. Sag bitte bescheid, was ich final da eintragen soll - sofern es so geht.

    Hab den LBS erstmal in die Dropbox:
    https://www.dropbox.com/s/h7r5em7jhh...9_lbs.php?dl=0

    Wenn ich das richtig sehe gibts da ja noch paar mehr Optionen:
    Wischroute: Standard / gründlich
    Wischintensität: 1..3
    und eben die 4 Optionen.

    Schau ich mir die Tage an.

    Wo ich diese 3d Karte sehe kommen mir auch schon paar Ideen...

    Einen Kommentar schreiben:

Lädt...
X