Ankündigung

Einklappen
Keine Ankündigung bisher.

Xiaomi / Roboroc Baustein 19001929

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

  • jonofe
    antwortet
    Ich habe jetzt mal vor dem Setzen des Ausgang A13 im Code ein

    PHP-Code:
    $roboroc->getStatus(); 
    eingefügt. Danach wird der Ausgang sofort korrekt angezeigt auch ohne jegliches sleep() nach dem Ändern der Karte.
    Ich kann nicht beurteilen, ob das wirklich eine sinnvolle Lösung ist, aber vielleicht ein Ansatzpunkt für's Debugging.

    PHP-Code:
                 if ($refreshCleaningMap) {
                     if (
    $roboroc->getMultiMaps() != FALSE) {
                         
    exec_debug (2,outputDebug ("multimaps ",$roboroc->Info_MultiMaps->Info));
                          
    $roboroc->getStatus();// ##### added by Jonofe #####
                         
    logic_setOutput($id12$roboroc->Info_MultiMaps->getAllMaps());
                         
    logic_setOutput($id13$roboroc->Info_Status->getActiveMapIndex());
                     } 

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Da bei mir die Anzeige der aktiven Map an A13 nach wie vor nicht funktioniert, wollte ich nochmal prüfen, ob ich wirklich die aktuelle Version des LBS habe.
    Dabei habe ich aber jetzt etwas den Überblick verloren. Im DL-Portal ist nach meiner Sicht, noch kein Update seit der letzten Diskussion, der letzte Dropbox Link enthält nur noch ein VSE und der vorletzte Dropbox Link führt ins Leere (Daten gelöscht). Gibt es noch einen aktuellen Link zum aktuellen Entsicklungsstand?

    Bei mir hinkt A13 nach wie vor einen Mapwechsel hinterher, d.h.
    1. aktuelle Karte in der App ist 0
    2. Ich starte EDOMI
    3. A13=0 (korrekt)
    4. E18=1
    5. LBS läuft 15 Sekunden
    6. A13=0 (Fehler, sollte 1 sein)
    7. E18=2
    8. LBS läuft 15 Sekunden
    9. A13=1 (Fehler, sollte 2 sein)
    10. E18=3
    11. LBS läuft 15 Sekunden
    12. A13=2 (Fehler, sollte 3 sein)
    13. usw.
    Im Log ist aber zu sehen, dass der map_status durchaus korrekt ausgelesen wird:

    Code:
    2022-07-13 15:46:59    895781    4713    Debug    Cloud-Daten aus Cache verwenden. Kein Login!
    2022-07-13 15:46:59    895962    4713    Debug    V3=sgbgEbuTrtsiSQKrLO45JOMQ/XxO5MH8FCUOetVUmuM0jHqxGNIjw+mEiDFs/WgWA92C4bPz80YY351dmEYKaeNfVL1Dj2lMxruMcGB6U7sS9v6FtwaYMW1ogb5XCLmcI6QbFH6DNneFPkXrS00zUdKHYOET0WR8A9EjYOBf1Oc=V4=tKtBO/5lXWLmhIP15D8KSg==V5=1585584860
    2022-07-13 15:46:59    895997    4713    Debug    cloud->isAccessible:Y-E10=-E11=
    2022-07-13 15:46:59    896018    4713    Debug    RoborockMe:: ip = 10.0.20.105; token = 59654c4f4f656b69384e69576e39596d; SequenceID: 16389
    2022-07-13 15:47:00    179478    26617    Info    Exec ist bereits aktiv. Aufruf Intervall prüfen
    2022-07-13 15:47:00    223186    4713    Debug    roborocMe:: ok
    2022-07-13 15:47:00    223381    4713    Debug    miIO.Info:array(16) {[LF] ["life"]=>[LF] int(42397)[LF] ["uid"]=>[LF] int(1585584860)[LF] ["model"]=>[LF] string(19) "roborock.vacuum.a27"[LF] ["token"]=>[LF] string(32) "59654c4f4f656b69384e69576e39596d"[LF] ["ipflag"]=>[LF] int(1)[LF] ["miio_ver"]=>[LF] string(5) "0.0.9"[LF] ["mac"]=>[LF] string(17) "B0:4A:39:47:90:10"[LF] ["fw_ver"]=>[LF] string(10) "4.1.5_4676"[LF] ["hw_ver"]=>[LF] string(5) "Linux"[LF] ["miio_client_ver"]=>[LF] string(5) "4.1.5"[LF] ["VmPeak"]=>[LF] int(268188)[LF] ["VmRSS"]=>[LF] int(2380)[LF] ["MemFree"]=>[LF] int(31940)[LF] ["ap"]=>[LF] array(4) {[LF] ["ssid"]=>[LF] string(8) "FELD-IOT"[LF] ["bssid"]=>[LF] string(17) "02:0c:42:6e:b5:12"[LF] ["rssi"]=>[LF] string(3) "-49"[LF] ["freq"]=>[LF] int(0)[LF] }[LF] ["netif"]=>[LF] array(3) {[LF] ["localIp"]=>[LF] string(11) "10.0.20.105"[LF] ["mask"]=>[LF] string(13) "255.255.255.0"[LF] ["gw"]=>[LF] string(9) "10.0.20.1"[LF] }[LF] ["miio_times"]=>[LF] array(4) {[LF] [0]=>[LF] int(42397)[LF] [1]=>[LF] int(18)[LF] [2]=>[LF] int(0)[LF] [3]=>[LF] int(42377)[LF] }[LF]}[LF]
    2022-07-13 15:47:16    429142    4713    Debug    Lade Karte 2
    2022-07-13 15:47:16    429279    4713    Debug    Info_Status:array(42) {[LF] ["msg_ver"]=>[LF] int(2)[LF] ["msg_seq"]=>[LF] int(1266)[LF] ["state"]=>[LF] int(8)[LF] ["battery"]=>[LF] int(81)[LF] ["clean_time"]=>[LF] float(40.433333333333)[LF] ["clean_area"]=>[LF] float(28.305)[LF] ["error_code"]=>[LF] int(0)[LF] ["map_present"]=>[LF] int(1)[LF] ["in_cleaning"]=>[LF] int(0)[LF] ["in_returning"]=>[LF] int(0)[LF] ["in_fresh_state"]=>[LF] int(1)[LF] ["lab_status"]=>[LF] int(3)[LF] ["water_box_status"]=>[LF] int(1)[LF] ["back_type"]=>[LF] int(-1)[LF] ["wash_phase"]=>[LF] int(0)[LF] ["wash_ready"]=>[LF] int(0)[LF] ["fan_power"]=>[LF] int(104)[LF] ["dnd_enabled"]=>[LF] int(0)[LF] ["map_status"]=>[LF] int(7)[LF] ["is_locating"]=>[LF] int(0)[LF] ["lock_status"]=>[LF] int(0)[LF] ["water_box_mode"]=>[LF] int(203)[LF] ["water_box_carriage_status"]=>[LF] int(1)[LF] ["mop_forbidden_enable"]=>[LF] int(1)[LF] ["camera_status"]=>[LF] int(391)[LF] ["is_exploring"]=>[LF] int(0)[LF] ["home_sec_status"]=>[LF] int(0)[LF] ["home_sec_enable_password"]=>[LF] int(1)[LF] ["adbumper_status"]=>[LF] array(3) {[LF] [0]=>[LF] int(0)[LF] [1]=>[LF] int(0)[LF] [2]=>[LF] int(0)[LF] }[LF] ["water_shortage_status"]=>[LF] int(1)[LF] ["dock_type"]=>[LF] int(1)[LF] ["dust_collection_status"]=>[LF] int(0)[LF] ["auto_dust_collection"]=>[LF] int(1)[LF] ["avoid_count"]=>[LF] int(114)[LF] ["mop_mode"]=>[LF] int(300)[LF] ["debug_mode"]=>[LF] int(0)[LF] ["collision_avoid_status"]=>[LF] int(1)[LF] ["switch_map_mode"]=>[LF] int(0)[LF] ["dock_error_status"]=>[LF] int(0)[LF] ["charge_status"]=>[LF] int(1)[LF] ["unsave_map_reason"]=>[LF] int(0)[LF] ["unsave_map_flag"]=>[LF] int(2)[LF]}[LF]
    2022-07-13 15:47:16    429342    4713    Debug    Aktueller Status: 0
    2022-07-13 15:47:16    429991    4713    Debug    error-code: 0
    2022-07-13 15:47:16    430979    4713    Debug    sequenceID 16392 V9 =16389
    2022-07-13 15:47:16    556555    4713    Debug    multimaps :array(4) {[LF] ["max_multi_map"]=>[LF] int(4)[LF] ["max_bak_map"]=>[LF] int(1)[LF] ["multi_map_count"]=>[LF] int(4)[LF] ["map_info"]=>[LF] array(4) {[LF] [0]=>[LF] array(5) {[LF] ["mapFlag"]=>[LF] int(0)[LF] ["add_time"]=>[LF] int(1657695467)[LF] ["length"]=>[LF] int(11)[LF] ["name"]=>[LF] string(11) "Erdgeschoss"[LF] ["bak_maps"]=>[LF] array(1) {[LF] [0]=>[LF] array(2) {[LF] ["mapFlag"]=>[LF] int(4)[LF] ["add_time"]=>[LF] int(1657351861)[LF] }[LF] }[LF] }[LF] [1]=>[LF] array(5) {[LF] ["mapFlag"]=>[LF] int(1)[LF] ["add_time"]=>[LF] int(1657443093)[LF] ["length"]=>[LF] int(10)[LF] ["name"]=>[LF] string(10) "Wohnzimmer"[LF] ["bak_maps"]=>[LF] array(1) {[LF] [0]=>[LF] array(2) {[LF] ["mapFlag"]=>[LF] int(5)[LF] ["add_time"]=>[LF] int(1655624938)[LF] }[LF] }[LF] }[LF] [2]=>[LF] array(5) {[LF] ["mapFlag"]=>[LF] int(2)[LF] ["add_time"]=>[LF] int(1657718905)[LF] ["length"]=>[LF] int(12)[LF] ["name"]=>[LF] string(12) "Obergeschoss"[LF] ["bak_maps"]=>[LF] array(1) {[LF] [0]=>[LF] array(2) {[LF] ["mapFlag"]=>[LF] int(6)[LF] ["add_time"]=>[LF] int(1655722052)[LF] }[LF] }[LF] }[LF] [3]=>[LF] array(5) {[LF] ["mapFlag"]=>[LF] int(3)[LF] ["add_time"]=>[LF] int(1656081961)[LF] ["length"]=>[LF] int(6)[LF] ["name"]=>[LF] string(6) "Keller"[LF] ["bak_maps"]=>[LF] array(1) {[LF] [0]=>[LF] array(2) {[LF] ["mapFlag"]=>[LF] int(7)[LF] ["add_time"]=>[LF] int(1655975698)[LF] }[LF] }[LF] }[LF] }[LF]}[LF]
    2022-07-13 15:47:16    756709    4713    Debug    map-url: roboroommap%2F535383824%2F9
    2022-07-13 15:47:16    936170    4713    Debug    mapv1 url= roboroommap%2F535383824%2F9
    2022-07-13 15:47:16    936959    4713    Debug    url to map= https://awsde0.fds.api.xiaomi.com/robomap/roboroommap/535383824/9?Expires=1657721836000&GalaxyAccessKeyId=5271733786445&Signature=bmAkspcmuCMI+gpjkt2LgDoQCe0=
    2022-07-13 15:47:16    937710    4713    Debug    Ausführungszeit: 17.042385816574 [s]
    2022-07-13 15:47:26    855886    4755    Debug    Cloud-Daten aus Cache verwenden. Kein Login!
    2022-07-13 15:47:26    856095    4755    Debug    V3=sgbgEbuTrtsiSQKrLO45JOMQ/XxO5MH8FCUOetVUmuM0jHqxGNIjw+mEiDFs/WgWA92C4bPz80YY351dmEYKaeNfVL1Dj2lMxruMcGB6U7sS9v6FtwaYMW1ogb5XCLmcI6QbFH6DNneFPkXrS00zUdKHYOET0WR8A9EjYOBf1Oc=V4=tKtBO/5lXWLmhIP15D8KSg==V5=1585584860
    2022-07-13 15:47:26    856134    4755    Debug    cloud->isAccessible:Y-E10=-E11=
    2022-07-13 15:47:26    856163    4755    Debug    RoborockMe:: ip = 10.0.20.105; token = 59654c4f4f656b69384e69576e39596d; SequenceID: 16394
    2022-07-13 15:47:27    277333    4755    Debug    roborocMe:: ok
    2022-07-13 15:47:27    277445    4755    Debug    miIO.Info:array(16) {[LF] ["life"]=>[LF] int(42424)[LF] ["uid"]=>[LF] int(1585584860)[LF] ["model"]=>[LF] string(19) "roborock.vacuum.a27"[LF] ["token"]=>[LF] string(32) "59654c4f4f656b69384e69576e39596d"[LF] ["ipflag"]=>[LF] int(1)[LF] ["miio_ver"]=>[LF] string(5) "0.0.9"[LF] ["mac"]=>[LF] string(17) "B0:4A:39:47:90:10"[LF] ["fw_ver"]=>[LF] string(10) "4.1.5_4676"[LF] ["hw_ver"]=>[LF] string(5) "Linux"[LF] ["miio_client_ver"]=>[LF] string(5) "4.1.5"[LF] ["VmPeak"]=>[LF] int(268188)[LF] ["VmRSS"]=>[LF] int(2380)[LF] ["MemFree"]=>[LF] int(30824)[LF] ["ap"]=>[LF] array(4) {[LF] ["ssid"]=>[LF] string(8) "FELD-IOT"[LF] ["bssid"]=>[LF] string(17) "02:0c:42:6e:b5:12"[LF] ["rssi"]=>[LF] string(3) "-49"[LF] ["freq"]=>[LF] int(0)[LF] }[LF] ["netif"]=>[LF] array(3) {[LF] ["localIp"]=>[LF] string(11) "10.0.20.105"[LF] ["mask"]=>[LF] string(13) "255.255.255.0"[LF] ["gw"]=>[LF] string(9) "10.0.20.1"[LF] }[LF] ["miio_times"]=>[LF] array(4) {[LF] [0]=>[LF] int(42424)[LF] [1]=>[LF] int(18)[LF] [2]=>[LF] int(0)[LF] [3]=>[LF] int(42404)[LF] }[LF]}[LF]
    2022-07-13 15:47:27    277517    4755    Debug    Info_Status:array(42) {[LF] ["msg_ver"]=>[LF] int(2)[LF] ["msg_seq"]=>[LF] int(1283)[LF] ["state"]=>[LF] int(8)[LF] ["battery"]=>[LF] int(81)[LF] ["clean_time"]=>[LF] float(40.433333333333)[LF] ["clean_area"]=>[LF] float(28.305)[LF] ["error_code"]=>[LF] int(0)[LF] ["map_present"]=>[LF] int(1)[LF] ["in_cleaning"]=>[LF] int(0)[LF] ["in_returning"]=>[LF] int(0)[LF] ["in_fresh_state"]=>[LF] int(1)[LF] ["lab_status"]=>[LF] int(3)[LF] ["water_box_status"]=>[LF] int(1)[LF] ["back_type"]=>[LF] int(-1)[LF] ["wash_phase"]=>[LF] int(0)[LF] ["wash_ready"]=>[LF] int(0)[LF] ["fan_power"]=>[LF] int(104)[LF] ["dnd_enabled"]=>[LF] int(0)[LF] ["map_status"]=>[LF] int(11)[LF] ["is_locating"]=>[LF] int(0)[LF] ["lock_status"]=>[LF] int(0)[LF] ["water_box_mode"]=>[LF] int(203)[LF] ["water_box_carriage_status"]=>[LF] int(1)[LF] ["mop_forbidden_enable"]=>[LF] int(1)[LF] ["camera_status"]=>[LF] int(391)[LF] ["is_exploring"]=>[LF] int(0)[LF] ["home_sec_status"]=>[LF] int(0)[LF] ["home_sec_enable_password"]=>[LF] int(1)[LF] ["adbumper_status"]=>[LF] array(3) {[LF] [0]=>[LF] int(0)[LF] [1]=>[LF] int(0)[LF] [2]=>[LF] int(0)[LF] }[LF] ["water_shortage_status"]=>[LF] int(1)[LF] ["dock_type"]=>[LF] int(1)[LF] ["dust_collection_status"]=>[LF] int(0)[LF] ["auto_dust_collection"]=>[LF] int(1)[LF] ["avoid_count"]=>[LF] int(114)[LF] ["mop_mode"]=>[LF] int(300)[LF] ["debug_mode"]=>[LF] int(0)[LF] ["collision_avoid_status"]=>[LF] int(1)[LF] ["switch_map_mode"]=>[LF] int(0)[LF] ["dock_error_status"]=>[LF] int(0)[LF] ["charge_status"]=>[LF] int(1)[LF] ["unsave_map_reason"]=>[LF] int(0)[LF] ["unsave_map_flag"]=>[LF] int(2)[LF]}[LF]
    2022-07-13 15:47:27    277551    4755    Debug    Aktueller Status: 0
    2022-07-13 15:47:27    278539    4755    Debug    error-code: 0
    2022-07-13 15:47:27    281379    4755    Debug    sequenceID 16396 V9 =16394
    Es wird Karte 2 geladen. Beim ersten Info_Status Debug ist map_status noch 7 (Karte 1) und beim zweiten ist es aber 11 (Karte 2) was ja auch richtig ist. Nur wird dieser Wert dann vermutlich nicht mehr auf den Ausgang geschickt. Und beim nächsten Wechsel zu Karte 3, wird wohl dann in gleicher Weise zuerst der Ausgang gesetzt (Karte 2) bevor dann der richtige Status (Karte 3) vorhanden ist. Usw. usf.

    E41 steht auf 1 und E1 hat einen minütlichen Trigger.
    Selbst die nachfolgenden Trigger mit E1 (auch nach mehr als 20 Sekunden) machen kein Update von A13. D.h. A13 wird tatsächlich dann nur noch geupdatet, wenn wieder eine Karte gewechselt wird. Jedes Triggern von E1 liefert aber im Log den korrekten Wert von map_status, aber er wird nicht gesetzt.

    Woran könnte das liegen?

    Einen Kommentar schreiben:


  • sipiyou
    antwortet
    Schau ich mir heute abend an.
    Zuletzt geändert von sipiyou; 30.06.2022, 17:22.

    Einen Kommentar schreiben:


  • eXec
    antwortet
    sipiyou Hallo Nima,

    ich bekomme am laufenden Band folgende Fehlermeldung:
    2022-06-30 13:29:11 603247 ? 3088 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19001929.php | Fehlercode: 8 | Zeile: 1947 | Trying to access array offset on value of type null ERROR
    2022-06-30 13:31:08 502935 ? 6085 Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19001929.php | Fehlercode: 8 | Zeile: 1944 | Trying to access array offset on value of type null ERROR
    Die Meldungen erfolgen im Wechsel im1-2min Takt, seitdem der Sauger wieder in der Ladestation verweilt.
    Hast du eine Idee?

    Einen Kommentar schreiben:


  • eXec
    antwortet
    Zitat von sipiyou Beitrag anzeigen
    eXec: freut mich, dass ich in guter Erinnerung geblieben bin - und jetzt weiss ich auch, dass ich noch die Heizungsregelung umstellen wollte ...

    Was empfindest du als Sinnvoll ? 2 Koordinaten oder eher Auswahl "oben, mitte, unten" und dann "links, mitte, rechts" ?
    Das klingt doch schon mal sehr gut! Prinzipiell kann dann jeder entscheiden. Bei mir wäre es vermutlich oben oder unten rechts, was natürlich vom Aufbau der Visu abhängt.

    vG André

    Einen Kommentar schreiben:


  • sipiyou
    antwortet
    eXec: freut mich, dass ich in guter Erinnerung geblieben bin - und jetzt weiss ich auch, dass ich noch die Heizungsregelung umstellen wollte ...

    Was empfindest du als Sinnvoll ? 2 Koordinaten oder eher Auswahl "oben, mitte, unten" und dann "links, mitte, rechts" ?

    Einen Kommentar schreiben:


  • eXec
    antwortet
    sipiyou Danke, das sieht sehr gut aus. Vielleicht gibt es noch Möglichkeiten den Button für die Anzahl an eine andere Position zu verschieben?

    jonofe mir geht es prinzipiell auch so mit meinem Netzwerk, allerdings habe ich schon eine Session mit Nima gemacht (parallel zum Teamviewer waren wir im Videochat). Waren zwei sehr interessante und amüsante Stunden gewesen!

    Einen Kommentar schreiben:


  • sipiyou
    antwortet
    trollmar: Ja, die Segment-ID's sind die Raum-ID's.


    jonofe : Danke für die Informationen, die hab ich in der Tat gebraucht. Per Teamviewer siehst du, was jemand bei dir auf deinem PC macht. Das macht mir das Leben einfacher, weil ich dann gleich sehe, was passiert. Aber so passt es in diesem Fall auch.

    So, hab die Dateien in der Dropbox nochmal erneuert. Sprich: Hilfe um die Tabelle angepasst und auch die Ausgabe A8 ergänzt.
    Bitte testen und um Rückmeldung.

    Was die Map-Updates angeht, so ist es verwunderlich, denn die time()+15 ist nichts anderes als sleep (15).

    Schau mal bitte, ob ein sleep 20 /25/30 besser funktioniert.
    Zuletzt geändert von sipiyou; 26.06.2022, 20:15.

    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;
    Damit funktioiniert das Update an A13 leider nicht. Die vorherige Variante war da zuverlässiger.

    Könnte man nicht alle 3 Sekunden (max. 10 mal) $roboroc->Info_Status->getActiveMapIndex() aufrufen, bis E18==$roboroc->Info_Status->getActiveMapIndex(), also sowas wie:

    PHP-Code:

    $i
    =0;
    while (
    $E[18]['value'] != $roboroc->Info_Status->getActiveMapIndex() && $i<10)
    {
       
    sleep(3);
       
    $i++

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von sipiyou Beitrag anzeigen
    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.
    Ich bin dieses Wochenende unterwegs, aber zugegebener Maßen auch etwas paranoid mit Zugang zu meinem Netz.

    Aber vermutlich reicht Dir schon die Info über den Status, den ich empfange und im Log sehe.

    Hier die Keys des Status Arrays (Werte wie oben in der Tabelle; gezippte Excel Tabelle im Anhang):

    Saugmodus: fan_power (10X)
    Wischmodus: water_box_mode (20X)
    Wischart: mop_mode (30X)

    Hier mal das komplette Status-Log:

    miIO.Info:array(16) {[LF] ["life"]=>[LF] int(65923)[LF] ["uid"]=>[LF] int(15855#####)[LF] ["model"]=>[LF] string(19) "roborock.vacuum.a27"[LF] ["token"]=>[LF] string(32) "59654c4f4f##########69576e39596d"[LF] ["ipflag"]=>[LF] int(1)[LF] ["miio_ver"]=>[LF] string(5) "0.0.9"[LF] ["mac"]=>[LF] string(17) "B0:4A:##:##:##:##"[LF] ["fw_ver"]=>[LF] string(10) "4.1.5_4676"[LF] ["hw_ver"]=>[LF] string(5) "Linux"[LF] ["miio_client_ver"]=>[LF] string(5) "4.1.5"[LF] ["VmPeak"]=>[LF] int(333348)[LF] ["VmRSS"]=>[LF] int(2136)[LF] ["MemFree"]=>[LF] int(7412)[LF] ["ap"]=>[LF] array(4) {[LF] ["ssid"]=>[LF] string(8) "#####IOT"[LF] ["bssid"]=>[LF] string(17) "02:0c:##:##:##:##"[LF] ["rssi"]=>[LF] string(3) "-46"[LF] ["freq"]=>[LF] int(0)[LF] }[LF] ["netif"]=>[LF] array(3) {[LF] ["localIp"]=>[LF] string(11) "10.#.##.###"[LF] ["mask"]=>[LF] string(13) "255.255.255.0"[LF] ["gw"]=>[LF] string(9) "10.###.###.###"[LF] }[LF] ["miio_times"]=>[LF] array(4) {[LF] [0]=>[LF] int(65922)[LF] [1]=>[LF] int(18)[LF] [2]=>[LF] int(0)[LF] [3]=>[LF] int(65902)[LF] }[LF]}[LF]

    Info_Status:array(42) {[LF] ["msg_ver"]=>[LF] int(2)[LF] ["msg_seq"]=>[LF] int(1215)[LF] ["state"]=>[LF] int(8)[LF] ["battery"]=>[LF] int(100)[LF] ["clean_time"]=>[LF] float(38.566666666667)[LF] ["clean_area"]=>[LF] float(32.4325)[LF] ["error_code"]=>[LF] int(0)[LF] ["map_present"]=>[LF] int(1)[LF] ["in_cleaning"]=>[LF] int(0)[LF] ["in_returning"]=>[LF] int(0)[LF] ["in_fresh_state"]=>[LF] int(1)[LF] ["lab_status"]=>[LF] int(3)[LF] ["water_box_status"]=>[LF] int(1)[LF] ["back_type"]=>[LF] int(-1)[LF] ["wash_phase"]=>[LF] int(0)[LF] ["wash_ready"]=>[LF] int(0)[LF] ["fan_power"]=>[LF] int(102)[LF] ["dnd_enabled"]=>[LF] int(1)[LF] ["map_status"]=>[LF] int(3)[LF] ["is_locating"]=>[LF] int(0)[LF] ["lock_status"]=>[LF] int(0)[LF] ["water_box_mode"]=>[LF] int(202)[LF] ["water_box_carriage_status"]=>[LF] int(1)[LF] ["mop_forbidden_enable"]=>[LF] int(1)[LF] ["camera_status"]=>[LF] int(391)[LF] ["is_exploring"]=>[LF] int(0)[LF] ["home_sec_status"]=>[LF] int(0)[LF] ["home_sec_enable_password"]=>[LF] int(1)[LF] ["adbumper_status"]=>[LF] array(3) {[LF] [0]=>[LF] int(0)[LF] [1]=>[LF] int(0)[LF] [2]=>[LF] int(0)[LF] }[LF] ["water_shortage_status"]=>[LF] int(0)[LF] ["dock_type"]=>[LF] int(1)[LF] ["dust_collection_status"]=>[LF] int(0)[LF] ["auto_dust_collection"]=>[LF] int(1)[LF] ["avoid_count"]=>[LF] int(98)[LF] ["mop_mode"]=>[LF] int(300)[LF] ["debug_mode"]=>[LF] int(0)[LF] ["collision_avoid_status"]=>[LF] int(1)[LF] ["switch_map_mode"]=>[LF] int(0)[LF] ["dock_error_status"]=>[LF] int(0)[LF] ["charge_status"]=>[LF] int(1)[LF] ["unsave_map_reason"]=>[LF] int(0)[LF] ["unsave_map_flag"]=>[LF] int(0)[LF]}[LF]
    Angehängte Dateien

    Einen Kommentar schreiben:


  • 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:

Lädt...
X