Aktuelle Version im Update
Wichtig:
Das Ermitteln des Staubsauger/Lampen Tokens (https://forum.fhem.de/index.php/topic,73052.msg646649.html#msg646649) ist bei den aktuellen Firmwares (ab FW 3074) nur noch über das Auslesen aus einem App Backup möglich.
Token mit 32 Zeichen (unverschlüsselt) oder 96 Zeichen (verschlüsselt, manuelle Enschlüsselung siehe 3. Post) können verwendet werden.
Dieses Modul unterstützt aktuell folgende Devices:
- Xiaomi Smart Vacuum Cleaner / V2 / S5
- Mi Air Purifier 2 / 3H
- Mi Smart Fan / 1X / 1C / P9
- Mi UV Humidifier / MSSQ / Evaporation
- Xiaomi LED (Desk) Lamp / Eyecare
- Rice Cooker
- Water Purifier
- Power Plug
Benötigte Perl Module:
- JSON libjson-perl
- Digest::MD5 libdigest-md5-perl
- Crypt::CBC libcrypt-cbc-perl
- Crypt::Cipher::AES oder Crypt::Rijndael_PP CPAN
- Crypt::ECB libcrypt-ecb-perl (bei verschlüsseltem Token)
Einrichtung:
define NAME XiaomiDevice IP [TOKEN]
define vacuum XiaomiDevice 192.168.178.123 12345678901234567890123456789012
attr vacuum subType VacuumCleaner
define airpurifier XiaomiDevice 192.168.178.123 12345678901234567890123456789012
attr airpurifier subType AirPurifier
Hinweise:
Es muss für alle neuen Geräte der Token ermittelt werden.
Der Air Purifier kann aktuell auch ohne Token eingerichtet werden, ebenso der Ventilator und die Lampe.
Beim Vacuum ist es zwingend erforderlich, den Token aus der App auszulesen (Anleitung s.u.).
Aktuelle Version:
2020/09 - new fan devices
2018-04-26 - fix vacuum timers
2018-03-01 - reset filter time
2018-02-26 - carpet mode fix
2018-02-23 - volume, V2 carpet mode, cleaning mode, wakeup
2018-02-18 - carpet mode test
2018-01-02 - accept ascii packed tokens
2017-12-05 - water purifier test
2017-10-18 - json data length fix
2017-10-10 - fully tested support for Mi UV Humidifier
2017-09-18 - support for encrypted tokens (96 chars)
2017-09-01 - unknown message errors on verbose 2/3
2017-08-09 - reconnect changes
2017-08-08 - air purifier status
2017-07-30 - vacuum history limit (10)
2017-07-24 - clean history delete fix, lamp toggle & off brightness
2017-07-23 - Vacuum timezone fix, EyeCare subType
2017-07-22 - EyeCare Settings
2017-07-21 - EyeCare Readings, Serial Number Fix, debugging
2017-07-20 - fixed history for multiple daily runs
2017-07-19 - remove json error on info for offline devices
2017-07-14 - get/set timer power & program, get/set timezone, reconnects
2017-07-10 - 2min interval during cleaning, auto-read history
2017-07-09 - History Cleanup
2017-07-08 - History Readings, Logging
2017-07-04 - timezone init
2017-07-02 - More lamps, clean records
2017-06-29 - Mi Smart Fan & Smart Lamp
2017-06-18 - Crypt::Rijndael_PP fix + bugfix
2017-06-14 - added wifi_setup, device_info & wifi_stats
2017-06-11 - firmware 3.3.9_003074, commandref, AirPurifier connection state
Define
define <name> XiaomiDevice <ip> [<token>]
Example: define vacuum XiaomiDevice 192.168.178.123 12345678901234567890123456789012
Example: define airpurifier XiaomiDevice 192.168.178.123
ip
Local IP of the device
token
Token of the device (mandatory for VacuumCleaner)
Get
data
Manually trigger data update
settings
Manually read settings
clean_summary
Manually read clean summary data
Set
reconnect
reconnect the device
start (VacuumCleaner)
Start cleaning
spot (VacuumCleaner)
Start spot cleaning
pause (VacuumCleaner)
Pause cleaning
stop (VacuumCleaner)
Stop cleaning
charge (VacuumCleaner)
Return to dock
locate (VacuumCleaner)
Locate the vacuum cleaner
fan_power [1..100] (VacuumCleaner)
Set suction power. (Quiet=38, Balanced=60, Turbo=77, Full Speed=90)
remotecontrol start/stop (VacuumCleaner)
Start or stop remote control mode
move direction velocity [time] (VacuumCleaner)
Move the vacuum in remotecontrol mode
direction: -100..100
velocity: 0..100
time: time in ms (default=1000)
reset_consumable filter/mainbrush/sidebrush/sensors (VacuumCleaner)
Reset the consumables
timer hh:mm days (VacuumCleaner)
Set a new timer
timerN on/off/delete (VacuumCleaner)
Enable, disable or delete an existing timer
timerN_time hh:mm (VacuumCleaner)
Change the time for an existing timer
timerN_days days (VacuumCleaner)
Change the days for an existing timer
dnd_enabled on/off (VacuumCleaner)
Enable/disable DND mode
dnd_start hh:mm (VacuumCleaner)
Set DND start time
dnd_end hh:mm (VacuumCleaner)
Set DND end time
on / off (AirPurifier)
Turn the device on or off
mode (AirPurifier)
Set the device mode (auto,silent,favorite)
favorite (AirPurifier)
Set the speed for favorite mode (0..16)
preset (AirPurifier)
Set a preset from attribute preset ('mode auto')
buzzer (AirPurifier)
Set the buzzer (on,off)
led (AirPurifier)
Set the LED (bright,dim,off)
child_lock (AirPurifier)
Set the child lock (on,off)
turbo (AirPurifier)
Set the turbo mode (on,off)
Readings
state
Current state
fan_power (VacuumCleaner)
Fan power in %
error_code (VacuumCleaner)
Error code
consumables_X (VacuumCleaner)
Consumables time remaining in %
dnd (VacuumCleaner)
Current DND mode state
X_clean_area (VacuumCleaner)
Area cleaned in m²
X_clean_time (VacuumCleaner)
Time cleaned in h
total_cleans (VacuumCleaner)
Total number of cleaning cycles
serial_number (VacuumCleaner)
Serial number of the vacuum
timerN_X (VacuumCleaner)
Timer details
pm25 (AirPurifier)
PM2.5 value in µg/m³
pm25_average (AirPurifier)
Average PM2.5 value in µg/m³
temperature (AirPurifier)
Temperature in ˚C
humidity (AirPurifier)
Humidity in %
speed (AirPurifier)
Fan speed in rpm
usage (AirPurifier)
Usage time in h
volume (AirPurifier)
Total air volume in m³
filter (AirPurifier)
Filter life in %
Attributes
subType
VacuumCleaner / AirPurifier
disable
Disables the module
intervalData
Interval for data update (min 60 sec)
intervalSettings
Interval for settings update (min 300 sec)
preset (AirPurifier)
Custom preset for dynamic mode changes (defaults to 'mode auto')
Neue/unbekannte Geräte:Russische App zur Datenanalyse:
https://translate.google.com/translate?sl=auto&tl=en&u=https%3A%2F%2Fwww.kapiba.ru%2F2017%2F11%2Fmi-home.html (https://translate.google.com/translate?sl=auto&tl=en&u=https%3A%2F%2Fwww.kapiba.ru%2F2017%2F11%2Fmi-home.html)
Verzeichnis /sdcard/vevs/logs auf dem Telefon anlegen und neu starten
Dann sollte die App alle Kommandos mitloggen, d.h. alle Funktionen einmal bedienen und dann dort ins Log schauen
------------------
Hier eine Anleitung von reddit, die für alle Geräte funktionieren sollte:
- For the vacuum to be updated on the emulated android, your phone and the emulator must share server, e.g. region. If you, like me, are from Europe, this wasn't an option back in Mi Home 5.0.0. The first thing to do is to change your app location to someplace that the emulator also can connect. I went with "Other". Obs: You have to reconnect the vacuum as part of this process, which also gives it a new token.
- Now time to emulate. I used this one: https://www.memuplay.com/ Download and install.
- Download a downgraded version of Mi Home: https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-5-0-0-release/
- Open Memu. In the black bar on the right hand side, click the "Install APP" icon (the one with apk on it). Find the downgraded Mi Home that you just downloaded.
- When it finishes installing, open the app and sign in to the same user as on your phone. Make sure to choose the same region. If the same region is not available, you have to redo step 1. When the vacuum loads as active and you can open it and see the map, you have done it right.
- Now close the app (small circle at the right hand black menu). Click on memu's setting icon (gear symbol on the right side). Under the tab "Others", Enable Root Mode. This will restart the emulator.
- Open the Memu's File Manager. Click the Hamburger to open the left side panel, go to setting (gear at bottom), General Settings, and change Access Mode to Root.
- You now have access to the Root Folder. Click on it, and go to /data/data/com.xiaomi.smarthome/databases and select miio2.db. Keep this file selected.
- We now want to copy this to a folder that is shared between the emulator and your computer. By Default, you can find one of these in the emulator at Home/sdcard/Download . The corresponding folder on your computer has been created by Memu in your Download-folder on Windows, called "MEmu Download". To see other Shared folders, click on "Shared folder" on the right hand side in Memu. Copy miio2.db here by clicking the symbol with small squares in the top bar of the File Manager.
- Now you have the database. Last thing to do, is to get some program that runs SQL and get your token. I used http://sqlitebrowser.org/ . Download and install.
- Open "DB Browser for SQLite", and click "Open Database". Locate miio2.db on your computer.
- Go to "Execute SQL"-tab, and write: "select token from devicerecord where localIP is '192.168.0.1'" Change 192.168.0.1 with you vacuum's IP address. Run the code with the blue-play button, and you have your token.
MiHome Versionen ab September 2017 verschlüsseln den Token in der DB, sollte das Auslesen nicht klappen könnt ihr auch eine ältere Version der App ausprobieren.
- Android Version 4.2.0 (https://www.apkmirror.com/apk/xiaomi-inc/mihome/mihome-4-2-0-release/) (apk installieren)
- iOS Version 3.0.0 (http://www60.zippyshare.com/v/h9Pd1xgX/file.html) (mit Cydia Impactor (http://www.cydiaimpactor.com/) installieren)Den Token für die Einrichtung des Staubsaugers bekommt ihr danach so:
Android: (alle FWs)
- Aus DB unter /data/data/com.xiaomi.smarthome/databases/miio2.db
- Aus Android Backup mit MiToolkit, zu finden unter https://github.com/ultrara1n/MiToolkit (https://github.com/ultrara1n/MiToolkit/releases)
iOS mit Jailbreak: (alle FWs)
- Aus DB unter /var/mobile/Containers/Data/Application/514106F3-C854-45E9-A45C-119CB4FFC235/Documents/
USERID_mihome.sqlite
- Gerätetokens finden sich in der Datenbank
iOS: (alle FWs)
- Unverschlüsseltes iTunes Backup auf den Rechner kopieren
- Mit http://www.imactools.com/iphonebackupviewer/ (http://www.imactools.com/iphonebackupviewer/) Free öffnen
- RAW, com.xiaomi.home,
USERID_mihome.sqlite -> Extrahieren
- Token aus der Datei lesen
Android Flole App: (FW < .3074)
- Installation der alternativen App von https://xiaomi.flole.de/ (https://xiaomi.flole.de/) auf Android
- (Löschen der App-Daten, falls diese schon mal installiert wurde)
- (WiFi-Reset des Staubsaugers, falls er schon eingerichtet war)
- Verbinden mit dem AP des Staubsaugers
- Roboter in der App suchen
- App-Settings exportieren
- 32-stelligen Token aus der so erzeugten Datei kopieren, z.B.:
[{"c":"::1","d":12345678,"e":"12345678901234567890123456789012","f":"Mi Vacuum","g":0}]Python Script: (FW < .3074)
- Script xpn.py aus dem Anhang runterladen
- (WiFi-Reset des Staubsaugers, falls er schon eingerichtet war)
- Verbinden mit dem AP des Staubsaugers
- Script Aufruf zum Auslesen über
python xpn.py -infoEinrichtung ohne App: (FW < .3074)
- Token auslesen und WLAN-Anmeldung ohne die Xiaomi App vornehmen mit folgendem Request:
{"id":1111,"method":"miIO.config_router","params":{"country_domain":"sg","ssid":"<SSID>","uid":<XIAOMI_USERID>,"gmt_offset":3600,"passwd":"<PASS>"}}Achtung:Der Token ändert sich bei jedem (WiFi-)Reset des Staubsaugers und muss danach (nach der Einrichtung) neu ausgelesen werden.
96-stelligen Token entschlüsseln:http://aes.online-domain-tools.com/ (http://aes.online-domain-tools.com/)
1. 96-stelligen Token auslesen und dann bei [ Input text ] einfügen
2. unter dem Feld den Button [ Hex ] auswählen
3. Bei [ Key ] 32x eine 0 (Null) einfügen
4. unter dem Feld den Button [ Hex ] auswählen
5. Auf das grüne [ Decrypt ] klicken
6. unten rechts steht der entschlüsselte Token
image (https://forum.fhem.de/index.php?action=dlattach;topic=73052.0;attach=99587;image)
Bei copy&paste müssen die Leerzeichen aus dem entschlüsselten Token noch entfernt werden.
Diverses:
- shairport-sync verwandelt den Sauger nebenbei in einen Airport Speaker
Vielen dank für die ganze mühe!!!
Jetzt läuft auch bei mir das Modul wieder einwandfrei.
:'( :'( :'(
Bei mir läuft es leider nicht. (Foto)
Ich habe aktuell die 3074 auf dem Staubi.
ErdnaR
Hi,
habe soeben Update auf Firmware 3.3.9_003074 gemacht --> alles OK. :)
Token ist gleich geblieben.
Roger
Zitat von: erdnar am 11 Juni 2017, 13:36:57Bei mir läuft es leider nicht. (Foto)
Ich habe aktuell die 3074 auf dem Staubi.
Lief es denn irgendwann schon?
Wenn nicht, solltest du am besten nochmal alles komplett neu einrichten.
Incl. Reset und neuem Token.
Zitat von: Markus M. am 11 Juni 2017, 14:52:47
Lief es denn irgendwann schon?
Wenn nicht, solltest du am besten nochmal alles komplett neu einrichten.
Incl. Reset und neuem Token.
:'(
Ich hatte gleich am Anfang die 3073 drauf, jetzt die 3074. Es lief mit Fhem bei mir noch nie.
Ich habe jetzt noch einmal alles (drüber-) installiert. Neuer Token. Gleiches Ergebnis.
Nachdem ich mit Flole den Token geholt habe, habe ich mit der Original-App die Einrichtung beendet. Das ist doch richtig, oder?
Ohne Fhem saugt er ganz toll ;D
Wie kann ich den Fehler einkreisen/suchen?
Schon mal vielen Dank für´s lesen ::)
ErdnaR
Zitat von: erdnar am 11 Juni 2017, 18:18:25Ich habe jetzt noch einmal alles (drüber-) installiert. Neuer Token. Gleiches Ergebnis.
Nachdem ich mit Flole den Token geholt habe, habe ich mit der Original-App die Einrichtung beendet. Das ist doch richtig, oder?
Wie kann ich den Fehler einkreisen/suchen?
Sollte passen. Die 74 hab ich auch.
Der Sauger ist im gleichen Netz wie FHEM und erreichbar?
Zeig doch mal ein "list devicename" und was mit verbose 5 bei einem reconnect im Log steht.
Zitat von: Markus M. am 11 Juni 2017, 18:22:04
Sollte passen. Die 74 hab ich auch.
Der Sauger ist im gleichen Netz wie FHEM und erreichbar?
Zeig doch mal ein "list devicename" und was mit verbose 5 bei einem reconnect im Log steht.
Gleiches Netz, Ping vom Raspi zum Sauger passt.
2017.06.11 19:03:54 5: SaugRoboter: write {"id":0022,"method":"get_status","params":[""]} (47)
2017.06.11 19:03:54 5: SaugRoboter: send 2131005000000000034f14a4593d77f9b6caf525af56e64894659ca9c12bc4dcd3e5274ea66cb86824deeeb46111d2f7f199a0d8d6ec45ef730b8a955c7401cfa9e1f9e1540fb522bfa132797ea6c668
2017.06.11 19:03:54 4: SaugRoboter Send SUCCESS
2017.06.11 19:04:04 2: SaugRoboter: connection timeout
2017.06.11 19:04:11 3: SaugRoboter: disconnecting
2017.06.11 19:04:11 2: SaugRoboter: connecting
2017.06.11 19:04:11 3: SaugRoboter: initialized
2017.06.11 19:04:11 5: SaugRoboter: initSend
2017.06.11 19:04:11 4: SaugRoboter Send SUCCESS
2017.06.11 19:04:12 5: read length 32
2131002000000000034f14a4593d780bffffffffffffffffffffffffffffffff
2017.06.11 19:04:12 4: SaugRoboter - recv seq 1497200651/1497200652
2017.06.11 19:04:16 5: SaugRoboter: write {"id":0023,"method":"get_consumable","params":[""]} (51)
2017.06.11 19:04:16 5: SaugRoboter: send 2131006000000000034f14a4593d780fe2674997adca57e0b3e62f6ced78d04ecc044ca92282030ad6708db8bb6c32b0625eb9c233871dbd49909e0e11beb27f32ebd4c82aa1ddf808385d9a43286d5abd431b70d75dd49de519b320d8f6f564
2017.06.11 19:04:16 4: SaugRoboter Send SUCCESS
2017.06.11 19:04:16 5: SaugRoboter: write {"id":0024,"method":"get_serial_number","params":[""]} (54)
2017.06.11 19:04:16 5: SaugRoboter: send 2131006000000000034f14a4593d780ffcb1db23093c1d35072ddd612d6a8da1daea148bd1a57a1e7afcf56b4468eee9f4805d5ab7b46b23c71ffea2d4060c9ebb0bf19e89e3a534bbc22b3399d8177a111ed5854a1808ea48591bb687de271a
2017.06.11 19:04:16 4: SaugRoboter Send SUCCESS
2017.06.11 19:04:16 5: SaugRoboter: write {"id":0025,"method":"get_clean_summary","params":[""]} (54)
2017.06.11 19:04:16 5: SaugRoboter: send 2131006000000000034f14a4593d780f20a1165edc7e1aae92282c7fa538fd580ae232b173d4acd5e5c59ce0082160082b8dd67b4eb1914781b9ac2443126c80f247850f252ab6e2836c0819333694d3c3f8a023999432396c7ab4fbe35be516
2017.06.11 19:04:16 4: SaugRoboter Send SUCCESS
2017.06.11 19:04:16 5: SaugRoboter: write {"id":0026,"method":"get_dnd_timer","params":[""]} (50)
2017.06.11 19:04:16 5: SaugRoboter: send 2131006000000000034f14a4593d780f2e078ef46861117fbfaf44e287ee45459de8d1ffa76cb074d4fd24f7f3081d48870747bc1444351ad2fb8a3375b178a341de5be74921d87eb787ddbdbfe20a89864919e73739ff6fcf2f3e46d862b354
2017.06.11 19:04:16 4: SaugRoboter Send SUCCESS
2017.06.11 19:04:16 5: SaugRoboter: write {"id":0027,"method":"get_timer","params":[""]} (46)
2017.06.11 19:04:16 5: SaugRoboter: send 2131005000000000034f14a4593d780f21546ad4729556d679722386e09e44e107b11055f4f236c777d22fd11662482a162c7d2bf5f5d750420faac6d2e3a2ed864078e4db250d08ba16b22dbdc6fc11
2017.06.11 19:04:16 4: SaugRoboter Send SUCCESS
2017.06.11 19:04:21 5: SaugRoboter: write {"id":0028,"method":"get_status","params":[""]} (47)
2017.06.11 19:04:21 5: SaugRoboter: send 2131005000000000034f14a4593d78144036fb12e9cb09250c6e2a01a5374252f622b159b2f6c40c3eeb52755bda1f6342bb260d82609b98ae1ff78cf6ea965f41e568f4141a0f793e909b2f98969dae
2017.06.11 19:04:21 4: SaugRoboter Send SUCCESS
2017.06.11 19:04:26 2: SaugRoboter: connection timeout
2017.06.11 19:04:26 2: SaugRoboter: connection timeout
2017.06.11 19:04:26 2: SaugRoboter: connection timeout
2017.06.11 19:04:26 2: SaugRoboter: connection timeout
2017.06.11 19:04:26 2: SaugRoboter: connection timeout
2017.06.11 19:04:31 2: SaugRoboter: connection timeout
Was meist du mit "list DEVICENAME" ?
Zitat von: erdnar am 11 Juni 2017, 19:07:32
Was meist du mit "list DEVICENAME" ?
list SaugRoboter
Das gibst du in die FHEM Kommandozeile ein und postest alles, was dabei rauskommt.
Internals:
DEF 192.168.2.174 5538517a4b6761377147375062486a51
FD 94
NAME SaugRoboter
NR 502
STATE disconnected
TYPE XiaomiDevice
device_type
Readings:
2017-06-11 19:10:47 state disconnected
Helper:
ConnectionState disconnected
crypt AES
dev 034f
id 14a4
ip 192.168.2.174
packetid 36
port 54321
sequence 1
token 5538517a4b6761377147375062486a51
Packet:
0001 get_consumable
0002 get_serial_number
0003 get_clean_summary
0004 get_dnd_timer
0005 get_timer
0006 get_status
0007 get_consumable
0008 get_serial_number
0009 get_clean_summary
0010 get_dnd_timer
0011 get_timer
0012 get_status
0013 get_status
0014 get_status
0015 get_status
0016 get_status
0017 get_status
0018 get_status
0019 get_status
0020 get_status
0021 get_status
0022 get_status
0023 get_consumable
0024 get_serial_number
0025 get_clean_summary
0026 get_dnd_timer
0027 get_timer
0028 get_status
0029 get_status
0030 get_consumable
0031 get_serial_number
0032 get_clean_summary
0033 get_dnd_timer
0034 get_timer
0035 get_status
Attributes:
room .Arbeitszimmer,._Wohnung
stateFormat state
subType VacuumCleaner
verbose 5
Sollte alles stimmen :-\
Du könntest noch einen kompletten Werksreset des Saugers versuchen.
Wenn es dann klappt, hat Xiaomi wohl was an der Token-Zuweisung geändert was eine Neueinrichtung mit aktuellen Firmwares verhindert :(
Hallo,
wie habt Ihr denn das FW update für den Xiaomi Vacuum gemacht? Das bietet er mir gar nichr an.
Wenn ich in der Xiaomi APP -> Settings -> General settings -> Check for updates mache, dann kommt immer "Current version is up to date Current version 3.3.6_003061".
Internet ist enabled, also ich sehen den Vaccum in der App als verbunden / Docked.
Eine Idee?
Zitat von: inoma am 11 Juni 2017, 20:18:55
wie habt Ihr denn das FW update für den Xiaomi Vacuum gemacht? Das bietet er mir gar nichr an.
iOS? Mainland China als Location? Englisch als Sprache?
Eventuell die App mal neu starten.
Hallo Markus, ich habe
1) United States
2) Englisch als Sprache
3) beides mit iOS als auch mit Android probiert.
4) Und die Apps auch beidesmal neu gestartet.
Wenn ich von United States -> Mainland China umstelle, muss ich angeblich den Robot neu einrichten (mit dem WLAN bekannt machen) weil er den im China wohl nicht kennt.
Danke !
Zitat von: inoma am 11 Juni 2017, 20:30:56Wenn ich von United States -> Mainland China umstelle, muss ich angeblich den Robot neu einrichten (mit dem WLAN bekannt machen) weil er den im China wohl nicht kennt.
Das würde ich aktuell bleiben lassen...
Ob eine Neueinrichtung mit der aktuellen Firmware klappt wissen wir noch nicht.
Eventuell wird es in Zukunft ungleich schwerer, an den Token zu kommen.
Zitat von: inoma am 11 Juni 2017, 20:18:55
Hallo,
wie habt Ihr denn das FW update für den Xiaomi Vacuum gemacht? Das bietet er mir gar nichr an.
Wenn ich in der Xiaomi APP -> Settings -> General settings -> Check for updates mache, dann kommt immer "Current version is up to date Current version 3.3.6_003061".
Internet ist enabled, also ich sehen den Vaccum in der App als verbunden / Docked.
Eine Idee?
Hi,
Idee nicht (wirklich).
Ich habe App-Version: 4.1.29 (Android)
Location: Mainland China (hatte auch schon mal USA)
Language: English
Und auf dem Sauger (noch): 3.3.6_003061
Angeboten (und wenn mal Zeit/Ruhe ist auch aufgespielt): 3.3.9_003074
Habe die neueste Version des Moduls laufen...
...gerade eingespielt und läuft!
Habe den Roboter mal wieder vom Internet abgeklemmt und werde mal sehen, ob er nicht wieder beleidigt wird...
Otto hat hier:
https://forum.fhem.de/index.php/topic,66267.msg645320.html#msg645320
auch gemeldet, dass er keine Updates mehr (außer dem das ich auch schon aufgespielt habe [nachdem ich das Router-Problem gelöst hatte]) gemeldet bekommt...
Ob es an den App-Einstellungen liegt??
Gruß, Joachim
Zitat von: inoma am 11 Juni 2017, 20:18:55
Hallo,
wie habt Ihr denn das FW update für den Xiaomi Vacuum gemacht? Das bietet er mir gar nichr an.
Wenn ich in der Xiaomi APP -> Settings -> General settings -> Check for updates mache, dann kommt immer "Current version is up to date Current version 3.3.6_003061".
Internet ist enabled, also ich sehen den Vaccum in der App als verbunden / Docked.
Eine Idee?
ist bei mir auch so, ich habe Das Land(location) auf US (recommended) stehen.
App Version ist die 4.1.26
Gruß Otto
Aktuelle Updates (App + Firmware) werden nur angeboten, wenn in der App die Location "Mainland China" gewählt wurde.
So kommen die App-Updates direkt von Xiaomi und nicht über den Play Store.
Bei der Location "United States" hinkt man immer hinterher. Die App Updates kommen dann nur über den Play Store und sind älter, als die eigentlich verfügbare Version.
Ich vermute mal, dass die neue Firmware, erst mit / ab einer bestimmten App Version zur Verfügung gestellt wird.
Gesendet von meinem p8000 mit Tapatalk
Zitat von: Markus M. am 11 Juni 2017, 19:24:00
...
Du könntest noch einen kompletten Werksreset des Saugers versuchen.
...
Zum Werksreset habe ich folgendes gefunden:
Einschalter gedrückt halten und gleichzeitig Reset. Stimmt das?
Bei mir bleibt die Firmware bei 3074 stehen.
ErdnaR
Hmm...
Hast du zufällig ein iPhone zur Hand nebst einem Mac mit Wireshark? :)
Wie man auf Android die direkten UDP Packets bei der Einrichtung mitschneiden kann weiß ich leider nicht.
Du müsstest mal zuerst den Token wie in meiner Anleitung ermitteln und dann den kompletten Einrichtungsprozess mit der Xiaomi App loggen.
Zitat von: Markus M. am 12 Juni 2017, 16:39:38
... Hast du zufällig ein iPhone zur Hand nebst einem Mac mit Wireshark? :) ...
Wenn du mich meinst ... Nö, habe keine Äpfel.
ErdnaR
Dann such mal, wie du den Datenverkehr bei Android direkt im Gerät loggen kannst.
Ich brauche einen Wireshark Mitschnitt von allem was bei der Einrichtung passiert, während das Telefon direkt mit dem Sauger AP verbunden ist.
Hat hier jemand Erfahrung mit sowas?
Zitat von: erdnar am 12 Juni 2017, 16:13:00
Zum Werksreset habe ich folgendes gefunden: Einschalter gedrückt halten und gleichzeitig Reset. Stimmt das?
Bei mir bleibt die Firmware bei 3074 stehen.
ErdnaR
Aus einem anderen Forum
ZitatWerksreset (keine Hexerei ;-) :
Roboter darf dabei "nicht" in der Ladestation stehen !
Haustaste ohne loslassen gedrückthalten, dabei dann kurz den Resettaster mit Kugelschreiber drücken, Haustaste immer noch nicht loslassen, bis sie was erzählt (Factoryreset), jetzt loslassen und warten bis durchgelaufen und er wieder eingerichtet werden muss.
MfG
Zitat von: Markus M. am 12 Juni 2017, 17:21:37
Dann such mal, wie du den Datenverkehr bei Android direkt im Gerät loggen kannst.
Ich brauche einen Wireshark Mitschnitt von allem was bei der Einrichtung passiert, während das Telefon direkt mit dem Sauger AP verbunden ist.
Hat hier jemand Erfahrung mit sowas?
hi
mit einem Mac und einem IPhone könnte ich dienen, der rest sagt mir leider nichts....
hallo,
ich weiß nicht ob es das ist was du brauchst
Zitat von: pumabaer am 12 Juni 2017, 18:45:30
hallo,
ich weiß nicht ob es das ist was du brauchst
Leider nein, da ist nichts drin. Wie hast du das bekommen?
Hattest du den Sauger schon erfolgreich verbunden?
Welche Firmware hast du aktuell drauf?
Hier steht, wie du den kompletten Netzwerkverkehr des iPhones mittels Wireshark auf deinem Mac mitschneiden kannst:
https://ask.wireshark.org/questions/17559/packet-capturing-application-for-the-iphone (https://ask.wireshark.org/questions/17559/packet-capturing-application-for-the-iphone)
Da sollte während der Einrichtung (während das Telefon im AP des Sauger ist) eigentlich was passieren.
Wer den Sauger aktuell mit einem Token funktionierend eingebunden hat, sollte keinen Reset machen!
Dem Rest rate ich zu einem Werksreset mit FW Downgrade solange das noch geht, siehe weiter oben.
Dann Token ermitteln, in FHEM anmelden und auf die aktuelle Firmware updaten. Dass das klappt, wissen wir.
Mit der neusten Firmware lässt sich der Token allerdings schon nicht mehr über die bekannten Wege auslesen.
FFS, Xiaomi... >:(
Zitat von: Markus M. am 12 Juni 2017, 19:27:14
Mit der neusten Firmware lässt sich der Token allerdings schon nicht mehr über die bekannten Wege auslesen.
FFS, Xiaomi... >:(
Auslesen lässt er sich, wenn man ihn allerdings dann einfügt bleibt man beim "disconnected"
mit dem Werksreset funktioniert es aber alles. (hab ich grade hinter mir)
ich werd mal gucken ob ich das mit dem Wireshark verstehe und dann gucke ich ob ich es nochmal versuche.
Vielleicht ist aber in Zwischenzeit einer anwesend, der das Thema schneller versteht.
Zitat von: Shadow3561 am 12 Juni 2017, 17:48:15
...
Aus einem anderen Forum
Zitat
Werksreset (keine Hexerei ;-) :
Roboter darf dabei "nicht" in der Ladestation stehen !
Haustaste ohne loslassen gedrückthalten, dabei dann kurz den Resettaster mit Kugelschreiber drücken, Haustaste immer noch nicht loslassen, bis sie was erzählt (Factoryreset), jetzt loslassen und warten bis durchgelaufen und er wieder eingerichtet werden muss.
...
Dank
Shadow3561 habe ich den Werksreset richtig hinbekommen :-[ ich muss wohl noch etwas lesen lernen.
Danach hatte mein Sauger die 3035, ich wieder einen neuen Token ...
UND ES FUNKTIONIERT. Fhem hat Zugriff.
Anschließend wieder die Firmware aktualisiert auf 3074 uuuuund ... Fhem funktioniert immer noch :) :) :)
Noch mal vielen Dank vor allem an
Markus M. und allen anderen für die geleistete und die noch zu leistende Hilfe ::) .
ErdnaR
Ansonsten: Die App kennt trotz Werksreset noch die geleistete Gesamtarbeit (Total Time, Area u. Cleanups), allerdings sind die Maps weg.
ErdnaR
Firmware Downgrade ist aktuell die einzige Möglichkeit.
Ich empfehle jedem der den Sauger noch nicht eingebunden hat das jetzt zu tun und anschließend auf der 3074 zu bleiben.
Ansonsten: Erst mal keine Kaufempfehlung für das Ding mehr. Schade...
Den Support habe ich für eine Stellungnahme bereits kontaktiert.
Hat schon jemand das Thema "remotecontrol" mit Fhem ausprobiert und könnte mal ein funktionierendes Beispiel liefern?
Danke
ErdnaR
Zitat von: erdnar am 13 Juni 2017, 14:43:02
Hat schon jemand das Thema "remotecontrol" mit Fhem ausprobiert und könnte mal ein funktionierendes Beispiel liefern?
remotecontrol start
move -10 50 1000
Sauger fährt mit 50% Geschwindigkeit eine Sekunde lange leicht links
Zitat von: Markus M. am 13 Juni 2017, 14:46:56
remotecontrol start
move -10 50 1000
Sauger fährt mit 50% Geschwindigkeit eine Sekunde lange leicht links
Danke aber sorry, das hatte ich schon probiert.
Ich wollte mal sehen wie z.B. ein DOIF o.ä. aussieht wenn man das Ding ins Nachbarzimmer fährt. So mit allem drum und dran wie Wartezeiten etc.. Ich wollte nicht bei Null anfangen :-[
ErdnaR
Irgendwer muss immer der erste sein :)
Pack einfach alle Befehle mit <= 2000ms in einen einzigen Aufruf und setz jeweils ein "sleep 2;" dazwischen, dann nutzt FHEM intern Timer um alles abzuarbeiten.
Neue Möglichkeiten über ein Phone Backup an den Token zu kommen, siehe 3. Post.
Damit sollte es wieder bei jedem klappen.
Danke nochmal für Deine Hilfe
:) :) :) :) :) :) :) :) :)
Hi, mein Purifier und Vacuum befinden sich zwar noch im Versand, aber ich lese hier schon ganz gespannt mit. Ich habe noch einen anderen Hinweis gefunden, wie man den Token auslesen kann (evtl. auch bei aktueller Firmware?) - kann aber eben noch nicht testen: https://apps.athom.com/app/com.xiaomi-miio (https://apps.athom.com/app/com.xiaomi-miio)
Ihr müsst bei der Beschreibung auf "Show more" gehen, da werden dann zwei Methoden beschrieben:
Method 1 - Nodejs Command Line Tool from the miIO Device libra
Method 2 - Packet Sender Tool
Womöglich kann man den Token auch setzen (so wie ich das verstehe): https://github.com/aholstenson/miio/blob/master/docs/management.md#getting-the-token-of-a-device (https://github.com/aholstenson/miio/blob/master/docs/management.md#getting-the-token-of-a-device)
Sobald ich meine Geräte habe, werde ich auch rumtesten, wer bis dahin aber mal was versuchen will, viel Erfolg! Das muss doch klappen ;-)
Viele Grüße
Zitat von: docb am 14 Juni 2017, 08:08:17
Womöglich kann man den Token auch setzen (so wie ich das verstehe): https://github.com/aholstenson/miio/blob/master/docs/management.md#getting-the-token-of-a-device (https://github.com/aholstenson/miio/blob/master/docs/management.md#getting-the-token-of-a-device)
Ich verstehe das eher so, dass man damit den einmal ermittelten und noch aktiven Token in eine andere (anderer Computer) miio App schreiben kann, ohne mit dieser miio App die Kopplung mit dem gerät durchführen zu müssen.
Also nicht den Token im Staubsauger setzen :)
Gruß Otto
Den Token kann man nicht setzen.
Es waren in der lib aber ein paar andere nützliche Dinge drin :))
Der WiFi Status und ein paar Device Infos lassen sich jetzt ebenfalls mit dem Modul auslesen.
Zusätzlich kann man den Setup Prozess durchführen.
Kann das jemand mit einem Luftreiniger (da ist ein Reset relativ schmerzfrei) und mehr als einem WLAN vielleicht mal ausprobieren?
WLAN nach Einrichtung wechseln klappt, der Luftreiniger ist danach aber in der Xiaomi App offline und lässt sich dort nicht mehr reaktivieren.
In den Gerätedaten des Luftreinigers ist dann meine UID zu sehen (fehlt nach App-Einrichtung) und "ot":"otu" fehlt, was zu invalidem JSON führt.
Wie es bei einer erstmaligen Einrichtung aussieht, müsste mal wer testen, der ein Test-FHEM direkt mit dem AP verbinden kann.
Hallo Markus,
ich probiere gerade ein paar Beispiele der Steuerung und dabei fiel mir in Deiner Beschreibung in Antwort 1 auf
Zitatmove direction,velocity,[time] (VacuumCleaner)
Move the vacuum in remotecontrol mode
direction: -100..100
velocity: 0..100
time: time in ms
Muss das nicht besser move direction velocity [time] (VacuumCleaner) heißen? Die Kommas dazwischen finde ich irre führend.
Gruß Otto
Hallo,
ich habe mal ein paar Fahrübungen gemacht (ca. 50 Messungen).
Mein Sauger fährt pro Sekunde ca. 29cm bei 100%.
Das klappt prozentual über alle Geschwindigkeitsabstufungen. Getestet habe ich sporadisch mit vollen 10%ern und bis zu 8 Sekunden.
Zu den Kurven bin ich noch nicht gekommen.
Hier mal ein Beispiel aus meinem "Testparcours":
{fhem(" set SaugRoboter fan_power 1;
sleep 1;
set SaugRoboter remotecontrol start;
sleep 8;
set SaugRoboter move 0 50 5000;
sleep 6;
set SaugRoboter move 10 0 0;
sleep 6;
set SaugRoboter move 0 50 5000;
sleep 5;
...
Beim Testen ist mir aufgefallen, das der Sauger manchmal Änderungen der Zeit nicht übernimmt und einfach den vorhergehenden Befehl noch einmal ausführt. Ein Stop/Start des Remotecontrol behebt diesen "Fehler". Mit "set SaugRoboter move 10 0 0;" dreht sich der Sauger übrigens um 90° rechts.
ErdnaR
Zitat von: Markus M. am 14 Juni 2017, 19:02:25
...
Der WiFi Status und ein paar Device Infos lassen sich jetzt ebenfalls mit dem Modul auslesen.
Zusätzlich kann man den Setup Prozess durchführen.
...
Bei mir zeigt
device_info u.
wifi_stats ... NICHTS ??? , nur ein leeres Fenster mit OK.
ErdnaR
Zitat von: erdnar am 15 Juni 2017, 13:09:52
Bei mir zeigt device_info u. wifi_stats ... NICHTS ??? , nur ein leeres Fenster mit OK.
subType gesetzt? Aktuelle Version des Moduls verwendet?
Zitat von: Markus M. am 15 Juni 2017, 13:12:27
subType gesetzt? Aktuelle Version des Moduls verwendet?
subType ... hatte ich "übersehen" :-[
Danke
ErdnaR
Hallo Markus,
ich habe das Problem, dass sobald ich den Roboter definiere, sich mein komplettes Fhem verabschiedet, und ich es erst über putty neu starten muss.
Installiert habe ich
Digest::MD5 libdigest-md5-perl
Crypt::CBC libcrypt-cbc-perl
Crypt::Rijndael_PP
Im Log findet sich folgendes
2017.06.15 17:18:52 2: Roberta: Crypt::Cipher::AES not found
2017.06.15 17:18:53 2: Roberta: initialized, using Rijndael
2017.06.15 17:19:03 2: Roberta: connecting
If specified by -literal_key, then the key length must be equal to the chosen cipher's key length of 128 bytes at ./FHEM/72_XiaomiDevice.pm line 1021.
2017.06.15 17:19:23 1: Including fhem.cfg
Ich werde jetzt noch
Crypt::Cipher::AES
nach schieben, und dann mal gucken ob es klappt!
Kannst du damit etwas anfangen?Oder wie komme ich an detailiertere Infos
Grüße
EDIT:
Nachdem ich
Crypt::Cipher::AES
nachgeschoben habe, kommt folgendes:
2017.06.15 17:36:36 2: Roberta: initialized, using AES
2017.06.15 17:36:46 2: Roberta: connecting
und Fhem bleibt stabil!
Danke für dein Modul.
Es scheint nur AES zu funktionieren, habe die Beschreibung entsprechend angepasst.
Moin Markus,
Rijndael funktioniert nocht.
du musst nur die Keysize in zwei Zeilen ändern.
Kann dir nicht genau sagen wo, weil ich vom Handy schreibe, aber du wirst es schon wissen.
-keysize => 16
Danach stürzt, zumindest FHEM nicht mehr ab nach dem Datenaustausch mit dem Robot.
MfG
Kurze Frage / Anmerkung.
Gibt es einen Grund, warum "last_clean_time" in Industrie Zeiten dargestellt wird?
Wechselt "state" auf "Error" oder "error" wenn eine Störung ansteht? Geschweige denn passiert das überhaupt? Habe meinen gerade mal 2 Runden drehen lassen, und bin schon gespannt, wie das Ergebniss ist, wenn ich nach Hause komme. Der Luftreiniger ist auch schon auf dem Weg zu mir.
Grüße
Zitat von: Shadow3561 am 16 Juni 2017, 05:50:35
-keysize => 16
Danach stürzt, zumindest FHEM nicht mehr ab nach dem Datenaustausch mit dem Robot.
Danach ist mein Log voll mit Warnings die ich nicht unterdrückt bekomme:
PERL WARNING: Crypt::Rijndael_PP: set keysize to 128.
Jemand ne Idee?
Zitat von: Esjay am 16 Juni 2017, 12:38:08Gibt es einen Grund, warum "last_clean_time" in Industrie Zeiten dargestellt wird?
Kein besonderer Grund. Evtl. besser auswertbar, aus dem Roboter kommen Sekunden..
ZitatWechselt "state" auf "Error" oder "error" wenn eine Störung ansteht?
Vermutlich steht da dann "Malfunction", sofern das als State gesendet wird.
Meine 4 Sensoren sind heute endlich angekommen. Und ich musste feststellen das mein alter BT Stick das "lescan" Kommando nicht kann, nur "scan". Also muss ich mir erst noch einen neuen BT 4.0 Stick holen....
Zitat von: Markus M. am 16 Juni 2017, 14:11:11
Danach ist mein Log voll mit Warnings die ich nicht unterdrückt bekomme:
PERL WARNING: Crypt::Rijndael_PP: set keysize to 128.
Jemand ne Idee?
Die Meldungen kommen nicht von FHEM sondern vom Rijndael Modul.
Ich habe die Logmeldungen direkt im Rijndael Modul auskommentiert.
Danach ist im Log Ruhe mit den Meldungen.
Evtl kann dir ja ein anderer Modulentwickler helfen.
MfG
Edit:
Du kannst ja mal versuchen statt "-keysize => 16 );"
einfach
" -keysize => 128 / 8 ); "
zu benutzen. evtl verschwinden die meldungen ja dann.
MfG
Zitat von: Tobias am 16 Juni 2017, 14:57:52
Meine 4 Sensoren sind heute endlich angekommen. Und ich musste feststellen das mein alter BT Stick das "lescan" Kommando nicht kann, nur "scan". Also muss ich mir erst noch einen neuen BT 4.0 Stick holen....
Ich würde sagen, falsches Thema oder? ;D ;)
Hatte vorhin folgendes im log:
2017.06.16 17:36:50 2: Roberta: invalid JSON: ����p�T+��Wڃ^
2017.06.16 17:37:08 2: Roberta: connection timeout
Vll hilft es ja irgendwie für zukünftige Versionen. auch wenn man nicht viel draus lesen kann.
Grüße
Zitat von: Shadow3561 am 16 Juni 2017, 15:07:00Ich habe die Logmeldungen direkt im Rijndael Modul auskommentiert.
Brauchst du jetzt nicht mehr.
Zitat von: Esjay am 16 Juni 2017, 19:47:23
Hatte vorhin folgendes im log:
2017.06.16 17:36:50 2: Roberta: invalid JSON: ����p�T+��Wڃ^
2017.06.16 17:37:08 2: Roberta: connection timeout
Decoding Fehler.
Wenn du mit Rijndael gespielt hast, bitte die aktuelle Version runterladen.
Ansonsten kam irgendwas von irgendwo an.
Zitat von: Markus M. am 17 Juni 2017, 00:10:11
Brauchst du jetzt nicht mehr.
Ich weiss, habe gestern Abend selbst noch meinen Tip probiert.
Wollte hier nur nicht unbedingt den Fred vollmüllen. Schön das es klappt, dann habe es andere evtl. ein wenig leichter und das Log nicht mit irgendwelchen Meldungen von Perl voll.
MfG
Und danke für das Modul.
Ich hab's getan, ich hab mir soeben den Staubsauger bestellt. Aktuell 285,- € bei de.gearbest.com.
An dieser Stelle schon mal herzlichen Dank an Markus für das Modul! Und gleich vorab eine Frage zur Kommunikation:
Ich habe für den Sauger ein eigenes WLAN eingerichtet, das nur mit dem Internet aber nicht mit meinem LAN reden kann. Vom LAN aus (also auch von FHEM) ist es allerdings erreichbar. Kann das so funktionieren oder muss der Sauger auch aktiv FHEM kontaktieren können?
Zitat von: Manul am 17 Juni 2017, 12:48:37
Ich hab's getan, ich hab mir soeben den Staubsauger bestellt. Aktuell 285,- € bei de.gearbest.com.
An dieser Stelle schon mal herzlichen Dank an Markus für das Modul! Und gleich vorab eine Frage zur Kommunikation:
Ich habe für den Sauger ein eigenes WLAN eingerichtet, das nur mit dem Internet aber nicht mit meinem LAN reden kann. Vom LAN aus (also auch von FHEM) ist es allerdings erreichbar. Kann das so funktionieren oder muss der Sauger auch aktiv FHEM kontaktieren können?
Ich habe es so gemacht,dass ich ihn zur Einrichtung das Internet erlaubt habe,und ihm anschließend in der Fritzbox das Internet abgedreht habe.Funktioniert alles bestens.Wahrscheinlich braucht er nicht mal Internet zum Einrichten.
Grüße
Ps: Alles richtig gemacht mit dem Kauf.
Ist auch ne Option, aber ich hätte zumindest für den Anfang gerne die Karten in der App. Die kriege ich nach meinem Verständnis doch nur, wenn der Sauger ins Internet kommt, oder? Solange er nur Informationen über sich selbst nach China funkt, weil er an andere nicht rankommt, stört mich das nur begrenzt.
Zitat von: Manul am 17 Juni 2017, 12:48:37Ich habe für den Sauger ein eigenes WLAN eingerichtet, das nur mit dem Internet aber nicht mit meinem LAN reden kann. Vom LAN aus (also auch von FHEM) ist es allerdings erreichbar. Kann das so funktionieren oder muss der Sauger auch aktiv FHEM kontaktieren können?
Zumindest an FHEM muss er antworten können, sonst klappt das nicht.
Antworten sollte er können, nur halt nicht von sich aus eine Verbindung aufmachen.
Zitat von: Manul am 17 Juni 2017, 13:24:00
Antworten sollte er können, nur halt nicht von sich aus eine Verbindung aufmachen.
Verbindung? UDP funktioniert etwas anders.
Okay, ich wusste nicht, daß die Kommunikation per UDP erfolgt.
Okay, nochmal nachgefragt: Erfolgt die Kommunikation zwischen Sauger und FHEM ausschließlich über UDP? Beschränkt sich das auf bestimmte Ports?
Zitat von: Manul am 17 Juni 2017, 14:29:44Erfolgt die Kommunikation zwischen Sauger und FHEM ausschließlich über UDP? Beschränkt sich das auf bestimmte Ports?
Ja, 54321.
Danke. Wenn ich den Sourcecode richtig verstehe, bezieht sich das auf die Staubsaugerseite, oder? Auf FHEM-Seite wird ein zufälliger Port geöffnet!?
Hallo zusammen,
ich hab jetzt versucht mit dem aktuellen Modul meinen Robot einzubinden. Ich hab aber das ähnliche Problem wie einer meiner Vorposter. Sobald ich den Robot eingerichtet habe, geht FHEM Down.
Anbei mal meine Logausgaben meiner Versuche:
mit AES und Rijndael
2017.06.17 18:02:36 2: dingding1: initialized, using AES
2017.06.17 18:02:46 3: dingding1: disconnecting
2017.06.17 18:02:46 2: dingding1: connecting
2017.06.17 18:02:46 3: dingding1: initialized
nur mit Rijndael
2017.06.17 18:04:04 2: dingding1: Crypt::Cipher::AES not found
2017.06.17 18:04:04 2: dingding1: initialized, using Rijndael
2017.06.17 18:04:14 3: dingding1: disconnecting
2017.06.17 18:04:14 2: dingding1: connecting
2017.06.17 18:04:14 3: dingding1: initialized
jedes mal geht fhem mit der Meldung " Undefined subroutine &main::md5 called at ./FHEM/72_XiaomiDevice.pm line 1014." down
Die anfangs erwähnten Module json, md5 usw hab ich installiert.
könnt ihr mir vielleicht helfen?
###edit###
ich hab auch schon ein FW Reset gemacht um ein neues Token und um auf die alte FW zu kommen gemacht. Hat auch nix gebracht
Zitat von: edisondau am 17 Juni 2017, 18:09:19
jedes mal geht fhem mit der Meldung " Undefined subroutine &main::md5 called at ./FHEM/72_XiaomiDevice.pm line 1014." down
könnt ihr mir vielleicht helfen?
Update mit der Version im ersten Post, nochmal probieren.
das ging ja schnell :) prima das scheint es gewesen zu sein
Hallo Markus,
hab eben die neueste Version eingespielt (zuletzt mal vorgestern oder so)...
Wenn ich reload 72_XiaomiDevice.pm mache, kommt:
Can't locate Crypt/Rijndael_PP.pm in @INC (@INC contains: . /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl ./FHEM) at ./FHEM/72_XiaomiDevice.pm line 157.
BEGIN failed--compilation aborted at ./FHEM/72_XiaomiDevice.pm line 157.
gilt das nicht mehr:
- Crypt::Cipher::AES oder Crypt::Rijndael_PP CPAN
Ich habe AES installiert...
...und wie gesagt bis Version von vor heute ( oder gestern / so genau lässt sich das ja nicht sagen, weil Versionsdatum ist immer noch 16.06.2017 oder woran sehe ich welche Version es nun genau ist?) ging es einwandfrei...
Gruß, Joachim
Hallo Markus,
ich habe ein ähnliches Problem:
Bisher, bis einschliesslich Version 2017-06-11, hat bei mir alles funktioniert, der Xiaomi war connected und lies sich über FHEM steuern. Ich hatte dafür "Crypt::Cipher::AES" installiert.
Gerade habe ich auf die Version 2017-06-16 ge-updated, und bekam die gleiche Fehlermeldung von MadMax-FHEM. Damit dann auch ein "reload: Error:Modul 72_XiaomiDevice deactivated:"
Danach habe ich "sudo cpan Crypt::Rijndael_PP" installiert, weil ich dachte das die neue Version nur damit läuft.
Damit läuft der Xiaomi Robot aber nicht, ich bekomme kein 'connect' mehr, der Robot ist immer 'disconnected'.
Leider habe ich gerade die Version 2017-06-11 gelöscht . . . deswegen kann ich auch jetzt nicht mehr zurückgehen. . . :-(
Zitat von: MadMax-FHEM am 18 Juni 2017, 22:16:12
Can't locate Crypt/Rijndael_PP.pm in @INC (@INC contains: . /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl ./FHEM) at ./FHEM/72_XiaomiDevice.pm line 157.
BEGIN failed--compilation aborted at ./FHEM/72_XiaomiDevice.pm line 157.
gilt das nicht mehr:
- Crypt::Cipher::AES oder Crypt::Rijndael_PP CPAN
AES ist nach wie vor bevorzugt.
Bitte nochmal mit der aktuellen Version (von gerade eben) probieren.
Im list vom Device, was steht unter Helper//crypt?
Hallo Markus,
funktioniert leider nicht:
Can't locate Crypt/Rijndael_PP.pm in @INC (@INC contains: . /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl ./FHEM) at ./FHEM/72_XiaomiDevice.pm line 158.
BEGIN failed--compilation aborted at ./FHEM/72_XiaomiDevice.pm line 158.
EDIT: unter Helper/crypt steht AES
EDIT2: aber irgendwie scheint es trotz Fehlermeldung zu laufen, Sauger ist connected und reagiert...
EDIT3: Hab eben die Version eingespielt vom ersten Fehlerpost. Hier auch, Fehlermeldung kommt, Modul funktioniert aber trotzdem und Roboter reagiert...
Gruß, Joachim
Hallo Markus,
bei mir steht da folgendes, mit deiner allerletzen Version "2017-06-16 - Crypt::Rijndael_PP fix" von gerade aus dem POST. Allerdings bekomme ich mit der Version kein 'connect'
nternals:
CHANGED
DEF 192.168.0.18 6c413547472453664725568e4970447a
FD 35
NAME wall_e
NR 2231
STATE disconnected
TYPE XiaomiDevice
device_type
Readings:
2017-06-18 22:55:05 battery ok
2017-06-18 22:55:05 batteryLevel 100
2017-06-18 22:55:05 dnd off
2017-06-18 22:38:28 dnd_enabled off
2017-06-18 22:38:28 dnd_end 14:00
2017-06-18 22:38:28 dnd_start 00:00
2017-06-18 22:55:05 error_code None
2017-06-18 22:55:05 fan_power 60
2017-06-18 22:55:05 last_clean_area 55.78
2017-06-18 22:55:05 last_clean_time 1.05
2017-06-18 22:55:05 map_present no
2017-06-18 22:38:24 serial_number 1387100335091
2017-06-18 22:56:42 state disconnected
2017-06-18 22:56:29 stateOld disconnected
2017-06-18 22:38:32 timer1 off
2017-06-18 22:38:32 timer1_days Tu,Fr
2017-06-18 22:38:32 timer1_time 16:00
2017-06-18 22:38:28 total_clean_area 332.40
2017-06-18 22:38:28 total_clean_time 6.02
2017-06-18 22:38:28 total_cleans 18
2017-06-18 22:55:11 wifi_auth_fail_count 0
2017-06-18 22:55:11 wifi_conn_fail_count 0
2017-06-18 22:55:11 wifi_conn_success_count 1
2017-06-18 22:55:11 wifi_dhcp_fail_count 0
2017-06-18 22:55:11 wifi_state online
Helper:
ConnectionState disconnected
crypt AES
ip 192.168.0.18
last_read 1497819311
packetid 36
port 54321
sequence 1
timer1 1496693165000
timer1_cron 00 16 * * 2,5
timers 1
token 6c413547472453664725568e4970447a
Packet:
0008 app_stop
0009 app_charge
0010 get_consumable
0011 get_serial_number
0012 get_clean_summary
0013 get_dnd_timer
0014 get_timer
1 app_stop
16 get_status
17 app_stop
18 app_charge
19 app_stop
2 app_charge
20 app_charge
21 wifi_stats
22 device_info
24 get_consumable
3 app_stop
34 find_me
35 find_me
4 app_charge
5 find_me
6 app_stop
7 app_charge
Attributes:
event-on-change-reading battery,batteryLevel,error_code,state
group HOMESTATE
room System,Wohnung
subType VacuumCleaner
Zitat von: inoma am 18 Juni 2017, 23:01:17bei mir steht da folgendes, mit deiner allerletzen Version "2017-06-16 - Crypt::Rijndael_PP fix" von gerade aus dem POST. Allerdings bekomme ich mit der Version kein 'connect'
Von eben oder von gerade eben? :)
Gab schon 2 neue Versionen, nur einer von euch hat sie.
Das war ich, ich habe die genommen wo '0-mal geladen' stand :-)
Hallo Markus,
also Version von gerade eben (23:02) funktioniert ohne Fehler! :)
Danke!
Allerdings wie geschrieben: irgendwie funktioniert haben die anderen beiden (oder drei) Versionen auch, nur eben mit der "komischen" Fehlermeldung bei realod...
Gruß, Joachim
Zitat von: inoma am 18 Juni 2017, 23:08:14
Das war ich, ich habe die genommen wo '0-mal geladen' stand :-)
Dann sollte sie auch funktionieren.
Eventuell hilft ein Restart
:-) Der re-start hat geholfen!!!
DANKE!!!! SUPER!!!
Nochmal zur Firmware:
Wie es aussieht, wurde die 3073 zurück gezogen.
Noch vor einer Woche wurde sie mir angeboten, heute meldet mir die App, dass ich mit der 3061 up to date wäre....
Vielleicht haben sie gemerkt dass wir immer noch auf den Sauger zugreifen können :)
Lasst das mit den Updates lieber erst mal!
Das dürfte erst wieder richtig interessant werden wenn sie eine Raumerkennung einbauen.
Hallo Markus,
vielen Dank für das tolle Modul, es ist ausgiebig im Einsatz und ein zweiter Xiaomi Sauger zur Ablösung meines Roomba mit etwas instabiler ThinkingCleaner-Anbindung ist auch schon unterwegs.
:)
Eine Sache, die ich fragen möchte:
Bei der heutigen Staubsaug-Aktion überraschte mich die App auf meinem Handy mit der Meldung "Please clean the dust bin".
Hatte wohl vorher immer rechtzeitig geleert, daher meine Überraschung, dass es so eine Meldung überhaupt gibt.
Ein entsprechendes Reading zum Status des Staubbehälters habe ich jedoch bisher nicht entdeckt. Wäre es denn möglich?
Aktuell ist mein Staubsauger noch mit vollem Behälter unterwegs, also wenn ich etwas checken/auslesen soll, lass es mich bitte wissen, denn natürlich würde ich diese Meldung (bzw. Event) gerne über mein FHEM abwickeln.
Falls es jemand gebrauchen kann, anbei meine Umsetzung im FTUI:
<li data-row="2" data-col="1" data-sizex="5" data-sizey="8">
<header class="big">Status</header>
<div class="vbox">
<div class="card items-center">
<div data-type="label"
data-device="XIAOMI_VACUUM"
data-get="error_code"
data-states='["None","Laser sensor fault","Collision sensor fault","Wheel floating","Cliff sensor fault","Main brush blocked","Side brush blocked","Wheel blocked","Device stuck","Dust bin missing","Filter blocked","Magnetic field detected","Low battery","Charging problem","Battery failure","Wall sensor fault","Uneven surface","Side brush failure","Suction fan failure","Unpowered charging station","Unknown"]'
data-colors='["green","red","red","red","red","red","red","red","red","red","red","red","red","red","red","red","red","red","red","red","red"]'
data-hide="error_code"
data-hide-on="None"
data-hide-off="!None"
class="great blink squareborder">
</div>
<div data-type="label"
data-device="XIAOMI_VACUUM"
data-get="state"
data-states='["disconnected","connected","Docked","Unknown","Starting up","Sleeping","Waiting","Remote control","Cleaning","Returning to base","Manual mode","Charging","Charging problem","Paused","Spot cleaning","Malfunction","Shutting down","Software update","Docking"]'
data-colors='["red","green","green","red","green","green","green","yellow","green","green","blue","yellow","red","yellow","green","red","yellow","yellow","green"]'
data-substitution='["disconnected","Keine Verbindung","connected","Verbunden","Docked","Gedockt","Unknown","Unbekannt","Starting up","Starten","Sleeping","Ruhezustand","Waiting","Wartend","Remote control","Fernbedienung","Cleaning","Saugen","Returning to base","Rückweg","Manual mode","Manuell","Charging","Laden","Charging problem","Ladeproblem","Paused","Pausiert","Spot cleaning","Punktuelle Reinigung","Malfunction","Störung","Shutting down","herunterfahren","Software update","SW Update","Docking","Andocken"]'
class="great">
</div>
<div class="hbox top-space">
<div class="vbox verticalLine">
<div class="card items-center">
<div data-type="label" class="tall">Akku</div>
<div data-type="level"
data-device="XIAOMI_VACUUM"
data-get="batteryLevel"
data-min="0"
data-max="100"
data-height="340"
data-limits='["0","30","70"]'
data-colors='["red","yellow","green"]'
class="large">
</div>
<div class="top-space">
<div data-type="label"
data-device="XIAOMI_VACUUM"
data-get="batteryLevel"
data-unit="%%0A"
class="bigger">
</div>
</div>
</div>
</div>
<div class="vbox">
<div class="card items-center">
<div data-type="label" class="bigger">Sensoren</div>
<div data-type="popup" data-width="380" data-height="120">
<div data-type="label"
data-device="XIAOMI_VACUUM"
data-get="consumables_sensors_h"
class="bigger">
</div>
<div data-type="level"
data-device="XIAOMI_VACUUM"
data-get="consumables_sensors"
data-min="0"
data-max="100"
data-height="15"
data-width="150"
data-limits='["0","10","30"]'
data-colors='["red","yellow","green"]'
class="large horizontal">
</div>
<div class="dialog">
<header class="big">Sensoren</header>
<div data-type="link"
data-width="320"
data-height="60"
data-color="white"
data-background-color="red"
data-icon="fa-recycle"
data-device="XIAOMI_VACUUM"
data-set="reset_consumable sensors"
onclick="$('.dialog-close').trigger('click');"
class="round centered bigger">Rücksetzen
</div>
</div>
</div>
<div data-type="label" class="bigger top-space">Filter</div>
<div data-type="popup" data-width="380" data-height="120">
<div data-type="label"
data-device="XIAOMI_VACUUM"
data-get="consumables_filter_h"
class="bigger">
</div>
<div data-type="level"
data-device="XIAOMI_VACUUM"
data-get="consumables_filter"
data-min="0"
data-max="100"
data-height="15"
data-width="150"
data-limits='["0","10","30"]'
data-colors='["red","yellow","green"]'
class="large horizontal">
</div>
<div class="dialog">
<header class="big">Filter</header>
<div data-type="link"
data-width="320"
data-height="60"
data-color="white"
data-background-color="red"
data-icon="fa-recycle"
data-device="XIAOMI_VACUUM"
data-set="reset_consumable filter"
onclick="$('.dialog-close').trigger('click');"
class="round centered bigger">Rücksetzen
</div>
</div>
</div>
<div data-type="label" class="bigger top-space">Seitenbürste</div>
<div data-type="popup" data-width="380" data-height="120">
<div data-type="label"
data-device="XIAOMI_VACUUM"
data-get="consumables_side_brush_h"
class="bigger">
</div>
<div data-type="level"
data-device="XIAOMI_VACUUM"
data-get="consumables_side_brush"
data-min="0"
data-max="100"
data-height="15"
data-width="150"
data-limits='["0","10","30"]'
data-colors='["red","yellow","green"]'
class="large horizontal">
</div>
<div class="dialog">
<header class="big">Seitenbürste</header>
<div data-type="link"
data-width="320"
data-height="60"
data-color="white"
data-background-color="red"
data-icon="fa-recycle"
data-device="XIAOMI_VACUUM"
data-set="reset_consumable sidebrush"
onclick="$('.dialog-close').trigger('click');"
class="round centered bigger">Rücksetzen
</div>
</div>
</div>
<div data-type="label" class="bigger top-space">Bürste</div>
<div data-type="popup" data-width="380" data-height="120">
<div data-type="label"
data-device="XIAOMI_VACUUM"
data-get="consumables_main_brush_h"
class="bigger">
</div>
<div data-type="level"
data-device="XIAOMI_VACUUM"
data-get="consumables_main_brush"
data-min="0"
data-max="100"
data-height="15"
data-width="150"
data-limits='["0","10","30"]'
data-colors='["red","yellow","green"]'
class="large horizontal">
</div>
<div class="dialog">
<header class="big">Bürste</header>
<div data-type="link"
data-width="320"
data-height="60"
data-color="white"
data-background-color="red"
data-icon="fa-recycle"
data-device="XIAOMI_VACUUM"
data-set="reset_consumable mainbrush"
onclick="$('.dialog-close').trigger('click');"
class="round centered bigger">Rücksetzen
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</li>
<li data-row="2" data-col="6" data-sizex="5" data-sizey="5">
<header class="big">Statistik</header>
<div class="vbox">
<div data-type="label" class="tall">Zuletzt</div>
<div data-type="label"
data-device="XIAOMI_VACUUM"
data-get="last_clean_area"
data-unit=" m²%0A"
class="bigger">
</div>
<div data-type="label"
data-device="XIAOMI_VACUUM"
data-get="last_clean_time_text"
class="bigger">
</div>
<div data-type="label" class="tall top-space">Gesamt</div>
<div data-type="label"
data-device="XIAOMI_VACUUM"
data-get="total_clean_area"
data-unit=" m²%0A"
class="bigger">
</div>
<div data-type="label"
data-device="XIAOMI_VACUUM"
data-get="total_clean_time_text"
class="bigger">
</div>
</div>
</li>
<li data-row="7" data-col="6" data-sizex="5" data-sizey="3">
<header class="big">Einstellung</header>
<div class="vbox">
<div data-type="label" class="tall">Saug-Stärke</div>
<div data-type="slider"
data-device="XIAOMI_VACUUM"
data-get="fan_power"
data-set="fan_power"
data-min="0"
data-max="100"
data-on="100"
data-off="0"
data-step="1"
data-width="350px"
data-handle-diameter="60"
data-touch-diameter="60"
class="tall tap horizontal">
</div>
<div data-type="label"
data-device="XIAOMI_VACUUM"
data-get="fan_power"
data-unit="%%0A"
class="bigger">
</div>
</div>
</li>
<li data-row="2" data-col="11" data-sizex="6" data-sizey="8">
<header class="big">Bedienung</header>
<div class="vbox">
<div data-type="link"
data-width="320"
data-height="60"
data-color="white"
data-background-color="green"
data-icon="fa-play-circle"
data-device="XIAOMI_VACUUM"
data-set="start"
class="round centered bigger">Start
</div>
<div data-type="link"
data-width="320"
data-height="60"
data-color="white"
data-background-color="orange"
data-icon="fa-refresh"
data-device="XIAOMI_VACUUM"
data-set="spot"
class="round centered bigger top-space">Spot
</div>
<div data-type="link"
data-width="320"
data-height="60"
data-color="white"
data-background-color="yellow"
data-icon="fa-pause-circle"
data-device="XIAOMI_VACUUM"
data-set="pause"
class="round centered bigger top-space">Pause
</div>
<div data-type="link"
data-width="320"
data-height="60"
data-color="white"
data-background-color="blue"
data-icon="fa-trash"
data-device="XIAOMI_VACUUM"
data-set="pause"
class="round centered bigger top-space">Leeren
</div>
<div data-type="link"
data-width="320"
data-height="60"
data-color="white"
data-background-color="lightblue"
data-icon="fa-question-circle"
data-device="XIAOMI_VACUUM"
data-set="locate"
class="round centered bigger top-space">Finden
</div>
<div data-type="link"
data-width="320"
data-height="60"
data-color="white"
data-background-color="red"
data-icon="fa-plug"
data-device="XIAOMI_VACUUM"
data-set="charge"
class="round centered bigger top-space">Docken
</div>
</div>
</li>
Für den Button "Leeren" muss ich noch die Fahrmanöver, um in die Nähe des Mülleimers zu kommen, hinterlegen.
Die benötigten userReadings sind (raw Definition):
attr XIAOMI_VACUUM userReadings last_clean_time_text:last_clean_time.*\
{\
my $seconds=ReadingsNum($name,"last_clean_time",0)*60*60;;\
return SecondsToTime($seconds);;\
},\
total_clean_time_text:total_clean_time.*\
{\
my $seconds=ReadingsNum($name,"total_clean_time",0)*60*60;;\
return SecondsToTime($seconds);;\
},\
consumables_filter_h:consumables_filter.*\
{\
my $hours=round((100-ReadingsNum($name,"consumables_filter",0))/100*150,0);;\
return $hours."/150h";;\
},\
consumables_main_brush_h:consumables_main_brush.*\
{\
my $hours=round((100-ReadingsNum($name,"consumables_main_brush",0))/100*300,0);;\
return $hours."/300h";;\
},\
consumables_sensors_h:consumables_sensors.*\
{\
my $hours=round((100-ReadingsNum($name,"consumables_sensors",0))/100*30,0);;\
return $hours."/30h";;\
},\
consumables_side_brush_h:consumables_side_brush.*\
{\
my $hours=round((100-ReadingsNum($name,"consumables_side_brush",0))/100*200,0);;\
return $hours."/200h";;\
}
und die Funktion "SecondsToTime" für die 99_myUtils.pm:
##########################################################
# SecondsToTime
# converts seconds to time
##########################################################
sub SecondsToTime($) {
my ($sec) = @_;
my $s = $sec % 60;
$sec = ($sec - $s) / 60;
my $m = $sec % 60;
$sec = ($sec - $m) / 60;
my $h = $sec % 24;
$sec = ($sec - $h) / 24;
my $d = $sec;
my $ret="";
if ($d < 1) {
$ret = sprintf("%02d"."h "."%02d"."m",$h,$m);}
else {
$ret = sprintf("%02d"."d "."%02d"."h "."%02d"."m",$d,$h,$m);};
return $ret;
}
#----- Ende SecondsToTime ------------------------------
Vielleicht gibt es noch Optimierungspotential, aber für mich funktioniert es erst einmal so.
Andreas
Zitat von: scooty am 19 Juni 2017, 22:30:29
Aktuell ist mein Staubsauger noch mit vollem Behälter unterwegs, also wenn ich etwas checken/auslesen soll, lass es mich bitte wissen, denn natürlich würde ich diese Meldung (bzw. Event) gerne über mein FHEM abwickeln.
list XIAOMI_VACUUM
Hier das list:
Internals:
DEF 192.168.0.123 4a684a536f7630514837735857733554
FD 91
NAME XIAOMI_VACUUM
NR 781
STATE Docked
TYPE XiaomiDevice
device_type
mac 28:6C:07:F8:46:93
model rockrobo.vacuum.v1
token 4a684a536f7630514837735857733554
Readings:
2017-06-20 08:10:16 battery ok
2017-06-20 08:10:16 batteryLevel 100
2017-06-20 07:55:10 consumables_filter 85
2017-06-19 11:55:09 consumables_filter_h 22/150h
2017-06-20 07:55:10 consumables_main_brush 92
2017-06-19 11:55:09 consumables_main_brush_h 24/300h
2017-06-20 07:55:10 consumables_sensors 51
2017-06-19 11:55:09 consumables_sensors_h 15/30h
2017-06-20 07:55:10 consumables_side_brush 89
2017-06-16 17:32:53 consumables_side_brush_h 22/200h
2017-06-20 07:55:06 device_firmware 3.3.6_003061
2017-06-20 07:55:06 device_lifetime 3.11
2017-06-20 08:10:16 dnd off
2017-06-20 07:55:10 dnd_enabled on
2017-06-20 07:55:10 dnd_end 08:00
2017-06-20 07:55:10 dnd_start 22:00
2017-06-20 08:10:16 error_code None
2017-06-20 08:10:16 fan_power 90
2017-06-11 13:43:13 in_cleaning no
2017-06-20 08:10:16 last_clean_area 64.00
2017-06-20 08:10:16 last_clean_time 0.90
2017-06-19 10:55:13 last_clean_time_text 00h 54m
2017-06-20 08:10:16 map_present no
2017-06-20 07:55:06 serial_number 1387100289505
2017-06-20 08:10:16 state Docked
2017-06-20 07:55:10 total_clean_area 1651.07
2017-06-20 07:55:10 total_clean_time 21.51
2017-06-19 11:55:09 total_clean_time_text 21h 30m
2017-06-20 07:55:10 total_cleans 43
2017-06-20 07:55:06 wifi_auth_fail_count 0
2017-06-20 07:55:06 wifi_conn_fail_count 0
2017-06-20 07:55:06 wifi_conn_success_count 1
2017-06-20 07:55:06 wifi_dhcp_fail_count 0
2017-06-20 07:55:06 wifi_rssi -54
2017-06-20 07:55:06 wifi_state online
Helper:
ConnectionState connected
crypt AES
dev 034e
id 4602
ip 192.168.0.123
last_read 1497939016
packetid 400
port 54321
sequence 1
timers 0
token 4a684a536f7630514837735857733554
Packet:
125 get_status
140 get_status
141 get_status
147 get_status
148 get_status
223 get_status
239 get_status
241 get_status
259 get_status
283 get_status
289 get_status
309 get_consumable
310 get_clean_summary
311 get_dnd_timer
312 get_timer
313 get_status
341 get_consumable
351 get_status
368 get_status
61 get_status
Attributes:
event-on-change-reading .*
icon robotvacuum
room XXDG
stateFormat state
subType VacuumCleaner
webCmd start:charge
Andreas
Zitat von: Markus M. am 18 Juni 2017, 23:03:58
Von eben oder von gerade eben? :)
Gab schon 2 neue Versionen, nur einer von euch hat sie.
Hallo Markus,
kannst du bitte eine Versionsangabe integrieren.
Dann ist es, denke ich, einfacher für uns und vor allem für dich wenn es Fragen gibt.
Danke
ErdnaR
@scooty
Vielen lieben Dank...das ist mal genial. ;D ;D
Muss nur noch mein neuer Freund kommen :)
Irgendwie bin ich zu doof...
STATE
Crypt::Cipher::AES or Crypt::Rijndael_PP is required!
Wie bekomme ich das Modul aktiviert/installiert. Schon alles probiert.
Attributes
disable 1
Setze ich den Wert auf 0 stürtz Fhem komplett ab.
Witzig, ich hatte vor einer Stunde das gleiche Problem - allerdings nach einigem spielen gelöst:
Erstmal im Terminal (putty o.ä.)
sudo cpan
dann
install Crypt::Cipher::AES
Viele Grüße
doc
Zitat von: mxtrck am 22 Juni 2017, 23:59:50Crypt::Cipher::AES or Crypt::Rijndael_PP is required!
Wie bekomme ich das Modul aktiviert/installiert. Schon alles probiert.
Indem du eines der beiden Module (bevorzugt AES) mit CPAN installierst:
sudo cpan Crypt::Cipher::AES
Danke für die Hilfe. Jetzt geht es.
Gibt es schon jemanden der über das Modul und über das Alexa Modul den Roboter starten kann?
Also zumindest, "Alexa schalte Staubsauger ein" und "Alexa schalte Staubsauger aus"...?
Zitat von: mxtrck am 23 Juni 2017, 15:30:11
Gibt es schon jemanden der über das Modul und über das Alexa Modul den Roboter starten kann?
Also zumindest, "Alexa schalte Staubsauger ein" und "Alexa schalte Staubsauger aus"...?
Kenne keinen...
...sollte aber über einen "zwischengeschalteten" Dummy etc. problemlos gehen...
...ansonsten gibt es (bzw. sind notwendig) noch alexaMapping/homebridgeMapping zum Anpassen an die "Start- und Stop-Befehle" des Saugers...
Gruß, Joachim
An einen Dummy habe ich auch gedacht. Hat das evtl. schon jemand probiert?
Zitat von: mxtrck am 23 Juni 2017, 15:42:46
An einen Dummy habe ich auch gedacht. Hat das evtl. schon jemand probiert?
Auch hier kenne ich noch niemanden...
Aber das sollte kein Problem sein:
einen "Alexa-tauglichen" Dummy anlegen https://wiki.fhem.de/wiki/Alexa-Fhem#Einfacher_Schalter
define dummySauger dummy
attr dummySauger alexaName Saugi
attr dummySauger genericDeviceType switch
attr dummySauger room AlexaRoom
attr dummySauger setList on off
(der Name sollte von Alexa verstanden werden [können] und room AlexaRoom etc. muss nat. zu deinem Filter in der config.json passen)
dann ein notify
define notifySauger notify dummySauger:(on|off) {myStarteStoppeSauger($EVENT)}
und dann in myUtils auf 'on'/'off' prüfen (und vielleicht noch weitere Dinge) und entsprechend den Sauger starten/stoppen...
Alternativ halt über den Custom Skill mit der Möglichkeit direkt eine sub in myUtils aufzurufen...
...oder wie geschrieben: homebridgeMapping (aber da bin ich nun leider keine Hilfe / evtl. mal im passenden Alexa-Thread fragen).
EDIT: sorry für das Abdriften in o.T.! Besser weiter in einem Alexa-spezifischen Thread...
Gruß, Joachim
Zitat von: mxtrck am 23 Juni 2017, 15:42:46
An einen Dummy habe ich auch gedacht. Hat das evtl. schon jemand probiert?
Hallo,
ich habe einen Dummy mit dem ich den Sauger starten und zurück zum Dock fahren lassen kann.
Momentan benutze ich das nur für Siri, aber das ganze mit dem Alexa Skill zu schalten sollte kein Thema sein. In den richtigen Raum, richtiger Alexa name usw und schon sollte man den Sauger los fahren lassen können.
define Saugen dummy
attr Saugen room Homekit,Wohnzimmer
attr Saugen setList on off
attr Saugen webCmd on:off
define SaugenOff notify SaugRoboter:Charging set Saugen off
define SaugenAn notify SaugRoboter:Cleaning set Saugen on
define Saugenan notify Saugen:on set SaugRoboter start
define Saugenaus notify Saugen:off set SaugRoboter charge
Danke euch beiden. Hab mir da was zusammen gebastelt.
Kann es per Alexa ein- und ausschalten.
Noch eine andere Frage. Kann ich mit dem Roboter Modul den Roboter komplett ausschalten oder bleibt mir da nur langes drücken auf den Ausknopf?
Kurze Frage an alle, wenn ich den bestelle: http://de.gearbest.com/robot-vacuum/pp_440546.html?wid=35
kommen dann noch Zollkosten oder irgendwelche Steuern auf mich zu?
Grüße Marcel
Zitat von: Ma_Bo am 24 Juni 2017, 02:09:07
Kurze Frage an alle, wenn ich den bestelle: http://de.gearbest.com/robot-vacuum/pp_440546.html?wid=35
kommen dann noch Zollkosten oder irgendwelche Steuern auf mich zu?
Grüße Marcel
Nein,du zahlst nur das,was du an Gearbeat zahlst.Zumindest wärst du der erste der Zoll oder Steuern zahlen müsste.Gearbest versteuert wohl pauschal pro Container.Natürlich ohne Gewähr
Grüße
Zitat von: mxtrck am 23 Juni 2017, 23:23:20Kann ich mit dem Roboter Modul den Roboter komplett ausschalten oder bleibt mir da nur langes drücken auf den Ausknopf?
Kannst du nicht.
Hätte ich ein Nachtlicht gewollt, hätte ich mir eins gekauft... [emoji23]
Zitat von: Markus M. am 24 Juni 2017, 12:18:38
Kannst du nicht.
Hätte ich ein Nachtlicht gewollt, hätte ich mir eins gekauft... [emoji23]
Ein Nachtlicht wo putzen kann...
...wenn schon... ;)
Zitat von: mxtrck am 23 Juni 2017, 23:23:20
Noch eine andere Frage. Kann ich mit dem Roboter Modul den Roboter komplett ausschalten oder bleibt mir da nur langes drücken auf den Ausknopf?
Du kannst eine schaltbare Steckdose zwischenschalten...
Dann geht auch das Einschalten wieder...
...wäre ja wohl ein Problem, wenn er über das Modul ganz aus ginge... ;)
Gruß, Joachim
Zitat von: MadMax-FHEM am 24 Juni 2017, 13:10:52
Ein Nachtlicht wo putzen kann...
...wenn schon... ;)
Du kannst eine schaltbare Steckdose zwischenschalten...
Dann geht auch das Einschalten wieder...
...wäre ja wohl ein Problem, wenn er über das Modul ganz aus ginge... ;)
Gruß, Joachim
Die willst Du anstelle des dustbin einsetzen? ;D Ladeteil aus bedeutet doch nicht Sauger aus, der läuft doch auf Akku ... ;D ;D ;D
Zitat von: Markus M. Hätte ich ein Nachtlicht gewollt, hätte ich mir eins gekauft... [emoji23
Heißt das, der Roboter leuchtet beim Laden? Kannst Du das genauer beschreiben oder mal ein Bild einstellen? Ich hatte eigentlich geplant, die Ladestation unter einer Kommode im Schlafzimmer zu plazieren.
Der ovale Ring leuchtet, sehr dezent. Aber im Schlafzimmer :-[
Die Ladestation leuchtet nicht, Du kannst ihn ja Nachts rausschicken :)
Gruß Otto
Zitat von: Manul am 24 Juni 2017, 13:18:19
Heißt das, der Roboter leuchtet beim Laden? Kannst Du das genauer beschreiben oder mal ein Bild einstellen? Ich hatte eigentlich geplant, die Ladestation unter einer Kommode im Schlafzimmer zu plazieren.
Um die beiden Tasten herum leuchtet es leicht weiß.Sonst niergends.Ist nicht wirklich hell.Meiner Meinung nach guckt man dem Roboter eh nicht zu,also könntest du weißes Isolierband nehmen,und es abkleben. Vll stört es ja auch gar nicht, und die Gedanken darüber sind unnötig.Ansonsten schau es dir doch bei youtube an.
Grüße
Wenn man die Wohnung nachts dunkel mag, ist das verdammt hell. Im Schlafzimmer geht das keinesfalls.
Meine low-tech Lösung war, einfach was draufzulegen.
Die Taste braucht man eh nie.
Danke, ich schau's mir mal an, wenn der Sauger endlich da ist. Ich könnte mir vorstellen, daß das unter der Kommode sogar geht.
Dann bin ich mal gespannt, habe soeben für 285€ plus Zubehörteile bestellt.
Grüße Marcel
Zitat von: Manul am 24 Juni 2017, 13:50:49
...unter der Kommode sogar geht.
So einen Parkplatz hatte ich auch erst überlegt, allerdings ist's dann müssig mit dem Auslesen des Behalters. Aber meiner steht auch im Wohnzimmer in einer Ecke - entgegen manch anderen Teil ist er samt Station eigentlich Recht chic.
Zitat von: distel am 25 Juni 2017, 20:09:37
So einen Parkplatz hatte ich auch erst überlegt, allerdings ist's dann müssig mit dem Auslesen des Behalters.
Damit fährt er 1 meter aus seinem Versteck, wenn einer nach Hause kommt.
defmod nty_RobotM1 notify nty_RobotM1 set MyRobot fan_power 1;;sleep 10;;set MyRobot remotecontrol start;; sleep 10;; set MyRobot move 0 50 5000;;sleep 10;;set MyRobot remotecontrol stop
Damit fährt er wieder zurück:
defmod nty_RobotM2 notify nty_RobotM2 set MyRobot charge;; sleep 10;;set MyRobot fan_power 60;;set di_MyRobot2 disable
Dazu gehören noch zwei DOIFs, das Erste triggert wenn alle raus sind, das zweite triggert Wenn man zurück kommt nachdem er geladen ist. Wenn er dann eine Weile im Zimmer gestanden hat, egal ob man ihn beachtet hat oder nicht, fährt er wieder zurück.
defmod di_MyRobot DOIF (["AlleAnwesend:absent"]) (set MyRobot start) DOELSEIF (["AlleAnwesend:present"] and [MyRobot] eq "Cleaning") (set MyRobot pause) DOELSEIF ([23:00]) (set MyRobot charge, set di_MyRobot2 initialize)
defmod di_MyRobot2 DOIF (["AlleAnwesend:present"] and [MyRobot] eq "Docked" and [di_MyRobot] eq "cmd_1") (trigger nty_RobotM1) \
DOELSEIF (["MyRobot:Sleeping"]) (trigger nty_RobotM2)
Vielleicht gibt es ja in Zukunft noch detailliertere Readings/States.
Gruß Otto
Hallo,
sehe ich das richtig das er jedes mal wenn alle raus sind beginnt zu reinigen?
Zitat von: zernima am 26 Juni 2017, 09:02:23
Hallo,
sehe ich das richtig das er jedes mal wenn alle raus sind beginnt zu reinigen?
einmal am Tag, ja. Wenn man wiederkommt bevor er fertig ist, unterbricht er sofort und setzt fort wenn man wieder geht. Die ersten beiden .*IF Zweige sorgen dafür, dass nur ein Reinigungsgang am Tag erfolgt, der letzte DOELSEIF Zweig wird 23:00 getriggert, wenn man danach geht wird er Zyklus von neuem beginnen. Eine Eigenschaft von DOIF wenn man nicht do always setzt. 8)
Gruß Otto
Sehr schön. Aber wo genau wird abgefangen das nur er nur einmal am Tag fährt? Ich würde ihn gern 3 mal die Woche fahren lassen. mal sehen ob ich das rein bekomme ;)
Das ist ein Feature von DOIF. Habe ich eine Weile gebraucht, das zu verstehen. 8)
Wenn er in cmd_1 hängt und sich die Bedingungen für diesen Zweig nicht ändern und kein anderer Zweig getriggert wird, bleibt er dort hängen bis man ihn rausholt.
Ich steuere das quasi mit dem DOELSEIF ([23:00]) Zweig. Wenn Du ([06:00|Mo Mi Fr]) reinschreibst macht er es einmal und in Folge nur an diesen Tagen.
Ooooooook ... wieder mal was gelernt. Vielen Dank. Werde ich auf jedenfall ausprobieren. Ich muss auch mal versuchen och ich ihn in die Küche schicken kann um da zu saugen. Müsste eigentlich ein Problem sein.
Hat schon jemand die Firmware 3077 getestet?
Danke
ErdnaR
Zitat von: erdnar am 27 Juni 2017, 15:32:15Hat schon jemand die Firmware 3077 getestet?
3.3.9_003077 kann auf bereits eingerichteten Saugern bedenkenlos installiert werden.
Zitat von: Markus M. am 27 Juni 2017, 23:10:41
3.3.9_003077 kann auf bereits eingerichteten Saugern bedenkenlos installiert werden.
Jep eben aufgespielt...
...scheint noch zu tun... :)
Gruß und danke, Joachim
Ich hatte fast einen (kleinen) Herzkasper. :o Der Sauger lies sich nach dem Update fast 5 Minuten nicht herab mit Fhem zu kommunizieren. Mit der Handy-App lief alles. Wie gesagt, irgendwann war dann doch wieder Kontakt und alles lief ::)
Danke
ErdnaR
Der automatische Reconnect fehlt noch. Überhaupt funktioniert die Disconnect Erkennung wohl nicht mehr.
Behebe ich irgendwann noch. Bis dahin einfach reconnect nach Updates und Sauger Neustarts.
und immer dran denken, dass der Sauger alle Versionen vom installierten bis zum aktuellen installiert. Es gibt kein kumulatives Update
Markus vielen Dank für das Modul, läuft klasse !
In dem Modul ist schon die Funktion get map vorhanden, wie bekomme ich denn die cleanID ?
Gruß Peter F
Ich hätte da auch mal ne Frage. Wenn ich den Sauger im Remote Modus immer die selbe Strecke in die Küche fahren würde um da via Spot Reinigung sauber zu machen, würde er dann Hindernissen auch ausweichen die plötzlich auf dem Weg liegen? Oder wie würde er sich da verhalten?
Zitat von: Freibeuter am 28 Juni 2017, 14:02:19In dem Modul ist schon die Funktion get map vorhanden, wie bekomme ich denn die cleanID ?
Maps liegen extra geschützt in der Xiaomi Cloud und das Format ist auch unbekannt.
Keine Chance!
Zitat von: zernima am 28 Juni 2017, 14:40:21
Ich hätte da auch mal ne Frage. Wenn ich den Sauger im Remote Modus immer die selbe Strecke in die Küche fahren würde um da via Spot Reinigung sauber zu machen, würde er dann Hindernissen auch ausweichen die plötzlich auf dem Weg liegen? Oder wie würde er sich da verhalten?
Dann fährt er leicht dagegen bzw. rum, anschließend definitiv nicht mehr in die Küche sondern saugt stattdessen dort wo er am Ende stehen bleibt.
Hey Markus, hast du dir schon irgendwelche Automatismen bezüglich des Luftreinigers erstellt.Du hast ihn ja schon ein wenig länger im Einsatz. Bin gerade am überlegen, wie man das Device am Besten einsetzt. Klar ist jede Umgebung anders, aber vll hast du ja ein paar Tips.
Zum Roboter wollte ich mal nachfragen, ob die Readings
consumables_filter_h 22/150h
consumables_main_brush_h 24/300h
consumables_sensors_h 15/30h
consumables_side_brush_h 22/200h
erst nach dem Update des Roboters zur Verfügung stehen? Habe die Readings bisher nicht, habe allerdings auch noch kein Update des Roboters durchgeführt.
Grüße
Zitat von: Esjay am 28 Juni 2017, 18:48:03
Hey Markus, hast du dir schon irgendwelche Automatismen bezüglich des Luftreinigers erstellt.Du hast ihn ja schon ein wenig länger im Einsatz. Bin gerade am überlegen, wie man das Device am Besten einsetzt. Klar ist jede Umgebung anders, aber vll hast du ja ein paar Tips.
Mit
set preset und
set restore kannst du beispielsweise einen Zustand speichern und wiederherstellen.
Die Helligkeit der LEDs mit at/notify automatisch zu steuern ist auch nicht verkehrt.
ZitatZum Roboter wollte ich mal nachfragen, ob die Readings consumables_filter_h 22/150h
consumables_main_brush_h 24/300h
consumables_sensors_h 15/30h
consumables_side_brush_h 22/200h
erst nach dem Update des Roboters zur Verfügung stehen?
Die Readings gibt es nicht, nur in Prozent. Wo hast du die gesehen?
Zitat von: scooty am 20 Juni 2017, 08:23:28
Hier das list:
Internals:
DEF 192.168.0.123 4a684a536f7630514837735857733554
FD 91
NAME XIAOMI_VACUUM
NR 781
STATE Docked
TYPE XiaomiDevice
device_type
mac 28:6C:07:F8:46:93
model rockrobo.vacuum.v1
token 4a684a536f7630514837735857733554
Readings:
2017-06-20 08:10:16 battery ok
2017-06-20 08:10:16 batteryLevel 100
2017-06-20 07:55:10 consumables_filter 85
2017-06-19 11:55:09 consumables_filter_h 22/150h
2017-06-20 07:55:10 consumables_main_brush 92
2017-06-19 11:55:09 consumables_main_brush_h 24/300h
2017-06-20 07:55:10 consumables_sensors 51
2017-06-19 11:55:09 consumables_sensors_h 15/30h
2017-06-20 07:55:10 consumables_side_brush 89
2017-06-16 17:32:53 consumables_side_brush_h 22/200h
2017-06-20 07:55:06 device_firmware 3.3.6_003061
2017-06-20 07:55:06 device_lifetime 3.11
2017-06-20 08:10:16 dnd off
2017-06-20 07:55:10 dnd_enabled on
2017-06-20 07:55:10 dnd_end 08:00
2017-06-20 07:55:10 dnd_start 22:00
2017-06-20 08:10:16 error_code None
2017-06-20 08:10:16 fan_power 90
2017-06-11 13:43:13 in_cleaning no
2017-06-20 08:10:16 last_clean_area 64.00
2017-06-20 08:10:16 last_clean_time 0.90
2017-06-19 10:55:13 last_clean_time_text 00h 54m
2017-06-20 08:10:16 map_present no
2017-06-20 07:55:06 serial_number 1387100289505
2017-06-20 08:10:16 state Docked
2017-06-20 07:55:10 total_clean_area 1651.07
2017-06-20 07:55:10 total_clean_time 21.51
2017-06-19 11:55:09 total_clean_time_text 21h 30m
2017-06-20 07:55:10 total_cleans 43
2017-06-20 07:55:06 wifi_auth_fail_count 0
2017-06-20 07:55:06 wifi_conn_fail_count 0
2017-06-20 07:55:06 wifi_conn_success_count 1
2017-06-20 07:55:06 wifi_dhcp_fail_count 0
2017-06-20 07:55:06 wifi_rssi -54
2017-06-20 07:55:06 wifi_state online
Helper:
ConnectionState connected
crypt AES
dev 034e
id 4602
ip 192.168.0.123
last_read 1497939016
packetid 400
port 54321
sequence 1
timers 0
token 4a684a536f7630514837735857733554
Packet:
125 get_status
140 get_status
141 get_status
147 get_status
148 get_status
223 get_status
239 get_status
241 get_status
259 get_status
283 get_status
289 get_status
309 get_consumable
310 get_clean_summary
311 get_dnd_timer
312 get_timer
313 get_status
341 get_consumable
351 get_status
368 get_status
61 get_status
Attributes:
event-on-change-reading .*
icon robotvacuum
room XXDG
stateFormat state
subType VacuumCleaner
webCmd start:charge
Andreas
Bin am überlegen, ob ich mir die Werte umdrehe, sprich anstatt 80% sauber, 20% verdreckt etc. deswegen hab ich mal alles gelesen, ob das vll schon jemand hat, und da ist mir das List aufgefallen.
Zitat von: Esjay am 28 Juni 2017, 19:51:24Bin am überlegen, ob ich mir die Werte umdrehe, sprich anstatt 80% sauber, 20% verdreckt etc. deswegen hab ich mal alles gelesen, ob das vll schon jemand hat, und da ist mir das List aufgefallen.
Das sind entweder Userreadings oder ein modifiziertes Modul.
Die userReadings findest Du in diesem Beitrag (https://forum.fhem.de/index.php/topic,73052.msg650293.html#msg650293), einfach nach Deinen Wünschen anpassen.
Andreas
Zitat von: scooty am 28 Juni 2017, 21:16:55
Die userReadings findest Du in diesem Beitrag (https://forum.fhem.de/index.php/topic,73052.msg650293.html#msg650293), einfach nach Deinen Wünschen anpassen.
Andreas
Ok,da ich TabletUi nicht nutze,hab ich das wohl überlesen. Dank dir!
Neue Version die nun auch den Ventilator und die Schreibtischlampe unterstützt.
Zitat von: Markus M. am 29 Juni 2017, 23:55:45
Neue Version die nun auch den Ventilator und die Schreibtischlampe unterstützt.
Hallo Markus,
hab zwar keinen Ventilator und auch keine Schreibtischlampe (also zumindest nicht von Xiaomi) aber zumindest habe ich nach dem Einspielen keine Probleme mit dem Staubsauger...
Soweit Info von mir...
Danke, Joachim
Zitat von: Markus M. am 29 Juni 2017, 23:55:45
Neue Version die nun auch den Ventilator und die Schreibtischlampe unterstützt.
Moin Markus.
Kannst du in der nächsten Version eine Versionierung einführen?
Danke
Wäre es auch denkbar, dass ihr das Modul soweit updated, dass es mit den Xiaomi Philips Birnen arbeitet? Leider funktionieren diese ad-hoc nicht über die Mi LED Desk Lamp Funktion, obwohl sie eigentlich die gleichen Funktionen haben.
Zitat von: darthi am 30 Juni 2017, 09:55:11
Wäre es auch denkbar, dass ihr das Modul soweit updated, dass es mit den Xiaomi Philips Birnen arbeitet? Leider funktionieren diese ad-hoc nicht über die Mi LED Desk Lamp Funktion, obwohl sie eigentlich die gleichen Funktionen haben.
Hast du nen Link dazu?
Was funktioniert nicht? Gar nichts?
Bekommst du überhaupt nen Token beim Verbinden? Wenn nicht könnte es daran liegen.
Zitat von: oli82 am 30 Juni 2017, 09:45:29Kannst du in der nächsten Version eine Versionierung einführen?
Das Datum steht jeweils in der Datei.
Aktuell ist das Ganze noch work in progress.
Hi Markus,
Vielen Dank für das Modul!
Funktioniert einwandfrei mit meinem
- Mi Robot
- AirPurifier
und (seit dem letzten Update) der
- Xiaomi Philips EyeCare Smart Lamp
Topp!!
Grüße
Ralf
Zitat von: ralf-ms am 30 Juni 2017, 14:10:17
und (seit dem letzten Update) der
- Xiaomi Philips EyeCare Smart Lamp
Dann funktionieren also beide Schreibtischlampen, ich hab die andere.
Brauchst du noch irgendwelche Transitions oder cron?
Mir reicht eigentlich der Sleep Mode und bei on/off, brightness und ct kannst du als zweiten Parameter jetzt schon die Zeit mitgeben.
@scooty
Vielen dank für Deine ausführliche Beschreibung bzgl. Einbindung ins FTUI!
Bei mir haben allerdings die XIAOMI Befehle über das Widget link nicht funktioniert, wie Du es beschrieben hast.
Statt z.B.
Zitatdata-device="XIAOMI_VACUUM"
data-set="start"
musste ich Folgendes verwenden, damit es funzt:
data-fhem-cmd="set XIAOMI_VACUUM start"
@Markus: Das Modul läuft hervorragend, danke dafür!
vg stoxx
Könnte jemand bitte den folgenden Weg, an das Token zu kommen, etwas genauer beschreiben? Vielen Dank!
Zitat von: Markus M. am 11 Juni 2017, 12:49:25
Einrichtung ohne App: (alle FWs?)
- Token auslesen und WLAN-Anmeldung ohne die Xiaomi App vornehmen mit folgendem Request:
{"id":1111,"method":"miIO.config_router","params":{"country_domain":"sg","ssid":"<SSID>","uid":<XIAOMI_USERID>,"gmt_offset":3600,"passwd":"<PASS>"}}
Zitat von: Manul am 01 Juli 2017, 18:09:52
Könnte jemand bitte den folgenden Weg, an das Token zu kommen, etwas genauer beschreiben? Vielen Dank!
Du liest den Token wie bisher direkt aus dem zurückgesetzten Sauger aus und verwendest dann anstelle der Mi-Home App FHEM zum WLAN einrichten.
Dazu muss FHEM aber direkt mit dem Sauger WLAN verbunden werden.
Alternativ kannst du den Befehl auch mit dem Python Script abschicken. Dazu gehört dann noch ein zweiter Befehl der den Einrichtungsmodus beendet.
Guck am besten mal in den Code.
Moin, hier mal zur Xiaomi Philips Light Bulb:
Zitat von: Markus M. am 30 Juni 2017, 10:34:02
Hast du nen Link dazu?
Was funktioniert nicht? Gar nichts?
Bekommst du überhaupt nen Token beim Verbinden? Wenn nicht könnte es daran liegen.
bei mir funktioniert die Lampe (http://www.gearbest.com/smart-lighting/pp_644095.html) sehr gut.
- ins Netzwerk eingebunden mit der Mi-App (Achtung: Locale muss Mainland China sein, mein MiRobot ist in den USA eingerichtet, musste erst umschalten - leider sieht man da die Geräte aus dem jeweils anderen locale nicht mehr..)
- In FHEM als XiaomiDevice eingerichtet, subType SmartLamp und stateformat power gesetzt
Ergebnis: on/off/toggle / brightness gehen, ct nicht.
Markus:
Vielen Dank! Wenn Du noch eine Lampe zum testen brauchst - ich habe noch eine, die ich im Moment nicht benötige, schicke ich Dir für die coole Arbeit gern. Im Moment wird noch ein Update der Lampe auf die 1.30 angeboten (Device-Firmware, nicht WifiFirmware) - da bin ich im Moment noch unsicher. Never touch a running system :) Gern kann ich auch Debug-Infos liefern, falls Du Interesse hast. (Wie immer: Du machst das in Deiner Freizeit und für die Community - das ist mir völlig bewusst, auf keinen Fall eine Aufforderung oder Druck hier reinlesen)
Viele Grüße
Danny
[/list]
Internals:
DEF 192.168.180.39
FD 27
NAME Philips_Lamp_1
NR 95
STATE on
TYPE XiaomiDevice
device_type
mac 28:6C:07:AC:18:2F
model philips.light.bulb
token 89b8fece86cf52d2d069a907e017cb00
wifi_firmware 1.3.0
Readings:
2017-07-01 19:20:58 brightness 71
2017-07-01 19:11:48 device_firmware 1.2.7_0028
2017-07-01 19:11:48 device_lifetime 0.76
2017-07-01 19:20:58 power on
2017-07-01 19:11:48 wifi_auth_fail_count 0
2017-07-01 19:11:48 wifi_conn_fail_count 0
2017-07-01 19:11:48 wifi_conn_success_count 1
2017-07-01 19:11:48 wifi_dhcp_fail_count 0
2017-07-01 19:11:48 wifi_rssi -72
2017-07-01 19:11:48 wifi_state online
Helper:
ConnectionState connected
crypt AES
dev 0330
id 96b9
ip 192.168.180.39
last_read 1498929658
packetid 64
port 54321
sequence 1498926364
timers 0
token 89b8fece86cf52d2d069a907e017cb00
Packet:
power_off
37 set_light
Attributes:
stateFormat power
subType SmartLamp
Zitat von: Markus M. am 30 Juni 2017, 10:34:02
Hast du nen Link dazu?
Was funktioniert nicht? Gar nichts?
Bekommst du überhaupt nen Token beim Verbinden? Wenn nicht könnte es daran liegen.
Hi,
erst einmal ein Link zu den Glühbirnen: http://www.gearbest.com/smart-lighting/pp_644095.html
Funktionieren mit der Mi Home App problemlos.
Und ja, es funktioniert in FHEM gar nichts. Beim Versuch zu Verbinden erhalte ich den Token "00000000000000000000000000000000". Da hat also irgendwas schon nicht geklappt. Ich habe sie nur als Subtype "SmartLamp" definiert. Hier meine Device Infos:
Internals:
DEF 192.168.101.120
FD 14
NAME Philips
NR 67
STATE power
TYPE XiaomiDevice
device_type
token 00000000000000000000000000000000
Helper:
ConnectionState connected
crypt AES
dev 039d
id 3d25
ip 192.168.101.120
last_read 1498947358
packetid 7
port 54321
sequence 1498944201
token 00000000000000000000000000000000
Packet:
1 wifi_stats
2 device_info
3 get_serial_number
4 lamp_data
5 lamp_data
6 power_off
Attributes:
subType SmartLamp
verbose 0
edit: Ich habe leider, anders als shinebar, die Firmware Version 1.3.0 auf der Birne.
Hier noch ein Auszug aus meiner Log beim Verusch zu verbinden:
2017.07.01 23:38:22 3: Philips: disconnecting
2017.07.01 23:38:22 2: Philips: connecting
2017.07.01 23:38:22 3: Philips: initialized
2017.07.01 23:38:22 5: Philips: initSend
2017.07.01 23:38:22 4: Philips Send SUCCESS
2017.07.01 23:38:22 5: Philips > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2017.07.01 23:38:22 5: Philips < 2131002000000000039d3d250000038400000000000000000000000000000000 (32)
2017.07.01 23:38:22 4: Philips - recv seq 900/1498945102
2017.07.01 23:38:26 5: Philips: write {"id":44,"method":"miIO.wifi_assoc_state","params":[""]} (56)
2017.07.01 23:38:26 5: Philips: send 2131006000000000039d3d2500000388860a6a9323c41e363473179f091099d2393c054465f28f748c715649fc1a25c05e36a2e76f38d1376924a7c988f2507f0f78b6091e5ff3898b439e8e83ea16624f4d1cccdcbb9b8f1a2b1c240101e8a1
2017.07.01 23:38:26 4: Philips Send SUCCESS
2017.07.01 23:38:26 5: Philips > 2131006000000000039d3d2500000388860a6a9323c41e363473179f091099d2393c054465f28f748c715649fc1a25c05e36a2e76f38d1376924a7c988f2507f0f78b6091e5ff3898b439e8e83ea16624f4d1cccdcbb9b8f1a2b1c240101e8a1
2017.07.01 23:38:26 5: Philips: write {"id":45,"method":"miIO.info","params":[""]} (44)
2017.07.01 23:38:26 5: Philips: send 2131005000000000039d3d25000003884a8e42cdfbef51d8490696a56950727e65e6ff14a4e6b91b6dd171538ed09d44687b32a8b99c5f7399d00f4a64edb09e4460b03678245930f7b6d43411badd9b
2017.07.01 23:38:26 4: Philips Send SUCCESS
2017.07.01 23:38:26 5: Philips > 2131005000000000039d3d25000003884a8e42cdfbef51d8490696a56950727e65e6ff14a4e6b91b6dd171538ed09d44687b32a8b99c5f7399d00f4a64edb09e4460b03678245930f7b6d43411badd9b
2017.07.01 23:38:26 5: Philips: write {"id":46,"method":"get_serial_number","params":[""]} (52)
2017.07.01 23:38:26 5: Philips: send 2131006000000000039d3d250000038850fb5fa070a7aa51a2727f7894791a72eddf7d17d5c42b5c51b250318d3eaba87730234b0fee3ca6e34af08954f727efa56cee74b9fe6b06587b1bae809d77f75c0249995d21a255c3ea8d8a90702455
2017.07.01 23:38:26 4: Philips Send SUCCESS
2017.07.01 23:38:26 5: Philips > 2131006000000000039d3d250000038850fb5fa070a7aa51a2727f7894791a72eddf7d17d5c42b5c51b250318d3eaba87730234b0fee3ca6e34af08954f727efa56cee74b9fe6b06587b1bae809d77f75c0249995d21a255c3ea8d8a90702455
2017.07.01 23:38:26 5: Philips < 2131006000000000039d3d2500000388ffffffffffffffffffffffffffffffff (96)
2017.07.01 23:38:26 4: Philips - recv seq 904/1498945106
2017.07.01 23:38:26 4: Philips: decrypted
2017.07.01 23:38:26 2: Philips: invalid JSON:
2017.07.01 23:38:26 5: Philips < 2131005000000000039d3d2500000388ffffffffffffffffffffffffffffffff (80)
2017.07.01 23:38:26 4: Philips - recv seq 904/1498945106
2017.07.01 23:38:26 4: Philips: decrypted
2017.07.01 23:38:26 2: Philips: invalid JSON:
2017.07.01 23:38:26 5: Philips < 2131006000000000039d3d2500000388ffffffffffffffffffffffffffffffff (96)
2017.07.01 23:38:26 4: Philips - recv seq 904/1498945106
2017.07.01 23:38:26 4: Philips: decrypted
2017.07.01 23:38:26 2: Philips: invalid JSON:
2017.07.01 23:38:29 5: Philips: write {"id":47,"method":"get_prop","params":["power","bright","ct","color_mode","delayoff","flowing","flow_params","name"]} (117)
2017.07.01 23:38:29 5: Philips: send 213100a000000000039d3d250000038b33701860a65c42ee63303c444ded963d8de9944ee60bf6d9c63c5435d926343f112d6d015f6b3ddda086db31288f3643dae25a91826b2c1ceba1f84f6c043053b894489e31dae6644422369b174b81ee39e47a2c559c62b559e144f8301218e2d0bd7037b80c35935c3964674e58e737a69bea862f6a5ba46d0e74e2e83f3f855955e6a8717472b0ce3af6159052eb66
2017.07.01 23:38:29 4: Philips Send SUCCESS
2017.07.01 23:38:29 5: Philips > 213100a000000000039d3d250000038b33701860a65c42ee63303c444ded963d8de9944ee60bf6d9c63c5435d926343f112d6d015f6b3ddda086db31288f3643dae25a91826b2c1ceba1f84f6c043053b894489e31dae6644422369b174b81ee39e47a2c559c62b559e144f8301218e2d0bd7037b80c35935c3964674e58e737a69bea862f6a5ba46d0e74e2e83f3f855955e6a8717472b0ce3af6159052eb66
2017.07.01 23:38:29 5: Philips < 213100a000000000039d3d250000038bffffffffffffffffffffffffffffffff (160)
2017.07.01 23:38:29 4: Philips - recv seq 907/1498945109
2017.07.01 23:38:29 4: Philips: decrypted
2017.07.01 23:38:29 2: Philips: invalid JSON:
2017.07.01 23:38:32 5: Philips: write {"id":48,"method":"get_prop","params":["power","bright","ct","color_mode","delayoff","flowing","flow_params","name"]} (117)
2017.07.01 23:38:32 5: Philips: send 213100a000000000039d3d250000038eab1fb528c7b327a7a6022e780e6948aa4c877e51e2d0ba9be0f8b4f0c47c8eeaa354d7bd2447756edb820ab4d912b58e3d3fe691bd54e9c36e7e832faeafe32c876b3d31bc37e569e1403c0d7f09791946195ed4f95615b3d797c65e9f9fa58d5f322698a2d2875389266b2d1f13d959ad99d90ea333808b38146bfe1e11fa0e46012f76f9d702594b471f991b9fea5a
2017.07.01 23:38:32 4: Philips Send SUCCESS
2017.07.01 23:38:32 5: Philips > 213100a000000000039d3d250000038eab1fb528c7b327a7a6022e780e6948aa4c877e51e2d0ba9be0f8b4f0c47c8eeaa354d7bd2447756edb820ab4d912b58e3d3fe691bd54e9c36e7e832faeafe32c876b3d31bc37e569e1403c0d7f09791946195ed4f95615b3d797c65e9f9fa58d5f322698a2d2875389266b2d1f13d959ad99d90ea333808b38146bfe1e11fa0e46012f76f9d702594b471f991b9fea5a
2017.07.01 23:38:32 5: Philips < 213100a000000000039d3d250000038effffffffffffffffffffffffffffffff (160)
2017.07.01 23:38:32 4: Philips - recv seq 910/1498945112
2017.07.01 23:38:32 4: Philips: decrypted
2017.07.01 23:38:32 2: Philips: invalid JSON:
Zitat von: shinebar am 01 Juli 2017, 19:30:42
Ergebnis: on/off/toggle / brightness gehen, ct nicht.
Leider keine Doku und kein color_mode, den Rest spuckt sie auch nicht aus - probier mal rgb etc., siehe Anhang.
Ansonsten vielleicht raten:
set Philips_Lamp_1 json {"id":123,"method":"get_prop","params":["color_temperature","temperature","colortemperature","level","color","temp","x","irgendwasanderes"]}
Zitat von: darthi am 01 Juli 2017, 23:27:29
Beim Versuch zu Verbinden erhalte ich den Token "00000000000000000000000000000000".
Also ein Security Update... Reagiert nun wie der Sauger mit neuer Firmware.
Entweder zurücksetzen und den Token vor dem Einrichten auslesen (sofern das überhaupt geht) oder über die Backup Methode.
Zitat von: Markus M. am 30 Juni 2017, 15:22:34
Dann funktionieren also beide Schreibtischlampen, ich hab die andere.
Brauchst du noch irgendwelche Transitions oder cron?
Mir reicht eigentlich der Sleep Mode und bei on/off, brightness und ct kannst du als zweiten Parameter jetzt schon die Zeit mitgeben.
Alles gut! Danke!
on/off und brightness reichen völlig (Farbtemperatur kann die EyeCare ja nicht).
Zitat von: Markus M. am 01 Juli 2017, 18:23:25
Du liest den Token wie bisher direkt aus dem zurückgesetzten Sauger aus und verwendest dann anstelle der Mi-Home App FHEM zum WLAN einrichten.
Ah, danke, das hatte ich falsch verstanden. Ich dachte, das wäre eine Methode, um den Token auszulesen
und das WLAN einzurichten.
Wie auch immer, Token ist ausgelesen und Sauger in FHEM integriert.
Zitat von: Markus M. am 02 Juli 2017, 00:23:28
Also ein Security Update... Reagiert nun wie der Sauger mit neuer Firmware.
Entweder zurücksetzen und den Token vor dem Einrichten auslesen (sofern das überhaupt geht) oder über die Backup Methode.
Hmm... den Token vor der Einrichtung auslesen bekomme ich irgendwie nicht hin. Die Flole App scheint nur nach Staubsaugern zu suchen und nicht nach anderen Devices. Das Python Script bekomme ich widerrum unter Windows nicht zum Laufen.
Und mit der Backup Methode mit dem MiToolkit, bekomme ich jedesmal den Fehler "Es scheint ein Fehler aufgetreten zu sein, das Backup ist viel zu klein".
Die Glühbirne downgraden ist anscheinend auch nicht möglich. Habe wohl vor erst Pech gehabt mit dem Birnchen :(
edit:
Hab es nun hinbekommen. Habe das Backup vom MiToolkit manuell mit
java -jar abe.jar unpack 'PfadZu\backup.ab' 'PfadZu\backup.tar'
konvertiert und anschließend entpackt.
Nun konnte ich mit SQLite DB Browser den Token in der Datei \apps\com.xiaomi.smarthome\db\miio2.db anzeigen lassen.
Steuerung klappt mit dem Plugin genauso wie bei shinebar. Vielen Dank! Wenn ich jetzt noch das Wechseln der Farbtemperatur zum Laufen bekomme, wäre es göttlich :)
Noch ein edit :)
Also anscheinend wird die Farbtemperatur über "cct" gesteuert zwischen 1 und 100, wobei 1 = warmweiss ist und 100 = kaltweiss.
In der entsprechenden StatePhilipsXYZ.xml steht Folgendes:
<map>
<string name="power">on</string>
<int name="snm" value="0" />
<int name="bright" value="30" />
<int name="cct" value="1" />
<int name="dv" value="0" />
</map>
Kannst du damit etwas anfangen?
Zitat von: Markus M. am 02 Juli 2017, 00:23:28
Leider keine Doku und kein color_mode, den Rest spuckt sie auch nicht aus - probier mal rgb etc., siehe Anhang.
Ansonsten vielleicht raten:
set Philips_Lamp_1 json {"id":123,"method":"get_prop","params":["color_temperature","temperature","colortemperature","level","color","temp","x","irgendwasanderes"]}
Okay, kein Problem - scheint zu funktionieren. In der App heisst der Wert cct, hier kommt auch - als einiziges - ein Result zurück. Was mir noch aufgefallen ist: Device Lifetime ist vermutlich eher "Uptime", das wurde bei mir heute Nacht genullt (Lampe war aus).
2017.07.02 11:21:19 2: Philips_Lamp_1: message type for id 123 not found!
$VAR1 = {
'result' => [
47
],
'id' => 123
};
Dann finde mal irgendwie raus wie sich das setzen lässt:
set Philips_Lamp_1 json {"id":124,"method":"set_cct","params":[5000, "smooth",1000]}
set Philips_Lamp_1 json {"id":125,"method":"set_cct","params":[5000]}
set Philips_Lamp_1 json {"id":126,"method":"set_cct_abx","params":[5000, "smooth",1000]}
set Philips_Lamp_1 json {"id":127,"method":"set_cct_abx","params":[5000]}
set Philips_Lamp_1 json {"id":128,"method":"set_prop","params":["cct",5000]}
Es läuft über
set Philips_Lamp_1 json {"id":124,"method":"set_cct","params":[100]}
Der Wert muss zwischen 1 und 100 sein. Wobei 1 warmweiss ist und 100 kaltweiss.
Hab das Modul gerade mal testweise auf die Philips Birnen angepasst mit dem "cct"-Wert. Den "ct" Wert für die Schreibtischlampen habe ich aber überschrieben. Das Modul funktioniert also so nur für die Philips Lampen korrekt. Ich habe es angehängt.
Ist aber für mich jetzt schon einmal eine super Lösung, um die Philips Birnen in FHEM zu steuern!
Vielen Dank Markus für deine Hilfe und Arbeit! Wenn du Zeit hast, kannst du es sicherlich noch einmal sauber in dein Modul implementieren, am Besten unter einem neuen subType PhilipsBULB.
Zitat von: darthi am 02 Juli 2017, 14:48:03Wenn du Zeit hast, kannst du es sicherlich noch einmal sauber in dein Modul implementieren, am Besten unter einem neuen subType PhilipsBULB.
Längst passiert, im ersten Beitrag.
Was tun eigentlich
snm und
dv?
Zitat von: Markus M. am 02 Juli 2017, 15:06:34
Längst passiert, im ersten Beitrag.
Super, vielen Dank!
Mir ist aber eben aufgefallen, dass da irgendwas aktuell noch mit den cct und ct Readings vertauscht ist. Außerdem darf set cct erst bei 1 und nicht bei 0 beginnen.
Zitat von: darthi am 02 Juli 2017, 15:22:21Mir ist aber eben aufgefallen, dass da irgendwas aktuell noch mit den cct und ct Readings vertauscht ist. Außerdem darf set cct erst bei 1 und nicht bei 0 beginnen.
Stimmt. Sollte jetzt besser funktionieren.
Danke!
Die Reading sind aber immer noch vertauscht bzw. verkehrt. Wenn ich cct einstelle, taucht es als ct Reading auf. Das cct Reading bleibt auf 0.
Zeigt das cct Reading vielleicht auf den ct Wert, den ja die Philips Lampe nicht unterstützt?
Zitat von: darthi am 02 Juli 2017, 16:21:31
Danke!
Die Reading sind aber immer noch vertauscht bzw. verkehrt. Wenn ich cct einstelle, taucht es als ct Reading auf. Das cct Reading bleibt auf 0.
Zeigt das cct Reading vielleicht auf den ct Wert, den ja die Philips Lampe nicht unterstützt?
Kann es sein dass deine Lampe bei unbekannten Werten die du anfrägst nicht mit einem leeren String oder undef antwortet sondern das in der Antwort komplett verwirft?!
set lamp json {"id":123,"method":"get_prop","params":["cct","emptystring","bright","dv","x"]}
sollte ein Array der Länge 5 liefern
Zwei Fragen zum Roboter bzw. Modul:
Weiß jemand, in welcher Einheit "device_lifetime" angegeben wird?
Kann es sein, daß die DND-Zeit sich auf eine andere Zeitzone bezieht? Weiß jemand, auf welche? Ich würde auf chinesische Standardzeit (UTC+8) tippen, hat das schon mal jemand überprüft?
Zitat von: Manul am 02 Juli 2017, 16:56:03
Weiß jemand, in welcher Einheit "device_lifetime" angegeben wird?
Stunden, heisst seit eben
device_uptimeSoll ich es zu Sekunden ändern?
ZitatKann es sein, daß die DND-Zeit sich auf eine andere Zeitzone bezieht? Weiß jemand, auf welche? Ich würde auf chinesische Standardzeit (UTC+8) tippen, hat das schon mal jemand überprüft?
Kann sein. Das mit der Zeitzone kriegen die irgendwie nicht auf die Reihe, obwohl beim Setup angegeben. Sommerzeit kennen die meisten Geräte garantiert auch nicht.
Danke!
Zitat von: Markus M. am 02 Juli 2017, 17:31:01
Stunden, heisst seit eben device_uptime
Soll ich es zu Sekunden ändern?
Ich denke, Stunden ist okay. Was genau gibt diese Zeit denn an? Bei mir ist sie kleiner als die total_clean_time (0.75 vs. 1.36) , ich weiß gerade nicht, wie ich das interpretieren soll.
Zitat von: Markus M. am 02 Juli 2017, 17:31:01
Kann sein. Das mit der Zeitzone kriegen die irgendwie nicht auf die Reihe, obwohl beim Setup angegeben. Sommerzeit kennen die meisten Geräte garantiert auch nicht.
Ich hab's gerade mal ausprobiert, scheint tatsächlich UTC+8 zu sein. Das würde auch die fehlende Sommerzeit erklären, die ist in China wohl abgeschafft. Bei welchem Setup konntest Du/kann man das denn angeben? Ich hab nichts gefunden.
Zitat von: Manul am 02 Juli 2017, 18:20:45
Ich denke, Stunden ist okay. Was genau gibt diese Zeit denn an? Bei mir ist sie kleiner als die total_clean_time (0.75 vs. 1.36) , ich weiß gerade nicht, wie ich das interpretieren soll.
Die Uptime. Zeit seit dem letzten Neustart.
ZitatIch hab's gerade mal ausprobiert, scheint tatsächlich UTC+8 zu sein. Das würde auch die fehlende Sommerzeit erklären, die ist in China wohl abgeschafft. Bei welchem Setup konntest Du/kann man das denn angeben? Ich hab nichts gefunden.
Beim Setup sendet die App automatisch
gmt_offset und teilweise die (ebenfalls richtige weil aus dem Telefon ermittelte) Zeitzone an das Gerät.
Zitat von: Markus M. am 02 Juli 2017, 16:44:02
Kann es sein dass deine Lampe bei unbekannten Werten die du anfrägst nicht mit einem leeren String oder undef antwortet sondern das in der Antwort komplett verwirft?!
set lamp json {"id":123,"method":"get_prop","params":["cct","emptystring","bright","dv","x"]}
sollte ein Array der Länge 5 liefern
Gute Frage... Also der set Befehl von dir (natürlich mit meinem Device :) liefert bei mir nur einen Array der Länge 3 (siehe unten).
Dahingegen aktualisiert "get Stehleuchte data" aktualisiert brightness, cct, color_mode, ct und power.
2017.07.02 18:43:19 5: Stehleuchte: write {"id":123,"method":"get_prop","params":["cct","emptystring","bright","dv","x"]} (79)
2017.07.02 18:43:19 5: Stehleuchte: send 2131007000000000039d3d25000039ecedcaefa737db254b8497deeb7dc7bd9977b74c0284550aec4ef8f6c18ac05ca48e2611b35a4cd4e9c5ec8fee8ec911bbc2049771d16927fbd848b9fbf42c3676e4cb155dccf94c84e106c6b2e798b99d19e2ed152d65633ee4dd6147d8853fd2
2017.07.02 18:43:19 4: Stehleuchte Send SUCCESS
2017.07.02 18:43:19 5: Stehleuchte > 2131007000000000039d3d25000039ecedcaefa737db254b8497deeb7dc7bd9977b74c0284550aec4ef8f6c18ac05ca48e2611b35a4cd4e9c5ec8fee8ec911bbc2049771d16927fbd848b9fbf42c3676e4cb155dccf94c84e106c6b2e798b99d19e2ed152d65633ee4dd6147d8853fd2
2017.07.02 18:43:19 5: Stehleuchte < 2131004000000000039d3d25000039ebe5a01f65ab95d277180daa5782f3f4388eb6c7c7f4bc9e911289abcdab91b8c98b077556c54b4a8dff9016c3d12d2e40 (64)
2017.07.02 18:43:19 4: Stehleuchte - recv seq 14827/1499013799
2017.07.02 18:43:19 4: Stehleuchte: decrypted
{"result":[1,50,0],"id":123}
2017.07.02 18:43:19 4: Stehleuchte: parse id 123
$VAR1 = {
'id' => 123,
'result' => [
1,
50,
0
]
};
2017.07.02 18:43:19 3: Stehleuchte: parse id 123 /
2017.07.02 18:43:19 2: Stehleuchte: message type for id 123 not found!
$VAR1 = {
'id' => 123,
'result' => [
1,
50,
0
]
};
Zitat von: Markus M. am 02 Juli 2017, 18:26:22
Beim Setup sendet die App automatisch gmt_offset und teilweise die (ebenfalls richtige weil aus dem Telefon ermittelte) Zeitzone an das Gerät.
Okay. Kann man die interne Zeit und Zeitzone des Geräts irgendwie auslesen oder gar setzen? Falls nicht, was hältst Du von einer automatischen Umrechnung localtime<->UTC+8?
Zitat von: darthi am 02 Juli 2017, 18:35:10
Gute Frage... Also der set Befehl von dir (natürlich mit meinem Device :) liefert bei mir nur einen Array der Länge 3 (siehe unten).
Dahingegen aktualisiert "get Stehleuchte data" aktualisiert brightness, cct, color_mode, ct und power.
Dann mach erst mal sauber, eigentlich sollte mit der aktuellen Version jetzt schon alles funktionieren:
deletereading Stehleuchte .*
Nach einem refresh dann bitte ein list vom Device.
Gibt color_mode bei dir was zurück?
So hier mein "sauberes" Device:
Internals:
CFGFN
DEF 192.168.101.120 db938e401f240f0a8c8ee91c5cef03c6
FD 21
NAME Stehleuchte
NR 656
STATE off
TYPE XiaomiDevice
device_type
mac 34:CE:00:9A:C9:00
model philips.light.bulb
token db938e401f240f0a8c8ee91c5cef03c6
wifi_firmware 1.5.0-dev(7f7a714)
Readings:
2017-07-02 19:51:44 brightness 50
2017-07-02 19:51:44 cct 0
2017-07-02 19:51:44 color_mode 0
2017-07-02 19:51:44 ct 1
2017-07-02 19:51:44 power off
Helper:
ConnectionState connected
crypt AES
dev 039d
id 3d25
ip 192.168.101.120
last_read 1499017904
packetid 51
port 54321
sequence 1498998971
timers 0
token db938e401f240f0a8c8ee91c5cef03c6
Packet:
Attributes:
group Licht
room Wohnzimmer
stateFormat power
subType SmartLamp
webCmd brightness:cct:on:off
widgetOverride brightness:colorpicker,BRI,0,1,100 cct:colorpicker,CT,100,1,1
ct und cct stimmen leider nach wie vor nicht. Der cct-Wert wird immer noch im ct-Reading zurückgegeben.
color_mode gibt anscheinend "0" zurück. Aber ggf. gehört die dann auch zu etwas anderen.
Wenn ich mir das mapping aus der MiHome App angucke, könnte das wieder hiermit hinkommen:
<map>
<string name="power">on</string>
<int name="snm" value="0" />
<int name="bright" value="30" />
<int name="cct" value="1" />
<int name="dv" value="0" />
</map>
Ich habe zwar keine Ahnung, was snm und dv ist, aber das würde passen. Anscheinend wird dann im Array der snm und dv irgendwo zugeordnet und deswegen passt der Rest nicht mehr? Vielleicht müsstest du die Philips Birne doch von den generellen SubType SmartLamp trennen und als neuen SubType anlegen?!
Readings nochmal löschen, Anhang ausprobieren
Wenn das nicht passt musst du mit JSON rausfinden was deine Lampe tatsächlich zurückgibt, einzeln je Reading.
Zitat von: Manul am 02 Juli 2017, 18:39:18
Okay. Kann man die interne Zeit und Zeitzone des Geräts irgendwie auslesen oder gar setzen? Falls nicht, was hältst Du von einer automatischen Umrechnung localtime<->UTC+8?
Zwischen den längeren Beiträgen untergegangen oder keine Lust zu antworten? Ich würde so eine Konvertierung implementieren, aber nur, wenn Du sie eventuell auch einbauen würdest.
Zitat von: Markus M. am 02 Juli 2017, 20:08:38
Readings nochmal löschen, Anhang ausprobieren
Wenn das nicht passt musst du mit JSON rausfinden was deine Lampe tatsächlich zurückgibt, einzeln je Reading.
Danke! Beim Anhang passen die Readings nun.
Zitat von: Manul am 02 Juli 2017, 20:13:46
Zwischen den längeren Beiträgen untergegangen oder keine Lust zu antworten? Ich würde so eine Konvertierung implementieren, aber nur, wenn Du sie eventuell auch einbauen würdest.
Ich hab mir das mal angesehen.
Spätestens wenn sich dann die Tage auch noch ändern, macht das keinen Spass mehr.
Ich würde auf Xiaomi warten.
Zitat von: Markus M. am 02 Juli 2017, 20:29:24
Spätestens wenn sich dann die Tage auch noch ändern, macht das keinen Spass mehr.
Wie gesagt: Ich biete an, mich dran zu versuchen.
Zitat von: Markus M. am 02 Juli 2017, 20:29:24
Ich würde auf Xiaomi warten.
Rechnest Du denn damit, daß da noch was kommt? Ich wäre eher skeptisch.
Hast Du mal mitgeschnitten, welchen Offset die App beim Einrichten sendet? Die meisten von uns dürften die App ja auf "mainland China" gestellt haben, vielleicht sendet sie ja deswegen UTC+8 statt lokaler Zeit.
Zitat von: Manul am 02 Juli 2017, 23:26:44Hast Du mal mitgeschnitten, welchen Offset die App beim Einrichten sendet? Die meisten von uns dürften die App ja auf "mainland China" gestellt haben, vielleicht sendet sie ja deswegen UTC+8 statt lokaler Zeit.
Die App sendet als Offset 7200, (nur) beim Air Purifier auch noch die Zeitzone Berlin als Text.
Wenn du basteln möchtest:
Ich würde ein Attribut für den Offset oder die Zeitzone anlegen, eine Funktion schreiben die Stunden entgegennimmt und die berechneten Stunden nebst Tagesoffset ausspuckt.
Wenn man einen Timer für mehrere Tage anlegt wird das aber hässlich.
Wenn man den Sauger in der Ladestation parkt, braucht man die Timer ja sowieso nicht.
Zitat von: Markus M. am 02 Juli 2017, 23:39:27
Ich würde ein Attribut für den Offset oder die Zeitzone anlegen, eine Funktion schreiben die Stunden entgegennimmt und die berechneten Stunden nebst Tagesoffset ausspuckt.
Ich schau's mir mal an. Welchen Offset würdest Du denn ins Attribut schreiben? Ich hätte jetzt den lokalen aus der localtime ausgelesen und für die interne Zeit fest UTC+8 angenommen.
Zitat von: Markus M. am 02 Juli 2017, 23:39:27
Wenn man einen Timer für mehrere Tage anlegt wird das aber hässlich.
Müsste aber auch gehen. Kurz nachgefragt, ob ich den datestring richtig verstanden habe:
- Für einen täglichen Timer wird der ds als "* * *" gesetzt und als "* * all" vom Sauger ausgegeben
- Für ein festes Datum ist der ds "<d> <m> *" mit <d> = Tag und <m> = Monat
- Für Wiederholung an bestimmten Tagen wird "* * X" gesetzt und "* * Y" ausgegeben. Hierbei besteht X aus beliebigen Elementen "0" (Sonntag) bis "7" (Samstag), Y entsprechend aus "Su" bis "Sa". Einzelne Elemente werden durch Leerzeichen getrennt
Soweit richtig? Hab ich noch was übersehen?
Zitat von: Markus M. am 02 Juli 2017, 23:39:27
Wenn man den Sauger in der Ladestation parkt, braucht man die Timer ja sowieso nicht.
Warum? Da hab ich wohl irgendwas nicht mitgekriegt.
Zitat von: Manul am 03 Juli 2017, 10:50:23
Ich schau's mir mal an. Welchen Offset würdest Du denn ins Attribut schreiben? Ich hätte jetzt den lokalen aus der localtime ausgelesen und für die interne Zeit fest UTC+8 angenommen.
Eigentlich müsste man da die Ziel-Zeitzone reinschreiben, also z.B. was auch immer China hat.
Der Unterschied wird dann aus der Zeitzone des Systems berechnet.
Klappt bei abweichender Sommerzeit aber auch nicht wirklich durchgängig :)
ZitatMüsste aber auch gehen. Kurz nachgefragt, ob ich den datestring richtig verstanden habe:
- Für einen täglichen Timer wird der ds als "* * *" gesetzt und als "* * all" vom Sauger ausgegeben
- Für ein festes Datum ist der ds "<d> <m> *" mit <d> = Tag und <m> = Monat
- Für Wiederholung an bestimmten Tagen wird "* * X" gesetzt und "* * Y" ausgegeben. Hierbei besteht X aus beliebigen Elementen "0" (Sonntag) bis "7" (Samstag), Y entsprechend aus "Su" bis "Sa". Einzelne Elemente werden durch Leerzeichen getrennt
Soweit richtig? Hab ich noch was übersehen?
Jepp. Mit verbose 5 siehst du was gesendet wird.
ZitatWarum? Da hab ich wohl irgendwas nicht mitgekriegt.
Weil der einzige Fall in dem ein interner Timer überhaupt Sinn machen könnte der ist, bei dem der Sauger das WLAN abgeschaltet hat weil er irgendwo in einem anderen Stockwerk rumsteht. (Und ich weiss noch nicht mal ob das überhaupt klappen würde)
Im Normallfall gibt es absolut keinen Grund, das Reinigungsprogramm nicht ausschliesslich direkt aus FHEM zu starten.
Ich starte das Ding beispielsweise nachdem alle die Wohnung verlassen haben, nicht zu einer fixen Uhrzeit.
Zitat von: Markus M. am 03 Juli 2017, 11:00:52
Ich starte das Ding beispielsweise nachdem alle die Wohnung verlassen haben, nicht zu einer fixen Uhrzeit.
Genauso mache ich das auch. Das ist ja auch mich ein Hauptgrund warum ich das in FHEM integriere.
Ohne FHEM und nur mit der App klappt es ja, egal welche Zeitzone im Hintergrund spielt (zumindest bei meinem einen Versuch)
Schaltet der das WLAN ab wenn er irgendwo rumsteht? habe ich noch gar nicht beobachtet. Letztens hatte ich ihn im OG die halbe Nacht stehen lassen und dann hat mein Automatismus (noch nicht perfekt) ihn in die Ladestation geschickt, da hat er natürlich rumgeningelt. ;D
Gruß Otto
Zitat von: Markus M. am 03 Juli 2017, 11:00:52
Eigentlich müsste man da die Ziel-Zeitzone reinschreiben, also z.B. was auch immer China hat.
Kennst Du denn ein Beispiel, bei dem der Sauger eine andere Zeitzone als China (=UTC+8, keine Sommerzeit) hat?
Zitat von: Markus M. am 03 Juli 2017, 11:00:52
Klappt bei abweichender Sommerzeit aber auch nicht wirklich durchgängig :)
Kann man irgendwie auf die Sommerzeitumstellung triggern? Dann müsste man zu dem Zeitpunkt einfach nur die Zeiten aus den Readings neu berechnen und an den Sauger übertragen.
Zitat von: Markus M. am 03 Juli 2017, 11:00:52
Jepp. Mit verbose 5 siehst du was gesendet wird.
Danke, guter Tip!
Zitat von: Markus M. am 03 Juli 2017, 11:00:52
Im Normallfall gibt es absolut keinen Grund, das Reinigungsprogramm nicht ausschliesslich direkt aus FHEM zu starten.
Ist sicher auch Geschmackssache. Ich denke trotzdem, wenn der Sauger schon interne Timer hat, sollte man die auch über das Modul möglichst komfortabel stellen können.
Zitat von: Otto123 am 03 Juli 2017, 11:21:37
Ohne FHEM und nur mit der App klappt es ja, egal welche Zeitzone im Hintergrund spielt (zumindest bei meinem einen Versuch)
Echt? Da hat er sich an die Zeit gehalten, die Du in der App eingestellt hattest? Hat bei mir nicht geklappt, muß ich noch mal ausprobieren.
Zitat von: Otto123 am 03 Juli 2017, 11:21:37
da hat er natürlich rumgeningelt. ;D
Bitte was hat er? ;)
Ja ok, kommt wohl eher aus meiner Gegend und ist außerhalb von Mitteldeutschland ungebräuchlich
ningeln -> kläglich jammern ;D
Hallo,
ist es eigentlich normal das mein Robi anch gewisser Zeit auf "disconnected" geht?
Hat meiner bis jetzt nur einmal nach dem Firmware-Update gemacht. Steht er denn im Dock oder frei?
Der steht schön anständig im Dock :)
Dann fällt mir auch nix ein. Ist bei mir, wie gesagt, noch nicht passiert, aber ich habe den Roboter ja auch erst seit Samstag.
Hat jemand spontan eine Idee, wie ich ein webCmd setzen kann, das den Roboter ein Stückchen nach vorne fahren lässt?
Muss ich mal beobachten :)
So mach ich das:
define leeren dummy
attr leeren setList on off
attr leeren webCmd on:off
define noleeren notify leeren:on set Robi fan_power 1;;sleep 10;;set Robi remotecontrol start;; sleep 10;; set Robi move 0 50 5000;;sleep 10;; set Robi remotecontrol stop
Danke. Ohne zusätzliches device wäre mir lieber, aber ich schau mal.
Wie oft kommt denn der disconnect in etwa vor?
Das bin ich gerade am testen :) sobald ich es weiß melde ich mich
Funktioniert der dnd-Modus bei Euch eigentlich? Mein Sauger zeigt ihn gerade als 'on' an, plappert aber munter drauflos.
Aktuell ist mein Sauger auch "disconnected". Die letzten readings sind von heute, 9:32. Kurz danach habe ich drei Einträge "disconnecting", "connecting" und "connection timeout" im Log.
Was den leeren-dummy angeht: Hat jemand eine Idee, warum die langen sleeps notwendig sind? Macht Dein Roboter auch selbst auf fan_power 1 relativ viel Krach im remotecontrol mode?
Zitat von: Otto123 am 03 Juli 2017, 11:21:37
Ohne FHEM und nur mit der App klappt es ja, egal welche Zeitzone im Hintergrund spielt (zumindest bei meinem einen Versuch)
Kannst Du das nochmal genauer ausführen? Hat sich der Roboter an die in der App eingestellten Zeiten nach lokaler Zeit gehalten? Galt das für dnd oder für einen timer? Bevor ich evtl. Aufwand in eine Zeitumrechnung investiere, würde ich gerne verstehen, was genau derzeit eigentlich passiert.
Hi,
zu den sleep Zeiten: Wenn man ihn zu schnell die Befehle gibt, akzeptiert er sie eventuell nicht. Ich habe probiert, optimiert - und dann lief es beim nächsten "scharfen" Lauf wieder nicht. Also einfach die 10 sec und gut ist 8)
Ich habe als er neu war den Timer ausprobiert, der hat genau so funktioniert. Aber wie gesagt, jetzt startet FHEM.
Dein Problem mit dem DND verstehe ich nicht? Bei mir steht er Nachts eh im Dock und sagt nichts. Der sagt doch im Dock nie etwas?
Gruß Otto
Zitat von: Otto123 am 04 Juli 2017, 12:32:09
zu den sleep Zeiten: Wenn man ihn zu schnell die Befehle gibt, akzeptiert er sie eventuell nicht. Ich habe probiert, optimiert - und dann lief es beim nächsten "scharfen" Lauf wieder nicht. Also einfach die 10 sec und gut ist 8)
Danke. Würde mich halt interessieren, warum die Pausen so lang sein müssen. 10 Sekunden finde ich schon ganz schön viel. Ich hatte eigentlich den Gedanken, einen Wandtaster anzubringen, der den Roboter ein Stück nach vorn fahren lässt. Wenn das jedes mal 30 Sekunden dauert, bücke ich mich lieber und hole ihn per Hand unter dem regal raus.
Zitat von: Otto123 am 04 Juli 2017, 12:32:09
Ich habe als er neu war den Timer ausprobiert, der hat genau so funktioniert. Aber wie gesagt, jetzt startet FHEM.
Okay, dann werde ich noch mal experimentieren, wenn ich die Zeit dazu finde.
Zitat von: Otto123 am 04 Juli 2017, 12:32:09
Dein Problem mit dem DND verstehe ich nicht? Bei mir steht er Nachts eh im Dock und sagt nichts. Der sagt doch im Dock nie etwas?
Ich hatte DND-Mode so verstanden, daß der Roboter, egal was er tut, keine unnötigen Geräusche macht und insbesondere nicht spricht. Also z.B. auch bei einem Firmware-Update oder wenn man, wie ich gestern, mit der Ausparkroutine experimentiert. Das scheint nicht der Fall zu sein. Weiß jemand, was der DND-Mode dann überhaupt bewirkt?
Das meinte ich, wenn man ihn nachts fahren lässt, ist es auch egal ob er redet ;D fahren ist lauter.
Das mit dem rausfahren mache ich halt wenn ich nach Hause komme. Bevor ich wirklich im Haus bin ist er fertig und steht mitten im Zimmer.
Aber du kannst ja die Zeiten selbst testen. Auf alle Fälle hat er keine Befehlsqueue die er abarbeitet. Und man weiß auch nicht, wann er einen Befehl abgearbeitet hat. Zumal er, glaube ich, zwischendrin "immer mal mit China redet". D.h. es gibt unterschiedliche Verzögerungen zwischen den Befehlen.
Gruß Otto
Eine Theorie zur Zeitzone die ich heute Abend mal testen werde:
Das Problem ist von Xiaomi per App Update und Firmware behoben, greift aber nur wenn der Sauger neu eingerichtet wird.
Ich bin in englischen Foren zwischenzeitlich auf die Theorie/Behauptung gestoßen, daß lediglich der DND-Timer nach chinesischer Zeit arbeitet, der Cleaning-Timer hingegen nach lokaler Zeit, ohne allerdings die Sommerzeitumstellung mitzumachen (wobei nicht ersichtlich war, ob er grundsätzlich auf Winterzeit läuft oder die bei der Einrichtung gültige Zeit dauerhaft beibehält).
Ich hatte bei der Einrichtung die aktuelle Version der App, den Firmwarestand bei Auslieferung habe ich mir leider nicht gemerkt.
Zitat von: Manul am 04 Juli 2017, 16:17:44der Cleaning-Timer hingegen nach lokaler Zeit...
Vor 2 Wochen hat mein 8 Uhr Test Timer (den ich komplett vergessen hatte) um 1 Uhr nachts losgelegt.
Ich war glücklicherweise noch wach...
Interessant. 1 Uhr nachts hiesige Sommerzeit entspräche 7 Uhr chinesischer Zeit. Das passt irgendwie hinten und vorne nicht. Ich werde auch mal ein wenig experimentieren, wenn ich die Zeit finde. Der DND-Modus scheint jedenfalls nach UTC+8, also chinesischer Zeit zu schalten.
Okay, ich glaube, ich hab's:
Für den Cleaning-Timer rechnet die App um, der Roboter speichert intern in chinesischer Zeit. Versuchsmethode: Ich habe kurz nach 18 Uhr in der App einen Timer für 18:03 und einen für 0:05 (entspräche, als chinesische Zeit interpretiert, 18:05) angelegt. Der Roboter lief um 18:03 los. Der 2. Timer wird mir in FHEM mit Uhrzeit 6:05 angezeigt. Tatsächlich hatte ich auch in der App, als ich zum Hauptmenü und dann zurück zum Roboter gewechselt habe, kurz die internen Zeiten des Roboters (also 0:03 und 6:05) gesehen, bevor die Anzeige auf 18:03 und 0:05 wechselte.
Für den DND-Timer scheint das nicht zu gelten, hier zeigen App und FHEM die gleichen Zeiten an.
Zitat von: Manul am 04 Juli 2017, 18:27:55
Okay, ich glaube, ich hab's
Xiaomi auch...
Alle Zeitzonenprobleme sind längst behoben, das greift aber nur bei neu eingerichteten Geräten.
Glücklicherweise funktioniert das WLAN Setup ohne Token-Änderung:
set vacuum wifi_setup DEINWLANNAME DEINWLANPASSWORT DEINEXIAOMIUSERID
Zitat von: Markus M. am 04 Juli 2017, 23:21:17
Xiaomi auch...
Alle Zeitzonenprobleme sind längst behoben, das greift aber nur bei neu eingerichteten Geräten.
Glücklicherweise funktioniert das WLAN Setup ohne Token-Änderung:
set vacuum wifi_setup DEINWLANNAME DEINWLANPASSWORT DEINEXIAOMIUSERID
Bedeutet das, daß ich das Wlan ändern kann ohne den Roboter zurückzusetzen? ;D
Hallo zernima.
ZitatBedeutet das, daß ich das Wlan ändern kann ohne den Roboter zurückzusetzen?
Falls ich den Roboter zurücksetze, hat der Roboter ja erstmal keine Verbindung zu FHEM, also kann ich kein "set vacuum wifi_setup ..." machen. Dann baut der Roboter erstmal sein eigenes WLAN auf.
Deswegen verstehe ich das so, das eine existierende WLAN Verbindung zum Roboter durch ein neues WLAN mit neuem Passwort ersetzt wird.
Zitat von: Markus M. am 04 Juli 2017, 23:21:17
Xiaomi auch...
Alle Zeitzonenprobleme sind längst behoben, das greift aber nur bei neu eingerichteten Geräten.
Glücklicherweise funktioniert das WLAN Setup ohne Token-Änderung:
set vacuum wifi_setup DEINWLANNAME DEINWLANPASSWORT DEINEXIAOMIUSERID
Prima, probier ich so bald wie möglich aus.
Zwei Fragen noch: Was ist mit Sonderzeichen (insbes. Semikolon) im WLAN-key? Muß ich die escapen, wenn ich die SET-Eingabebox in FHEMWEB benutze? XIAOMIUSERID ist die numerische, die in der App angezeigt wird, nicht die email-Adresse, mit der ich registriert bin, richtig?
Zitat von: Manul am 05 Juli 2017, 12:21:57Zwei Fragen noch: Was ist mit Sonderzeichen (insbes. Semikolon) im WLAN-key? Muß ich die escapen, wenn ich die SET-Eingabebox in FHEMWEB benutze?
XIAOMIUSERID ist die numerische, die in der App angezeigt wird, nicht die email-Adresse, mit der ich registriert bin, richtig?
Keine Ahnung, alles ausser " sollte eigentlich ok sein.
Die numerische, richtig.
Danke. Ich probier's dann doch lieber, wenn ich zu Hause bin.
So, ich hab's nochmal probiert und kann nicht bestätigen, daß sich was geändert hätte. Ich habe das wifi_setup wie beschrieben vorgenommen und anschließend in der App einen timer auf 22:00 gesetzt. Der wird mir in FHEM als "timer1_time 04:00" angezeigt. Die App scheint also nach wie vor intern umzurechnen und die Zeit im Roboter nach wie vor auf UTC+8 zu laufen.
Die DND-Zeiten werden in der App und in FHEM gleich angezeigt.
Bei mir passt alles.
Hab aber auch nen Reset gemacht.
Hast du iOS? Den App Cache gelöscht?
Zitat von: Markus M. am 06 Juli 2017, 16:37:48
Hab aber auch nen Reset gemacht.
Von was? Roboter, Handy, FHEM?
Zitat von: Markus M. am 06 Juli 2017, 16:37:48
Hast du iOS? Den App Cache gelöscht?
Nein, Android. App-Cache löschen kann ich nochmal ausprobieren, wenn Du meinst, daß das was bringen könnte.
Vom Roboter. Dann musst du aber den Token neu auslesen. Solltest du allerdings dann vorher ausprobieren ob das mit dem MiToolkit klappt.
Vielleicht passt die Android App auch noch nicht.
Zumindest bei iOS wird das Staubsauger Paket nachgeladen, deshalb der Cache.
Okay, Cache gelöscht, Plugin wurde neu geladen. Timer auf 0:55 gesetzt -> in FHEM als 6:55 angezeigt.
Ich hatte den Token über die Flole-App ausgelesen. Weißt Du, ob das mit der aktuellen Firmware noch geht?
Zitat von: Manul am 06 Juli 2017, 16:59:27
Okay, Cache gelöscht, Plugin wurde neu geladen. Timer auf 0:55 gesetzt -> in FHEM als 6:55 angezeigt.
Ich hatte den Token über die Flole-App ausgelesen. Weißt Du, ob das mit der aktuellen Firmware noch geht?
Dann liegt es wohl an Android oder was auch immer. Einfach auf den Fix warten. Bei mir ist alles super.
Token auslesen geht leider nur noch über ein App Backup, da nach der Einrichtung ein neuer erzeugt wird der nur über die Cloud kommuniziert wird.
Hab den dritten Beitrag bereits angepasst.
Zitat von: Markus M. am 06 Juli 2017, 17:23:50
Dann liegt es wohl an Android oder was auch immer. Einfach auf den Fix warten. Bei mir ist alles super.
Kannst Du das genauer beschreiben? Heißt das, Du siehst in FHEM die gleichen Zeiten wie in der App? Und hast Du mal verifiziert, ob der Sauger dann auch zur eingestellten Zeit nach hiesiger Uhrzeit startet? Wie gesagt, meiner startet 6 Stunden vor der Zeit, die in FHEM angezeigt wird. Ich kann mir eigentlich nicht vorstellen, daß es für das autonome Verhalten des Roboters einen Unterschied macht, welche App die Zeit gesetzt hat.
Zitat von: Manul am 06 Juli 2017, 18:27:03Kannst Du das genauer beschreiben?
Timer und DND Zeiten von FHEM und MiHome App sind identisch, Aktionen passieren zur eingestellten Zeit.
Verstehe ich nicht. Ich mach die Tage mal einen Wifi-Reset des Roboters und schaue, wie's dann aussieht. Oder Meinert Du einen factory reset?
Das Token lässt sich übrigens direkt aus /data/data/com.xiaomi.smarthome/databases/miio2.db auslesen, das ist eine SQLite-Datenbank.
Bei mir taucht der Timer so in der App wie auch in Fhem auf. Mal schauen, wann der Sauger nun startet ;)
@oli82:
Würde mich auch interessieren. Hast Du Android oder iOS? Hast Du den Roboter auf dem neusten Firmware- und App-Stand mit der App verbunden?
@Markus:
Zitat von: Markus M. am 02 Juli 2017, 17:31:01
heisst seit eben device_uptime
Ich habe immer noch ein Reading "device_lifetime". Ist das ein Relikt oder ist das ein neues Reading? Falls letzteres, was gibt das an? Liegt bei mir in der Größenordnung 3*device_uptime, für Gesamtlaufzeit des Roboters scheint mir das zu kurz.
Habe IOS und der Sauger ist aktuell.
Wenn die App den Timer nach GMT+8 stellt, sollte mein Sauger um 12 Uhr heute Mittag loslegen ;).
Lesen uns also in 2h.
Frage: Ich würde gerne statt eines numerischen Wertes für fan_power die voreingestellten Werte wie in der App auswählen können (wegen vermutlich höheren WAFs). Wäre das auch für andere interessant? Dann könnte man darüber nachdenken, eine entsprechende Möglichkeit ins Modul einzubauen (z.B. als neues Reading "power_level") - anderenfalls würde ich das über userreadings und cmdalias realisieren.
Mein WAF ist, dass der Roboter losfährt wenn keiner da ist und die Bude sauber ist wenn man wiederkommt. Mit welchem Level interessiert meine Frau überhaupt nicht, auch nicht, dass es überhaupt Level gibt. ;D
Und das er nach getaner Arbeit, wenn man nach Hause kommt rumsteht und bittet entleert zu werden, sorgt für Belustigung.
Und die Zeitzone in China ist meiner Frau auch völlig schnurzt, die staunt, dass es so entspannt funktioniert.
Gruß Otto
Tja, Otto, so unterschiedlich sind die Menschen...
Die Zeitzone in China ist mir übrigens auch reichlich wurscht. Ich hätte nur gerne, daß, wenn ich in FHEM 10:00 einstelle, der Sauger mich nicht nachts um 4:00 weckt.
Zitat von: Manul am 07 Juli 2017, 10:49:44
Frage: Ich würde gerne statt eines numerischen Wertes für fan_power die voreingestellten Werte wie in der App auswählen können (wegen vermutlich höheren WAFs). Wäre das auch für andere interessant? Dann könnte man darüber nachdenken, eine entsprechende Möglichkeit ins Modul einzubauen (z.B. als neues Reading "power_level") - anderenfalls würde ich das über userreadings und cmdalias realisieren.
Das darfst du dir selbst basteln - die 4 Werte aus der App haben sich zwischendurch übrigens auch schon mal geändert.
Aktuell: 38, 60, 77, 90
Wenn man die App nicht nutzt wird man das wahrscheinlich sowieso individuell anhand der benötigten Reinigungsleistung und erhofften Lebensdauer des Saugers festlegen.
Ich gehe meistens mit 80 ins Rennen.
Zitat von: Manul am 07 Juli 2017, 12:05:59Ich hätte nur gerne, daß, wenn ich in FHEM 10:00 einstelle, der Sauger mich nicht nachts um 4:00 weckt.
Dafür gibt es beispielsweise den at Befehl.
Oder besser noch ein notify auf "niemand mehr da".
Da das Ding auch einen meiner HM Bewegungsmelder auslöst, kann ich den Sauger sowieso nicht ohne ein paar Vorbereitungen starten.
Zitat von: Manul am 07 Juli 2017, 12:05:59
Die Zeitzone in China ist mir übrigens auch reichlich wurscht. Ich hätte nur gerne, daß, wenn ich in FHEM 10:00 einstelle, der Sauger mich nicht nachts um 4:00 weckt.
Aber warum startest Du ihn nicht mit FHEM um 10:00 Uhr?
Ich verwende die App nur um die Karte anzuschauen und um bei Anderen ein bisschen damit anzugeben 8)
Wenn du das mit der App dann mal im Griff hast, dann macht der Programmierer in China (oder sitzen die alle in Indien) ein Update und holt einen alten Fehler aus seiner Entwicklungsumgebung. Dann ist es wieder anders.
Ich habe mir das Teil eigentlich gekauft, weil ich hier das Modul gefunden habe. Damit war klar, ich kann den Steuern wie ich will und muss nicht auf Features des App Entwickler hoffen.
Ich nehme übrigens fan_power 60 :D
Gruß Otto
Zitat von: Markus M. am 07 Juli 2017, 12:07:06
Das darfst du dir selbst basteln
Klar bastel ich mir das selbst. Die Frage war halt, ob ich das nur für mich alleine mache oder Dir einen Patch fürs Modul liefere, der das "als zusätzliche, alternative Möglichkeit!) einbaut. Wenn ich der einzige bin, den das interessiert, ist das natürlich überflüssig.
Zitat von: Markus M. am 07 Juli 2017, 12:07:06
- die 4 Werte aus der App haben sich zwischendurch übrigens auch schon mal geändert.
Aktuell: 38, 60, 77, 90
Wenn man die App nicht nutzt wird man das wahrscheinlich sowieso individuell anhand der benötigten Reinigungsleistung und erhofften Lebensdauer des Saugers festlegen.
Ich gehe meistens mit 80 ins Rennen.
Danke für die Information.
Zitat von: Markus M. am 07 Juli 2017, 12:10:54
Dafür gibt es beispielsweise den at Befehl.
Klar. Aber zum einen setze ich gerne auf autonome Steuerung der Geräte, die von FHEM nur koordiniert wird, zum anderen hätte ich natürlich gerne, daß, wenn ich über FHEM schon eine Zeit für den Sauger setzen kann, die auch meiner Lokalzeit entspricht. Unabhängig davon, ob ich das dann tatsächlich nutze...
Zitat von: Markus M. am 07 Juli 2017, 12:10:54
Oder besser noch ein notify auf "niemand mehr da".
Fällt bei mir mangels Anwesenheitserkennung flach. Dafür fehlt mir momentan noch eine gute Idee.
Zitat von: Otto123 am 07 Juli 2017, 13:01:51
Wenn du das mit der App dann mal im Griff hast, dann macht der Programmierer in China (oder sitzen die alle in Indien) ein Update und holt einen alten Fehler aus seiner Entwicklungsumgebung. Dann ist es wieder anders.
Deswegen möchte ich die Werte ja mit FHEM setzen. Damit ich eben nicht auf die App angewiesen bin.
Zitat von: Manul am 07 Juli 2017, 13:12:31
Klar bastel ich mir das selbst. Die Frage war halt, ob ich das nur für mich alleine mache oder Dir einen Patch fürs Modul liefere, der das "als zusätzliche, alternative Möglichkeit!) einbaut. Wenn ich der einzige bin, den das interessiert, ist das natürlich überflüssig.
Userreadings und Patch schliessen sich aus :)
Ich stelle sie aber natürlich gerne zu der Anleitung in den ersten Posts, ebenso wie homebridgeMappings etc., sofern jemand welche beitragen möchte.
ZitatKlar. Aber zum einen setze ich gerne auf autonome Steuerung der Geräte, die von FHEM nur koordiniert wird, zum anderen hätte ich natürlich gerne, daß, wenn ich über FHEM schon eine Zeit für den Sauger setzen kann, die auch meiner Lokalzeit entspricht. Unabhängig davon, ob ich das dann tatsächlich nutze...
Es funktioniert ja generell, wie an meinem Sauger zu sehen ist...
Ich würde auf einen Bugfix von Xiaomi warten und den Roboter im Zweifelsfall einfach nochmal resetten und neu in deinem Account anmelden.
Eventuell auch über das Python Script, falls dein Telefon was falsches sendet.
Wenn du diesen Weg wählst, schneide doch bitte mal das Packet mit in dem die WiFi Settings anfangs übertragen werden.
Zitat von: Markus M. am 07 Juli 2017, 13:18:58
Userreadings und Patch schliessen sich aus :)
Deshalb schrieb ich ja auch:
Zitat von: Manul am 07 Juli 2017, 10:49:44
Dann könnte man darüber nachdenken, eine entsprechende Möglichkeit ins Modul einzubauen (z.B. als neues Reading "power_level") - anderenfalls würde ich das über userreadings und cmdalias realisieren.
Zitat von: Markus M. am 07 Juli 2017, 13:18:58
Es funktioniert ja generell, wie an meinem Sauger zu sehen ist...
Ich würde auf einen Bugfix von Xiaomi warten und den Roboter im Zweifelsfall einfach nochmal resetten und neu in deinem Account anmelden.
Eventuell auch über das Python Script, falls dein Telefon was falsches sendet.
Wenn du diesen Weg wählst, schneide doch bitte mal das Packet mit in dem die WiFi Settings anfangs übertragen werden.
Deswegen bin ich ja auch noch nicht tätig geworden. Ich wiederhole nochmal meine Frage von oben: Du meinst einen WiFi reset, keinen factory reset, richtig? Ich probier's dann erst mal über die App, falls ich aufs python-Skript zurückgreife, schneide ich natürlich gerne mit. Wenn Du auf Anhieb einen Tip für eine gut Methode hättest, würde ich das natürlich auch bei der App machen.
Zitat von: Manul am 07 Juli 2017, 13:35:48Deswegen bin ich ja auch noch nicht tätig geworden. Ich wiederhole nochmal meine Frage von oben: Du meinst einen WiFi reset, keinen factory reset, richtig? Ich probier's dann erst mal über die App, falls ich aufs python-Skript zurückgreife, schneide ich natürlich gerne mit. Wenn Du auf Anhieb einen Tip für eine gut Methode hättest, würde ich das natürlich auch bei der App machen.
Ich hab den Sauger einfach nur aus der Mi-Home App mit der dazu vorhandenen Funktion entfernt. (Vorher die neuste Firmware drauf.)
Dann macht er sofort wieder sein eigenes Netz auf.
Dann einfach wieder den Anmeldeprozess durch und am Ende den neuen Token auslesen. Vorher idealerweise noch die App löschen und neu installieren damit alles frisch ist.
Schau mal ob es Wireshark für Android gibt. Dann bitte Abmelden und Anmelden mitschneiden.
Hi Markus,
ich hätte ein paar Fragen:
Ist es gewünscht, das er mit verbose 3 ziemlich viel loggt? so in der Art -> ... MyRobot: parse id 3681 / get_status
Mit der neuesten Version tauchen jetzt history_ readings auf. Da steht generell not finished. Was ist der Sinn dieser readings?
Du hast mal geschrieben device_lifetime heißt jetzt device_uptime - ist bei mir nicht so. Ich habe immer noch device_lifetime und kein device_uptime.
Edit:Nach einen shutdown restart ist das reading device_uptime da. Vorher hatte ich nur reload gemacht.
Gruß Otto
Hallo Otto
Zitat von: Otto123 am 08 Juli 2017, 21:44:11
Ist es gewünscht, das er mit verbose 3 ziemlich viel loggt? so in der Art -> ... MyRobot: parse id 3681 / get_status
Eigentlich nicht :)
ZitatMit der neuesten Version tauchen jetzt history_ readings auf. Da steht generell not finished. Was ist der Sinn dieser readings?
Falscher Fehler, Map Status gibt es nicht.
ZitatDu hast mal geschrieben device_lifetime heißt jetzt device_uptime - ist bei mir nicht so. Ich habe immer noch device_lifetime und kein device_uptime.
Edit:Nach einen shutdown restart ist das reading device_uptime da. Vorher hatte ich nur reload gemacht.
Nachdem du das Update jetzt hinbekommen hast, darfst du gleich noch eins machen, dann sind die ersten beiden Punkte auch behoben. :)
Generelle Frage in die Runde:
Wäre es ok statt wie jetzt die kompletten History aus dem Sauger, immer nur den letzten Eintrag zu laden und den in ein Reading mit statischem Namen zu packen?
Zitat von: Markus M. am 08 Juli 2017, 23:30:29
Generelle Frage in die Runde:
Wäre es ok statt wie jetzt die kompletten History aus dem Sauger, immer nur den letzten Eintrag zu laden und den in ein Reading mit statischem Namen zu packen?
Gegenfrage: Was ist der Vorteil? Ich fände es schon gut, zumindest irgendeine Art zu haben, auch an die komplette History zu kommen.
Zitat von: Manul am 09 Juli 2017, 09:14:33
Gegenfrage: Was ist der Vorteil? Ich fände es schon gut, zumindest irgendeine Art zu haben, auch an die komplette History zu kommen.
Genau das ist ja der Vorteil, in Verbindung mit dem Logging von FHEM das auf Change Events reagieren kann.
Dazu müssen aber die Readingnamen fix sein.
Update siehe erster Post, damit bekommen wir beide was wir wollen :)
Alte History Werte entfernen mit
deletereading vacuum history_14.*
Zitat von: Markus M. am 09 Juli 2017, 13:03:04
Update siehe erster Post, damit bekommen wir beide was wir wollen :)
Klingt gut. Kannst Du kurz erläutern, wie's in der neuen Version läuft? Kann ich aus dem ersten Post nicht auf Anhieb erkennen.
Zitat von: Markus M. am 09 Juli 2017, 13:03:04
Genau das ist ja der Vorteil, in Verbindung mit dem Logging von FHEM das auf Change Events reagieren kann.
Dazu müssen aber die Readingnamen fix sein.
Genau, das wäre auch mein Vorschlag gewesen. Ich hatte heute morgen bloß keine Lust zum Update :)
Übrigens habe ich heute morgen beiläufig eine interessante Feststellung gemacht:
Wenn man den Roboter per Hand an die Ladestation trägt und auch die Kontakte schließt, ihn also nicht selbst fahren lässt, steht zwar nach kurzer Zeit charging - aber er "traut" der Sache offenbar nicht! Er geht später in eine Art Tiefschlaf und ist disconnected. Steuerung per App oder FHEM ist dann unmöglich. Man muss ihn am lokalen Knopf aufwecken, es ertönt ein langes "Startjingle" (kam mir unbekannt vor) und dann geht alles wieder.
Ich glaube diesen Tiefschlaf hatte ich auch noch nicht wenn er lange allein in der anderen Etage stand, aber vielleicht war es nicht die ganze Nacht.
Gruß Otto
Zitat von: Manul am 09 Juli 2017, 13:34:19
Klingt gut. Kannst Du kurz erläutern, wie's in der neuen Version läuft?
Die Readings heissen jetzt einfach history_0 bis history_9
history_0 zu loggen reicht also für eine komplette History aus, wenn oft genug aktualisiert wird.
Ich werde irgendwann noch eine automatische Aktualisierung nach jedem Saugvorgang einbauen.
Zitat von: Otto123 am 09 Juli 2017, 13:45:02
Übrigens habe ich heute morgen beiläufig eine interessante Feststellung gemacht:
Wenn man den Roboter per Hand an die Ladestation trägt und auch die Kontakte schließt, ihn also nicht selbst fahren lässt, steht zwar nach kurzer Zeit charging - aber er "traut" der Sache offenbar nicht! Er geht später in eine Art Tiefschlaf und ist disconnected.
Hatte ich in der Station selbst noch nicht. Das klingt aber nach dem Zustand nach "Sleep", wenn du ihn einen Tag irgendwo rumstehen lässt.
Zitat von: Markus M. am 11 Juni 2017, 12:48:58
Aktuelle Version im Anhang
Wichtig:
Das Ermitteln des Staubsauger/Lampen Tokens (https://forum.fhem.de/index.php/topic,73052.msg646649.html#msg646649) ist bei den aktuellen Firmwares (ab FW 3074) nur über das Auslesen aus einem App Backup möglich.
Dieses Modul unterstützt aktuell folgende Devices:
- Xiaomi Smart Vacuum Cleaner
- Mi Air Purifier 2
- Mi Smart Fan
- Xiaomi LED (Desk) Lamps
- Mi Air Humidifier (untested)
Benötigte Perl Module:
- JSON libjson-perl
- Digest::MD5 libdigest-md5-perl
- Crypt::CBC libcrypt-cbc-perl
- Crypt::Cipher::AES oder Crypt::Rijndael_PP CPAN
Einrichtung:
define NAME XiaomiDevice IP [TOKEN]
define vacuum XiaomiDevice 192.168.178.123 12345678901234567890123456789012
attr vacuum subType VacuumCleaner
define airpurifier XiaomiDevice 192.168.178.123
attr airpurifier subType AirPurifier
Hinweise:
Der Air Purifier kann aktuell auch ohne Token eingerichtet werden, ebenso der Ventilator und die Lampe.
Beim Vacuum ist es zwingend erforderlich, den Token aus der App auszulesen (Anleitung s.u.).
Aktuelle Version:
2017-07-09 - History Cleanup
2017-07-08 - History Readings, Logging
2017-07-04 - timezone init
2017-07-02 - More lamps, clean records
2017-06-29 - Mi Smart Fan & Smart Lamp
2017-06-18 - Crypt::Rijndael_PP fix + bugfix
2017-06-14 - added wifi_setup, device_info & wifi_stats
2017-06-11 - firmware 3.3.9_003074, commandref, AirPurifier connection state
Hallo zusammen,
wollte mich nur mal für das Modul bedanken. Mein Sauger kam heute, und nach einigen Schwierigkeiten mit dem Auslesen des Tokens, konnte ich ihn dann doch recht problemlos in FHEM integrieren.
LG
Oli
Kurze Frage, kann man auf die aktuellste Firmware aktualisieren ohne Probleme mit FHEM zu bekommen und wenn ja, wie ist der einfachste Weg, bei einem neuen Roboter...?
Mein Vacuum ist gestern gekommen, bin aber noch in Urlaub und würde Donnerstag direkt loslegen wollen...
Grüße Marcel
Gesendet von iPhone mit Tapatalk
Zitat von: Ma_Bo am 11 Juli 2017, 12:03:41Kurze Frage, kann man auf die aktuellste Firmware aktualisieren ohne Probleme mit FHEM zu bekommen und wenn ja, wie ist der einfachste Weg, bei einem neuen Roboter...?
Der einfachste:
Token mit beliebiger alter Methode auslesen, dann mit der App einrichten.
Wenn Token dann noch gültig, alles gut.
Wenn nicht, Token aus App/Backup extrahieren.
Danach updaten.
Etwas komplexer aber im Zweifelsfall schneller:
Sauger gleich komplett einrichten, updaten und den Token dann mit der neuen Methode (Backup) auslesen.
Ok Danke für die Beschreibung, die komplexere Lösung wäre dann mein Favorit...
Kannst die beiden Wege ja in deinem ersten Beitrag dazu schreiben, falls mal bei jemandem die gleiche Frage kommt...
Grüße Marcel
Gesendet von iPhone mit Tapatalk
Zitat von: Ma_Bo am 11 Juli 2017, 12:44:04Kannst die beiden Wege ja in deinem ersten Beitrag dazu schreiben, falls mal bei jemandem die gleiche Frage kommt...
Stehen eigentlich bereits längst detailliert im 3. Post und sind im 1. verlinkt ;)
Noch mal zu den Zeitzonen: In neueren Versionen der App taucht wohl bei manchen bei den Settings oberhalb von "find my robot" ein Punkt "robot's time zone" auf. Ich sehe den leider nicht, aber wenn jemand den Punkt hat, wäre es vielleicht interessant, mal mitzuschneiden, was die App dann an den Roboter sendet.
Zitat von: Manul am 11 Juli 2017, 13:16:37In neueren Versionen der App taucht wohl bei manchen bei den Settings oberhalb von "find my robot" ein Punkt "robot's time zone" auf. Ich sehe den leider nicht
Check!
App Cache löschen, App schließen, App wieder öffnen, mit dem Sauger verbinden um das Paket nachzuladen -> Timezone Setting
Mir wurde das Update heute auch ohne vorheriges Löschen des Caches und Wiederverbinden mit dem Sauger angeboten. Einstellung ist jetzt auch da.
Hey Leute, wie heisst die original App für IOS und muss ich ne EMail Adresse angeben...?
Zitat von: Ma_Bo am 13 Juli 2017, 10:00:23
Hey Leute, wie heisst die original App für IOS und muss ich ne EMail Adresse angeben...?
Soweit ich weiß, die hier.. https://itunes.apple.com/us/app/mi-home-xiaomi-for-your-smarthome/id957323480?mt=8 .
Und ja musst du. Manche haben vom Handy Probleme,daher geht das glaub ich auch vom PC. Und bei gmail, muss mann wohl auch bla@googlemail.com anstatt gmail.com schreiben.
Grüße
Danke!
In der neuesten Version des App-Plugins ist ja die Möglichkeit dazugekommen, für einen Timer auch die Saugstufe einzustellen.
@Markus M.:
Planst Du, das auch im Modul zu unterstützen?
Funktioniert super, DANKE für das Modul...!!!
Zitat von: Manul am 13 Juli 2017, 11:27:06
In der neuesten Version des App-Plugins ist ja die Möglichkeit dazugekommen, für einen Timer auch die Saugstufe einzustellen.
@Markus M.:
Planst Du, das auch im Modul zu unterstützen?
Wenn ich rausfinde wie...
Das iPhone spricht leider nicht mehr direkt mit dem Sauger.
Kann jemand die Kommandos mit Wireshark für Android für mich mitschneiden?
Gibt es eine Möglichkeit die Sprachausgabe des Vacuum abzuschalten?
Zitat von: Ma_Bo am 13 Juli 2017, 14:47:09
Gibt es eine Möglichkeit die Sprachausgabe des Vacuum abzuschalten?
Eigentlich sollte er im DND Mode nicht sprechen, aus eigener Erfahrung kann ich das allerdings nicht bestätigen. Vielleicht kannst Du ja mal damit experimentieren.
Zitat von: Markus M. am 13 Juli 2017, 13:48:16
Das iPhone spricht leider nicht mehr direkt mit dem Sauger.
Kann jemand die Kommandos mit Wireshark für Android für mich mitschneiden?
Bist Du denn sicher, daß Android noch direkt mit dem Sauger spricht? Ich kann gerne versuchen, mal den Traffic mitzuschneiden.
Danke, probiere ich morgen mal aus
Gesendet von iPhone mit Tapatalk
Zitat von: Manul am 13 Juli 2017, 15:41:24Bist Du denn sicher, daß Android noch direkt mit dem Sauger spricht? Ich kann gerne versuchen, mal den Traffic mitzuschneiden.
Nein. Ich habe nur die Hoffnung darauf.
Probiers bitte mal aus.
Mach ich. Aber muß ich die gesnifften Daten dann nicht noch entschlüsseln? Ich dachte, die Kommunikation mit dem Roboter erfolgt immer verschlüsselt, oder hab ich da was falsch verstanden?
Zitat von: Manul am 13 Juli 2017, 18:37:33
Mach ich. Aber muß ich die gesnifften Daten dann nicht noch entschlüsseln? Ich dachte, die Kommunikation mit dem Roboter erfolgt immer verschlüsselt, oder hab ich da was falsch verstanden?
Ja, das funktioniert mit dem Python Script und dem Token
Gibt es eine deutsche oder auch englische Liste der Fehlercodes...?
Gesendet von iPhone mit Tapatalk
Zitat von: Ma_Bo am 14 Juli 2017, 12:57:17
Gibt es eine deutsche oder auch englische Liste der Fehlercodes...?
Die englische ist ins Modul integriert.
Warum fragst du? Unbekannter Fehler?
Ah ok Danke, hatte eben nur den akkustischen Fehler vom Roboter gehört und ihn dann neugestartet.
Schaue ich nachher mal ins Modul.
Zitat von: Markus M. am 13 Juli 2017, 19:05:11
Ja, das funktioniert mit dem Python Script und dem Token
Danke! In welcher Form muss ich die Daten da reinfüttern?
Zitat von: Manul am 14 Juli 2017, 13:21:30
Danke! In welcher Form muss ich die Daten da reinfüttern?
Token und Hex Data als Parameter:
python xpn.py -token DEINTOKEN -decode 2131...........
Ich habe öfter solche Meldungen im LOG:
2017.07.14 13:14:56.420 2: Xiaomi_Vacuum: connection timeout
2017.07.14 13:15:56.398 3: Xiaomi_Vacuum: disconnecting
2017.07.14 13:15:56.399 2: Xiaomi_Vacuum: connecting
2017.07.14 13:15:56.401 3: Xiaomi_Vacuum: initialized
2017.07.14 13:16:00.498 2: Xiaomi_Vacuum: invalid JSON: |��
P���K,"����
2017.07.14 13:17:16.419 2: Xiaomi_Vacuum: connection timeout
2017.07.14 13:18:16.427 2: Xiaomi_Vacuum: connection timeout
2017.07.14 13:27:16.451 3: Xiaomi_Vacuum: disconnecting
2017.07.14 13:27:16.452 2: Xiaomi_Vacuum: connecting
2017.07.14 13:27:16.454 3: Xiaomi_Vacuum: initialized
2017.07.14 13:27:20.478 2: Xiaomi_Vacuum: invalid JSON: :cN��������m�Q
Es läuft soweit alles, kann man das ignorieren, bzw. kann ich diese Meldungen durch Änderung des LOGLEVEL unterbinden...?
Grüße Marcel
************ EDIT ***************
Das hier erscheint mit verbose 0 trotzdem im LOG:
2017.07.14 15:30:53.979 1: ERROR: Select error -1 (9), error count= 0
2017.07.14 15:30:53.979 1: Found and deleted bad fileno for Xiaomi_Vacuum
Funzt, danke! Ich komme allerdings frühestens Montag dazu, das mit der App im WLAN auszuprobieren. Bin übers Wochenende weg.
Die Kommunikation zwischen Sauger und Server ist offensichtlich anders verschlüsselt. Kommen wir da nicht ran?
Zitat von: Manul am 14 Juli 2017, 14:08:01Die Kommunikation zwischen Sauger und Server ist offensichtlich anders verschlüsselt. Kommen wir da nicht ran?
Keine Chance wenn dabei SSL Pinning verwendet wird.
App zu Cloud ist theoretisch denkbar, habe aber keine Zeit dazu.
EDIT: Du kannst dir das vorerst sparen, die Funktion ist schon im Modul :)
Hallo,
klasse Modul! Seit einiger Zeit meldet sich der Sauger jedoch nach relativ kurzer Zeit (5min) im FHEM mit "disconnect" ab. Wenn ich ihn dann wieder starten möchte, muss ich den "start" Befehl zweimal hintereinander geben, beim ersten mal wacht er auf und beim zweiten mal läuft er dann los.
Das war vorher (ich weiss leider nicht seit wann (evtl. seit einem Firmware Update ?)) nicht so, da ich ihn zeitgesteuert per FHEM starte, fährt er jetzt nicht mehr los (da er den Start-Befehl ja nur einmal bekommt)
Hier ein kurzer Auszug aus dem Log wo er sich disconnected hat.
2017-07-14_16:12:41 SaugRoboter charge
2017-07-14_16:12:41 SaugRoboter connected
2017-07-14_16:17:30 SaugRoboter disconnected
2017-07-14_16:18:27 SaugRoboter start
2017-07-14_16:18:33 SaugRoboter start
2017-07-14_16:18:33 SaugRoboter connected
2017-07-14_16:18:38 SaugRoboter stop
Ich könnte natürlich den Startbefehl von FHEM zweimal senden lassen, aber das ist ja auch nicht im Sinne des Erfinders ;-)
Vielleicht kann mir ja jemand helfen und den entscheidenden Tipp geben.
Danke im voraus
Stephan
Zitat von: Ma_Bo am 14 Juli 2017, 13:52:39
Ich habe öfter solche Meldungen im LOG:
2017.07.14 13:27:20.478 2: Xiaomi_Vacuum: invalid JSON: :cN��������m�Q
Das hier erscheint mit verbose 0 trotzdem im LOG...
Sieht nach Netzwerk Problemen aus, wenn nicht sogar irgendein anderes Gerät querschießt.
Ich versuche das nachzuvollziehen, ebenso wie die Reconnects.
Zitat von: stephanblasch am 14 Juli 2017, 16:47:49Seit einiger Zeit meldet sich der Sauger jedoch nach relativ kurzer Zeit (5min) im FHEM mit "disconnect" ab.
Was sagt das FHEM Log dazu?
Probier mal die neueste Version aus.
Danke Markus!
Ich hab natürlich immer nur neue Geräte dazugeschrieben und nur einfache Updates gemacht und ganz vergessen, dass das Modul damit nicht aktualisiert wird...
Nach erstem Test läuft es!
Vielen Dank, Klasse Support!
Hallo Markus,
set vacuum wifi_setup DEINWLANNAME DEINWLANPASSWORT DEINEXIAOMIUSERID
wenn ich das Wlan vom vacuum mit diesem Befehl ändere, muss dann der vacuum Internetzugang haben, oder darf der vacuum in der Fritzbox vom Internet gesperrt sein?
Mein scenario ist das ich den vacuum über Wlan erreichen kann, aber Internet ist gesperrt in der Fritzbox, damit der vacuum nicht ständig nach China telefoniert. Kann ich jetzt einfach Wlanname und/oder Passwort ändern, oder muss ich das jetzige Wlan in der FB aufmachen, weil der vacuum das neue Wlan vor der internen übernahme zum China Server übertragen muss?
Danke!
Zitat von: inoma am 15 Juli 2017, 15:50:57
wenn ich das Wlan vom vacuum mit diesem Befehl ändere, muss dann der vacuum Internetzugang haben, oder darf der vacuum in der Fritzbox vom Internet gesperrt sein?
Du solltest das mit deiner ID machen und ihm kurz WLAN geben, sonst verlierst du die Steuerung über die App komplett.
Theoretisch sollte es auch ohne gehen.
Wie du aus einem Backup an den neuen Token kommst weißt du? Das ist im schlimmsten Fall nötig.
Hallo Markus,
ich habe jetzt eine Xiaomi / Philips EyeCare, die wollte ich mit dem gleichen WLAN wie den Vaccum in FHEM einbinden.
Leider kann die EyeCare kein "/" Charcater im Passwort, deswegen wollte ich dann das WLAN vom Vaccum ändern (deswegen meien Frage von oben).
Habe dann gedacht, ich probier erst mal nur die Eyecare. Habe dann temporär erst mal ein neues WLAN passwort in der FB ohne das "/" vergeben,
um die Xiaomi EyeCare in FHEM einzubinden.
Leider bekomme ich immer folgende Fehlermeldung. Muss aus der Lampe noch der Token ausgelesen werden?
2017.07.15 23:00:41 3: EyeCare: disconnecting
2017.07.15 23:00:41 2: EyeCare: connecting
2017.07.15 23:00:41 3: EyeCare: initialized
2017.07.15 23:00:41 5: EyeCare: initSend
2017.07.15 23:00:41 5: EyeCare Send SUCCESS
2017.07.15 23:00:41 5: EyeCare > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2017.07.15 23:00:41 5: EyeCare < 213100200000000002f9a903000004ac8a4807a1845f7b538fb614df2ba44d87 (32)
2017.07.15 23:00:45 4: EyeCare: write {"id":32,"method":"miIO.wifi_assoc_state","params":[""]} (56)
2017.07.15 23:00:45 5: EyeCare: send 213100600000000002f9a903000004b05aa121577d3bdab69e612121b5398a01fb1d6230096cfeced26ec2644f406b2901268aab36d2e83fa35c9a6c7702796d36db85842c04e09d647260f4666ec1dba6fe3f9f61eb50df200aa25953fcdf9d
2017.07.15 23:00:45 5: EyeCare Send SUCCESS
2017.07.15 23:00:45 5: EyeCare > 213100600000000002f9a903000004b05aa121577d3bdab69e612121b5398a01fb1d6230096cfeced26ec2644f406b2901268aab36d2e83fa35c9a6c7702796d36db85842c04e09d647260f4666ec1dba6fe3f9f61eb50df200aa25953fcdf9d
2017.07.15 23:00:45 4: EyeCare: write {"id":33,"method":"miIO.info","params":[""]} (44)
2017.07.15 23:00:45 5: EyeCare: send 213100500000000002f9a903000004b0a0b67be3869d3b4925a14624b83476e23bb4b1b6a0cec0b7ea9008e9d9210d486eb2cfb4fbc858e8f1d80858fe2e988cf937316aeba95afb51a525a948f21f65
2017.07.15 23:00:45 5: EyeCare Send SUCCESS
2017.07.15 23:00:45 5: EyeCare > 213100500000000002f9a903000004b0a0b67be3869d3b4925a14624b83476e23bb4b1b6a0cec0b7ea9008e9d9210d486eb2cfb4fbc858e8f1d80858fe2e988cf937316aeba95afb51a525a948f21f65
2017.07.15 23:00:45 4: EyeCare: write {"id":34,"method":"get_serial_number","params":[""]} (52)
2017.07.15 23:00:45 5: EyeCare: send 213100600000000002f9a903000004b022893e682a9e4bec29bbfd9f951c954db3090877bbd32ea6f5bbd63679f8a649299a3d7a8b9b5ecfe6e3088af13230ed21a753286d3b877f1be3a8e7006257f0b9a12b46193a0b405c70df75cfef131f
2017.07.15 23:00:45 5: EyeCare Send SUCCESS
2017.07.15 23:00:45 5: EyeCare > 213100600000000002f9a903000004b022893e682a9e4bec29bbfd9f951c954db3090877bbd32ea6f5bbd63679f8a649299a3d7a8b9b5ecfe6e3088af13230ed21a753286d3b877f1be3a8e7006257f0b9a12b46193a0b405c70df75cfef131f
2017.07.15 23:00:45 5: EyeCare < 213100600000000002f9a903000004b0ffffffffffffffffffffffffffffffff (96)
2017.07.15 23:00:45 5: EyeCare: decrypted
2017.07.15 23:00:45 2: EyeCare: invalid JSON:
2017.07.15 23:00:45 5: EyeCare < 213100500000000002f9a903000004b0ffffffffffffffffffffffffffffffff (80)
2017.07.15 23:00:45 5: EyeCare: decrypted
2017.07.15 23:00:45 2: EyeCare: invalid JSON:
2017.07.15 23:00:45 5: EyeCare < 213100600000000002f9a903000004b0ffffffffffffffffffffffffffffffff (96)
2017.07.15 23:00:45 5: EyeCare: decrypted
2017.07.15 23:00:45 2: EyeCare: invalid JSON:
2017.07.15 23:00:48 4: EyeCare: write {"id":35,"method":"get_prop","params":["power","bright","cct","snm","dv","ct","color_mode","delayoff","flowing","flow_params","name","rgb","hue","sat"]} (152)
2017.07.15 23:00:48 5: EyeCare: send 213100c00000000002f9a903000004b3222a02c2fe6ed5bfe8055889a4d0d264e2fd348c21f9d0cdda30cbb609d23a56043d9ffe258e7caea7205304db9cda2898794f4f6bcd33489886686c733d3acff3fcd650855f7b432e4dce769c6f4f25cee445975d1ed523ea2c4d473652beb7915ce79f432befa834c5c5ff94131c1a2c3db4327cb37df54f59bd120417901fef817d9b850bf2c06543e3ca9f6c8e57bfbe2b48c517b49599a80e5ab421e7475123b557c0ac149fea4811bd48b311d7
2017.07.15 23:00:48 5: EyeCare Send SUCCESS
2017.07.15 23:00:48 5: EyeCare > 213100c00000000002f9a903000004b3222a02c2fe6ed5bfe8055889a4d0d264e2fd348c21f9d0cdda30cbb609d23a56043d9ffe258e7caea7205304db9cda2898794f4f6bcd33489886686c733d3acff3fcd650855f7b432e4dce769c6f4f25cee445975d1ed523ea2c4d473652beb7915ce79f432befa834c5c5ff94131c1a2c3db4327cb37df54f59bd120417901fef817d9b850bf2c06543e3ca9f6c8e57bfbe2b48c517b49599a80e5ab421e7475123b557c0ac149fea4811bd48b311d7
2017.07.15 23:00:48 5: EyeCare < 213100c00000000002f9a903000004b3ffffffffffffffffffffffffffffffff (192)
2017.07.15 23:00:48 5: EyeCare: decrypted
2017.07.15 23:00:48 2: EyeCare: invalid JSON:
2017.07.15 23:00:51 4: EyeCare: write {"id":36,"method":"get_prop","params":["power","bright","cct","snm","dv","ct","color_mode","delayoff","flowing","flow_params","name","rgb","hue","sat"]} (152)
2017.07.15 23:00:51 5: EyeCare: send 213100c00000000002f9a903000004b667ad6239a22fa5b4bbe3e8cf65a5915568233b44dc58088a93a4ec88afb8150aaf5c06864010f24325be7f96b286682dd6b260993acd32fa863a8b136e2414e69a3cde3318e957b67b19d9cfa7ccb02e6d6842d109fb47ae77964e5839c2021f74375e3b900dac13d0b2ebe5646524b65f90c8088b2fc9b04f107d1aafcbf6d4248d52edef19d3d5a5f9b876c8724c9010d064dccc6a5633a13c32f766ce313c4e6262538cbe6cf17841d6c5ff3ba6ff
2017.07.15 23:00:51 5: EyeCare Send SUCCESS
2017.07.15 23:00:51 5: EyeCare > 213100c00000000002f9a903000004b667ad6239a22fa5b4bbe3e8cf65a5915568233b44dc58088a93a4ec88afb8150aaf5c06864010f24325be7f96b286682dd6b260993acd32fa863a8b136e2414e69a3cde3318e957b67b19d9cfa7ccb02e6d6842d109fb47ae77964e5839c2021f74375e3b900dac13d0b2ebe5646524b65f90c8088b2fc9b04f107d1aafcbf6d4248d52edef19d3d5a5f9b876c8724c9010d064dccc6a5633a13c32f766ce313c4e6262538cbe6cf17841d6c5ff3ba6ff
2017.07.15 23:00:51 5: EyeCare < 213100c00000000002f9a903000004b6ffffffffffffffffffffffffffffffff (192)
2017.07.15 23:00:51 5: EyeCare: decrypted
2017.07.15 23:00:51 2: EyeCare: invalid JSON:
Geänderter Token und noch ein paar andere Dinge die ich mir ansehen muss. Hast du nur das WLAN neu gesetzt? Oder neu eingerichtet?
Hallo Markus,
ich habe temporär das Wlan passwort in der FB geändert beispielsweise auf 'abcdef', ohne "/",
und dann die EyeCare mit diesem WLAN und Passwort 'abcdef' unter IOS mit der Xiaomi Home APP mit dem WLAN verbunden, und dann in FHEM eingerichtet, mit deiner App vom 2017-07-14, mit der korrekten IP Adresse. Ich habe mit Token '00000000000000000000000000000000' und ohne Token probiert.
Hier auch mal das list (das list ist jetzt aber wieder ohne aktive WLAN Verbindung, weiss nicht ob das wichtig ist)
Internals:
DEF 172.21.0.19
FD 35
NAME EyeCare
NR 2215
STATE disconnected
TYPE XiaomiDevice
device_type
READINGS:
2017-07-15 23:36:01 state disconnected
helper:
ConnectionState initialized
crypt AES
ip 172.21.0.19
last_read 1500154251
packetid 45
port 54321
sequence 1500151245
token 00000000000000000000000000000000
packet:
1 lamp_data
10 lamp_status
11 lamp_status
12 power_on
13 power_off
14 lamp_status
15 lamp_status
16 lamp_data
17 power_on
18 power_off
19 lamp_status
2 power_on
20 lamp_status
21 lamp_data
22 wifi_stats
23 device_info
24 get_serial_number
25 lamp_data
26 lamp_data
27 wifi_stats
28 device_info
29 get_serial_number
3 power_off
30 lamp_data
31 lamp_data
32 wifi_stats
33 device_info
34 get_serial_number
35 lamp_data
36 lamp_data
37 lamp_data
38 lamp_data
39 lamp_data
4 wifi_stats
40 lamp_data
41 lamp_data
42 lamp_data
43 lamp_data
44 lamp_data
5 device_info
6 get_serial_number
7 set_light
8 lamp_data
9 lamp_data
Attributes:
room Lights
stateFormat state
subType SmartLamp
Zitat von: inoma am 16 Juli 2017, 11:25:47
Hallo Markus,
ich habe temporär das Wlan passwort in der FB geändert beispielsweise auf 'abcdef', ohne "/",
und dann die EyeCare mit diesem WLAN und Passwort 'abcdef' unter IOS mit der Xiaomi Home APP mit dem WLAN verbunden, und dann in FHEM eingerichtet, mit deiner App vom 2017-07-14, mit der korrekten IP Adresse. Ich habe mit Token '00000000000000000000000000000000' und ohne Token probiert.
Du musst den Token aus einem App Backup extrahieren analog zum Sauger, siehe Post 3.
Hallo Markus,
danke, ich dachte erst die Lampe geht ohne Token. Nun, mein iOS backup bricht gerade immer mit "iTunes could not back up the iPhone becasue the iPhone disconnected" ab, andere Baustelle. Das muss ich erstmal lösen. :-(
Dann melde ich mich wieder.
Beste Grüsse!
Zitat von: inoma am 17 Juli 2017, 07:20:16
danke, ich dachte erst die Lampe geht ohne Token.
Das war meine Schreibtischlampe, die von Yeelight.
Allerdings auch nur bis zum Firmware Update letzte Woche...
Wer die also kauft: erst einrichten, dann updaten.
Hallo Markus, jetzt hat alles geklappt:
Status:
Windows7, iOS, Fritzbox
- vaccum war in der Fritzbox unter mit Wlan1 und Passwort1 verbunden über die Xiaomi App
- vaccum war in FHEM eingebunden mit Token
- Philips EyeCare gen2 gekauft. Die Philips EyeCare gen2 konnte ich nicht mit der Xiaomi App ins Wlan1 mit Passwort1 einbinden, weil das Passwort1 ein "/" enthielt.
Also Passwort ändern:
1) set vacuum wifi_setup Wlan2 Passwort2 1234567890 (also set vacuum wifi_setup DEINWLANNAME DEINWLANPASSWORT DEINEXIAOMIUSERID)
2) Wlan in der Fritzbox auf Wlan2 Passwort2 umbiegen
3) Philips EyeCare gen2 mit Xiaomi App ins Wlan2 bringen
4) IoS Backup
5) im iBackup viewer -> Applications -> MiHome.app -> Documents/1234567890_mihome.sqlite
6) diese Datei oben rechts mit dem Befehl Action auf dem Desktop speichern
7) Unter Windows 7 SQLite Expert Personal installieren
8) mit "SQLite Expert Personal" 1234567890_mihome.sqlite öffnen
9) unter "ZDEVICE" im rechten Fenster "Data", dann ganz nach rechts scrollen, dort findet man unter "ZTOKEN" die oder den 32 stelligen Token
Super Sache das.
Hier das list:
Internals:
DEF 192.158.0.20 123456789112345678921234567892312
FD 38
NAME EyeCare
NR 2215
STATE connected
TYPE XiaomiDevice
device_type
mac 28:6C:07:2A:6C:EE
model philips.light.sread1
token 123456789112345678921234567892312
wifi_firmware 1.4.0(30e0bd0)
READINGS:
2017-07-17 21:43:20 brightness 46
2017-07-17 21:32:45 device_firmware 1.2.8
2017-07-17 21:32:45 device_uptime 0.46
2017-07-17 21:43:20 power on
2017-07-17 21:32:26 state connected
2017-07-17 21:32:48 wifi_auth_fail_count 0
2017-07-17 21:32:48 wifi_conn_fail_count 0
2017-07-17 21:32:48 wifi_conn_success_count 1
2017-07-17 21:32:48 wifi_dhcp_fail_count 0
2017-07-17 21:32:45 wifi_rssi -53
2017-07-17 21:32:48 wifi_state online
helper:
ConnectionState connected
crypt AES
dev 02f9
id a903
ip 192.158.0.20
last_read 1500320600
packetid 19
port 54321
sequence 1500318301
token 123456789112345678921234567892312
packet:
Attributes:
room Lights
stateFormat state
subType SmartLamp
verbose 5
Zitat von: Markus M. am 14 Juli 2017, 17:23:11
Sieht nach Netzwerk Problemen aus, wenn nicht sogar irgendein anderes Gerät querschießt.
Ich versuche das nachzuvollziehen, ebenso wie die Reconnects.
Ich möchte mal vorsichtig anfragen, ob du schon was finden konntest...?
Ist nicht eilig, kann ja den Vacuum steuern und bekomme ja auch die Readings, nur die Reconnects machen mir bissl Bauchweh...
Wenn ich irgendwas testen soll, sag bitte Bescheid...
Grüße Marcel
Zitat von: Ma_Bo am 18 Juli 2017, 07:03:39
Ich möchte mal vorsichtig anfragen, ob du schon was finden konntest...?
Ist nicht eilig, kann ja den Vacuum steuern und bekomme ja auch die Readings, nur die Reconnects machen mir bissl Bauchweh...
Das Update von vorgestern oder so hätte helfen sollen. Hast du das schon drauf?
Nein, mach ich heute nachmittag...
Gesendet von iPhone mit Tapatalk
Hallo,
Hab nach den tollen Erfahrungen mit dem Sauger jetzt auch die eyeCare 2 gekauft. Ich bekomme sie aber nicht in die Mi home App eingebunden. Hab als Server noch Usa (Singapur Server) eingestellt. Dort läuft auch mein Sauger. Wenn ich add device wähle und Desk Lamp auswähle dann kann ich noch mein WLAN einstellen und mich auf das Philips-WLAN der Lampe verbinden. Er geht dann in der App aber nicht weiter. So als würde er ein anderes Gerät erwarten. Wie habt ihr das hinbekommen?
Zitat von: Markus M. am 18 Juli 2017, 09:50:44
Das Update von vorgestern oder so hätte helfen sollen. Hast du das schon drauf?
Hab es gerade eingespielt und werde berichten. Danke.
Hallo StefanFHEM,
ja so ein Problem hatte ich auch für die Eyecare. Es können 2 Ursachen sein:
1) das Wlan Passwort geht nicht. Mein Wlan Passwort hatte ein "/" , das kann die Lampe nicht
2) Ich hatte Schwierigkeiten mit dem USA Server, der immer unter iOS in der MiHome App empfohlen wird (Aber, in den Mi Home app reviews im Apple Appstore findet man dann auch das der Server wohl nicht geht, ein Bug in der App??). Letztendlich habe ich China(Mainland) als Server genommen, dann gings mit der EyeCare. Mit dem China Server bekomnst Du auch das letzte Vacuum FW update angeboten, das wird im US-Singapore Server nicht angeboten.
Beste Grüsse!
Zitat von: Markus M. am 18 Juli 2017, 09:50:44
Das Update von vorgestern oder so hätte helfen sollen. Hast du das schon drauf?
Leider immer noch Meldungen:
2017.07.18 16:45:38.710 3: Xiaomi_Vacuum: disconnecting
2017.07.18 16:45:38.710 2: Xiaomi_Vacuum: connecting
2017.07.18 16:45:38.711 3: Xiaomi_Vacuum: initialized
2017.07.18 16:45:42.815 2: Xiaomi_Vacuum: invalid JSON: ��ʋc�C\'&2
�n��
2017.07.18 16:51:58.773 2: Xiaomi_Vacuum: connection timeout
2017.07.18 16:56:58.842 3: Xiaomi_Vacuum: disconnecting
2017.07.18 16:56:58.842 2: Xiaomi_Vacuum: connecting
2017.07.18 16:56:58.843 3: Xiaomi_Vacuum: initialized
2017.07.18 16:57:02.953 2: Xiaomi_Vacuum: invalid JSON: i����hL5x�5K�
2017.07.18 17:52:15.973 2: Xiaomi_Vacuum: connection timeout
2017.07.18 17:57:16.048 3: Xiaomi_Vacuum: disconnecting
2017.07.18 17:57:16.048 2: Xiaomi_Vacuum: connecting
2017.07.18 17:57:16.049 3: Xiaomi_Vacuum: initialized
2017.07.18 17:57:20.154 2: Xiaomi_Vacuum: invalid JSON: �ؕ�
� d!+�^�$
Hier noch ein list, token durch xxxxx ersetzt:
Internals:
DEF 192.168.178.122 xxxxxxxxxxxxxxxxxxxxxx
FD 80
NAME Xiaomi_Vacuum
NR 4681
STATE Zustand: Cleaning -- Batterie: 82 % -- Saugstufe: 30
TYPE XiaomiDevice
device_type
Readings:
2017-07-18 18:01:26 battery ok
2017-07-18 18:01:26 batteryLevel 82
2017-07-18 17:57:23 consumables_filter 93
2017-07-18 17:57:23 consumables_main_brush 96
2017-07-18 17:57:23 consumables_sensors 68
2017-07-18 17:57:23 consumables_side_brush 95
2017-07-14 08:31:01 device_firmware 3.3.9_003077
2017-07-14 08:31:01 device_uptime 11.03
2017-07-18 18:01:26 dnd on
2017-07-18 17:57:23 dnd_enabled on
2017-07-18 17:57:23 dnd_end 08:00
2017-07-18 17:57:23 dnd_start 22:00
2017-07-18 18:01:26 error_code None
2017-07-18 18:01:26 fan_power 30
2017-07-18 17:57:23 history_0 2017-07-17 18:27:32: 53.65m² in 1.22h, not finished
2017-07-18 17:57:23 history_1 2017-07-17 15:29:49: 0.00m² in 0.00h, not finished
2017-07-18 17:57:23 history_2 2017-07-16 10:14:58: 86.39m² in 1.91h, finished cleaning
2017-07-18 17:57:23 history_3 2017-07-14 11:32:53: 0.00m² in 0.00h, not finished
2017-07-18 17:57:23 history_4 2017-07-13 10:48:35: 38.32m² in 0.67h, not finished
2017-07-18 18:01:26 in_cleaning no
2017-07-18 18:01:26 last_clean_area 43.21
2017-07-18 18:01:26 last_clean_time 0.81
2017-07-18 18:01:26 map_present yes
2017-07-18 17:57:20 serial_number 1387100408549
2017-07-18 18:01:26 state Cleaning
2017-07-18 17:57:20 timezone Asia/Shanghai
2017-07-18 17:57:23 total_clean_area 434.60
2017-07-18 17:57:23 total_clean_time 9.53
2017-07-18 17:57:23 total_cleans 13
2017-07-18 17:57:20 wifi_auth_fail_count 0
2017-07-18 17:57:20 wifi_conn_fail_count 0
2017-07-18 17:57:20 wifi_conn_success_count 1
2017-07-18 17:57:20 wifi_dhcp_fail_count 0
2017-07-14 08:31:01 wifi_rssi -78
2017-07-18 17:57:20 wifi_state connecting
Helper:
ConnectionState connected
crypt AES
dev 03d8
id 82ae
ip 192.168.178.122
last_read 1500393686
packetid 422
port 54321
sequence 1500319761
timers 0
token xxxxxxxxxxxxxxxxxxxxxxxx
Day:
History:
Packet:
156 get_status
178 device_info
205 get_status
227 device_info
386 get_consumable
387 get_clean_summary
388 get_dnd_timer
389 get_timer
405 device_info
Attributes:
disable 0
event-on-change-reading .*
fp_Staubsauger 493,300,0,
intervalData 60
intervalSettings 300
room 4.28_Xiaomi_Vacuum
stateFormat Zustand: state -- Batterie: batteryLevel % -- Saugstufe: fan_power
subType VacuumCleaner
Falls das evtl wichtig ist, ich habe dem Vacuum in der FritzBox das nach Hause telefonieren verboten, er hat also keine Verbindung zum Internet.
Zitat von: Ma_Bo am 18 Juli 2017, 18:01:09Leider immer noch Meldungen:2017.07.18 17:57:20.154 2: Xiaomi_Vacuum: invalid JSON: �ؕ�
� d!+�^�$
Kann ich mir so erst mal nicht erklären.
Wie sieht das bei Verbose 5 aus?
Hast du andere Xiaomi Geräte? Das Smarthome System vielleicht?
Verbose hab ich jetzt mal auf 5 gestellt.
Brauchst wahrscheinlich nur den verbose 5 Logausschnitt wenn es wieder zu nem disconnect kommt oder...?
Nein keine weiteren Geräte von Xiaomi.
Verbose 5 disconnect, connect, cleaning:
2017.07.18 18:13:26.167 4: Xiaomi_Vacuum: write {"id":460,"method":"get_status","params":[""]} (46)
2017.07.18 18:13:26.169 5: Xiaomi_Vacuum: send 213100500000000003d882ae00012395fd2a034261d3d3fd1f3abca0eef6d92bbe720424363d7eb47024644e0eb6938f86407f30f79e15cac0f6f85570e24e7e954571b4053e20d2dac6b375ec54f7b0
2017.07.18 18:13:26.170 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:13:26.170 5: Xiaomi_Vacuum > 213100500000000003d882ae00012395fd2a034261d3d3fd1f3abca0eef6d92bbe720424363d7eb47024644e0eb6938f86407f30f79e15cac0f6f85570e24e7e954571b4053e20d2dac6b375ec54f7b0
2017.07.18 18:13:26.198 5: Xiaomi_Vacuum < 213100f00000000003d882ae0001239543ef33fd4b983cbb2a9e55d4c4667c2bf78f9900fbd99f0dea45585babc0cf6ed1173694308b3069286e0220bb091441e9261c7485f6a74c094da78363a666cb921288e5e2d4e6fbb8c1fccad21ef98836278cd844a0140e2720d60ae5484a5b0d26f4d827d2b1bb981ac43a3b2f55b87535cb52f76739889127b0dcf19bb59a815e4c0cf4e92545fcc5f0d87b769043eeda3bbf7495e3cde0568a1cb635a387bc478536253a88a05199ba0ed9e0220579af365b11ce052313f1c41595e63229becbffd4311cab520df10e7429b3c6f414059547899b7c7ee695646485d710db (240)
2017.07.18 18:13:26.199 5: Xiaomi_Vacuum: decrypted
{"result":[{"msg_ver":5,"msg_seq":2446,"state":5,"battery":77,"clean_time":3666,"clean_area":55037500,"error_code":0,"map_present":1,"in_cleaning":0,"fan_power":30,"dnd_enabled":1}],"id":460}
2017.07.18 18:13:26.201 5: Xiaomi_Vacuum: parse id 460
$VAR1 = {
'id' => 460,
'result' => [
{
'state' => 5,
'msg_seq' => 2446,
'dnd_enabled' => 1,
'msg_ver' => 5,
'clean_area' => 55037500,
'battery' => 77,
'error_code' => 0,
'fan_power' => 30,
'clean_time' => 3666,
'in_cleaning' => 0,
'map_present' => 1
}
]
};
2017.07.18 18:13:26.201 4: Xiaomi_Vacuum: parse id 460 / get_status
2017.07.18 18:14:26.173 4: Xiaomi_Vacuum: write {"id":461,"method":"get_status","params":[""]} (46)
2017.07.18 18:14:26.176 5: Xiaomi_Vacuum: send 213100500000000003d882ae000123d1f9e1f5c789b55ce1be167e0b26d9e640c9db4b01c4ea2c2d6bce4e43b8b06ec0d2dfb3160c060222d10e956da8da83d412146b0df0352f01ddc4e81cf2cf1cf9
2017.07.18 18:14:26.176 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:14:26.177 5: Xiaomi_Vacuum > 213100500000000003d882ae000123d1f9e1f5c789b55ce1be167e0b26d9e640c9db4b01c4ea2c2d6bce4e43b8b06ec0d2dfb3160c060222d10e956da8da83d412146b0df0352f01ddc4e81cf2cf1cf9
2017.07.18 18:14:36.183 2: Xiaomi_Vacuum: connection timeout
2017.07.18 18:15:26.180 4: Xiaomi_Vacuum: write {"id":462,"method":"get_status","params":[""]} (46)
2017.07.18 18:15:26.182 5: Xiaomi_Vacuum: send 213100500000000003d882ae0001240d73a905b13302924a987a65ed6357827b8ff7733c262249a5defe89b89f5722daaa65f431336a2eacfce6dbd6c9f3b1a0e10e65bbb06ed76b8689363fed0ba140
2017.07.18 18:15:26.182 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:15:26.182 5: Xiaomi_Vacuum > 213100500000000003d882ae0001240d73a905b13302924a987a65ed6357827b8ff7733c262249a5defe89b89f5722daaa65f431336a2eacfce6dbd6c9f3b1a0e10e65bbb06ed76b8689363fed0ba140
2017.07.18 18:15:26.191 5: Xiaomi_Vacuum < 213100f00000000003d882ae0001240d2b03eaeaf40506b08a9b0438343c4d52f78f9900fbd99f0dea45585babc0cf6ed1173694308b3069286e0220bb091441ef024ec8e5b0cde35ba6b01ace8e9ca313044791f15bf6a175228bcc2b8cdce8153b5a5b6b23e6b4198951ed8da0e2fd33fbebb4dbed46c318820757ee2216754a9b375d8dac0d2af794d95e24bdf0340f827a895fdedb8f34880b116003960edc3d2ef4b75b93e960a9fc1705ec19a1a630f5b9cee3122e6e2f33a6bf578ce23ab71c438b9ad2b8026ef1e962beb12c12c90dda85fbe073c90d52ecf93fae16d570344cfeecad5ce776d0a9b9b0ee0a (240)
2017.07.18 18:15:26.269 5: Xiaomi_Vacuum: decrypted
{"result":[{"msg_ver":5,"msg_seq":2449,"state":5,"battery":76,"clean_time":3793,"clean_area":56415000,"error_code":0,"map_present":1,"in_cleaning":0,"fan_power":30,"dnd_enabled":1}],"id":462}
2017.07.18 18:15:26.269 5: Xiaomi_Vacuum: parse id 462
$VAR1 = {
'id' => 462,
'result' => [
{
'map_present' => 1,
'fan_power' => 30,
'in_cleaning' => 0,
'clean_time' => 3793,
'error_code' => 0,
'battery' => 76,
'dnd_enabled' => 1,
'msg_ver' => 5,
'clean_area' => 56415000,
'msg_seq' => 2449,
'state' => 5
}
]
};
2017.07.18 18:15:26.269 4: Xiaomi_Vacuum: parse id 462 / get_status
verbose 5 mit invalid JSON:
2017.07.18 18:18:26.202 4: Xiaomi_Vacuum: write {"id":474,"method":"get_status","params":[""]} (46)
2017.07.18 18:18:26.205 5: Xiaomi_Vacuum: send 213100500000000003d882ae000124c1bef56d6c66c516d2246ebf356d072c9054ac8e36d393d7b39a8ef6d5d66364da19e3c71985fdc9dec500cc0d1a37f378a2025f01dbbc85b13fafad9b14a573fc
2017.07.18 18:18:26.205 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:18:26.206 5: Xiaomi_Vacuum > 213100500000000003d882ae000124c1bef56d6c66c516d2246ebf356d072c9054ac8e36d393d7b39a8ef6d5d66364da19e3c71985fdc9dec500cc0d1a37f378a2025f01dbbc85b13fafad9b14a573fc
2017.07.18 18:18:26.234 5: Xiaomi_Vacuum < 213100f00000000003d882ae000124c1bb577441f5d0a1975ad4289d7496e089f78f9900fbd99f0dea45585babc0cf6ed1173694308b3069286e0220bb09144148cbb89c8a2f529f8407444717b76ea116186cd7652eb85b6fe30aa02167b39dce645e007767e547b32ac83ce3baa205242fd6f76f6ae84c4718db5cfcf574be1bbd4db8b184d1eaebd1adc875e97b884dace9a2e80fd240898d26aefb303695aa8d9762c899946d765140b186a637d0796288fc09569134d0e8794cae3238ab811092eea86acb7ffac945ba68f3a209b73b21c0e4285cafe82c0d032cf54c700b2ed2a54eab4a83e761be8419fffd69 (240)
2017.07.18 18:18:26.237 5: Xiaomi_Vacuum: decrypted
{"result":[{"msg_ver":5,"msg_seq":2456,"state":5,"battery":75,"clean_time":3972,"clean_area":57777500,"error_code":0,"map_present":1,"in_cleaning":0,"fan_power":30,"dnd_enabled":1}],"id":474}
2017.07.18 18:18:26.238 5: Xiaomi_Vacuum: parse id 474
$VAR1 = {
'id' => 474,
'result' => [
{
'in_cleaning' => 0,
'clean_time' => 3972,
'fan_power' => 30,
'map_present' => 1,
'error_code' => 0,
'battery' => 75,
'msg_ver' => 5,
'clean_area' => 57777500,
'dnd_enabled' => 1,
'state' => 5,
'msg_seq' => 2456
}
]
};
2017.07.18 18:18:26.239 4: Xiaomi_Vacuum: parse id 474 / get_status
2017.07.18 18:19:27.174 4: Xiaomi_Vacuum: write {"id":475,"method":"get_status","params":[""]} (46)
2017.07.18 18:19:27.175 5: Xiaomi_Vacuum: send 213100500000000003d882ae000124fe1eeb82d9334b3037c5d7e9069e33c0e20d7e5f0a56a70d9031f0f85d32562f0d38fc58be9fa8cbcda227fb0f8cda930cb0f66d40d2239ba47bcb2ef49f2c4f32
2017.07.18 18:19:27.175 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:27.175 5: Xiaomi_Vacuum > 213100500000000003d882ae000124fe1eeb82d9334b3037c5d7e9069e33c0e20d7e5f0a56a70d9031f0f85d32562f0d38fc58be9fa8cbcda227fb0f8cda930cb0f66d40d2239ba47bcb2ef49f2c4f32
2017.07.18 18:19:27.388 5: Xiaomi_Vacuum < 213100f00000000003d882ae000124fe75017beb4d8f024b439c8de126df8af3f78f9900fbd99f0dea45585babc0cf6ed1173694308b3069286e0220bb091441f29a43cb85ed751a1fbd3ee5f6aaf94868430faf57f6afc2f7a6acc932d7059cc30cee3b097e835a38b0eddba0c513e5637ee0e9b9897c319e9ebfa49b509e962048a3ad59d0828c9d719b08529974bd2470b2ceb330ee016ea5b96298199ec3fd9b222573b89db6fefd11cf09f8a6decef98e4b2ef8c1e29981a049b33ee8724fcacd7dcc18fb3338e9ee30b5b34fb9b1184c44f9026ede54825483af446dea301669f63aa3b10d79bfeb44f47cfc7d (240)
2017.07.18 18:19:27.389 5: Xiaomi_Vacuum: decrypted
{"result":[{"msg_ver":5,"msg_seq":2458,"state":5,"battery":75,"clean_time":4030,"clean_area":59275000,"error_code":0,"map_present":1,"in_cleaning":0,"fan_power":30,"dnd_enabled":1}],"id":475}
2017.07.18 18:19:27.389 5: Xiaomi_Vacuum: parse id 475
$VAR1 = {
'id' => 475,
'result' => [
{
'battery' => 75,
'error_code' => 0,
'in_cleaning' => 0,
'clean_time' => 4030,
'fan_power' => 30,
'map_present' => 1,
'state' => 5,
'msg_seq' => 2458,
'clean_area' => 59275000,
'msg_ver' => 5,
'dnd_enabled' => 1
}
]
};
2017.07.18 18:19:27.389 4: Xiaomi_Vacuum: parse id 475 / get_status
2017.07.18 18:19:36.262 3: Xiaomi_Vacuum: disconnecting
2017.07.18 18:19:36.262 2: Xiaomi_Vacuum: connecting
2017.07.18 18:19:36.263 3: Xiaomi_Vacuum: initialized
2017.07.18 18:19:36.263 5: Xiaomi_Vacuum: initSend
2017.07.18 18:19:36.263 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:36.263 5: Xiaomi_Vacuum > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2017.07.18 18:19:36.375 5: Xiaomi_Vacuum < 213100200000000003d882ae00012507ffffffffffffffffffffffffffffffff (32)
2017.07.18 18:19:40.270 4: Xiaomi_Vacuum: write {"id":476,"method":"miIO.wifi_assoc_state","params":[""]} (57)
2017.07.18 18:19:40.271 5: Xiaomi_Vacuum: send 213100600000000003d882ae0001250bef6b810b421a28fe1df7f70f57fd216e2354e173a9ddeccff755aff042872b320968e10bc2dd8af80d5cbcea676f05a64b425733023166f81810e91153043a2e10d7d59737454de7e1f877004f523620
2017.07.18 18:19:40.271 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:40.271 5: Xiaomi_Vacuum > 213100600000000003d882ae0001250bef6b810b421a28fe1df7f70f57fd216e2354e173a9ddeccff755aff042872b320968e10bc2dd8af80d5cbcea676f05a64b425733023166f81810e91153043a2e10d7d59737454de7e1f877004f523620
2017.07.18 18:19:40.271 4: Xiaomi_Vacuum: write {"id":477,"method":"miIO.info","params":[""]} (45)
2017.07.18 18:19:40.271 5: Xiaomi_Vacuum: send 213100500000000003d882ae0001250beee4e9689fa15ace2242f2314fabbde6fefeb9815b747ea5fc752357c583b2bc8de3b99e86d0e614478a79154582e5754ca07b56ed882e5c869a0f188a907355
2017.07.18 18:19:40.271 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:40.271 5: Xiaomi_Vacuum > 213100500000000003d882ae0001250beee4e9689fa15ace2242f2314fabbde6fefeb9815b747ea5fc752357c583b2bc8de3b99e86d0e614478a79154582e5754ca07b56ed882e5c869a0f188a907355
2017.07.18 18:19:40.272 4: Xiaomi_Vacuum: write {"id":478,"method":"get_serial_number","params":[""]} (53)
2017.07.18 18:19:40.272 5: Xiaomi_Vacuum: send 213100600000000003d882ae0001250b108894285b9dc46b66773e6d99aa71ec5d1af197ba0eccab8a78af8ad53e7ce65976779ea21edae5be81b4806eb42220a3ebf6734095a727e62ebb088fd397842d9e077986209f5086687b5a390655f7
2017.07.18 18:19:40.272 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:40.272 5: Xiaomi_Vacuum > 213100600000000003d882ae0001250b108894285b9dc46b66773e6d99aa71ec5d1af197ba0eccab8a78af8ad53e7ce65976779ea21edae5be81b4806eb42220a3ebf6734095a727e62ebb088fd397842d9e077986209f5086687b5a390655f7
2017.07.18 18:19:40.272 4: Xiaomi_Vacuum: write {"id":479,"method":"get_timezone","params":[""]} (48)
2017.07.18 18:19:40.273 5: Xiaomi_Vacuum: send 213100600000000003d882ae0001250b50b23e4adff98f77d7c32082d1ef7d29563330f6c30bc100521ea25c7006b1788f193e02868382a4f1a571c4b187c50597be3cf5ca3af4c1074a787019040c962c4cee7c4a270fdef58c665ffa93b7f7
2017.07.18 18:19:40.273 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:40.273 5: Xiaomi_Vacuum > 213100600000000003d882ae0001250b50b23e4adff98f77d7c32082d1ef7d29563330f6c30bc100521ea25c7006b1788f193e02868382a4f1a571c4b187c50597be3cf5ca3af4c1074a787019040c962c4cee7c4a270fdef58c665ffa93b7f7
2017.07.18 18:19:40.369 5: Xiaomi_Vacuum < 213100c00000000003d882ae0001250b154717289d2bf03da904f2c3b8847148d7e2b1cb73860be45ce7a50117cff49a0f1d4b869074b5bd5f3474f0e38b86a42bb2e88d26bb6e647f37151495663c632329852274c43fbf5f499b434a145db7397c5caabe87e231e5549042c3d26bd3330c2783a02d4b6d6c0ed300ef59792aeabb63690cb93a6873900d0862e1d6b54ad871508b75b872ef906685cafe8fcfbdba4fc56e41d09f34c7656df2b5d1009f8b5004fa330d071622558717953ecd (192)
2017.07.18 18:19:40.372 5: Xiaomi_Vacuum: decrypted
{"id":476,"code":0,"message":"ok","result":{"state":"CONNECTING","auth_fail_count":0,"conn_success_count":1,"conn_fail_count":0,"dhcp_fail_count":0}}
2017.07.18 18:19:40.373 5: Xiaomi_Vacuum: parse id 476
$VAR1 = {
'code' => 0,
'result' => {
'conn_fail_count' => 0,
'dhcp_fail_count' => 0,
'conn_success_count' => 1,
'state' => 'CONNECTING',
'auth_fail_count' => 0
},
'id' => 476,
'message' => 'ok'
};
2017.07.18 18:19:40.374 4: Xiaomi_Vacuum: parse id 476 / wifi_stats
2017.07.18 18:19:40.377 5: Xiaomi_Vacuum < 213100300000000003d882ae0001250b89bccd9e0b6be18a91ea3cf0dae997f2ac99252a1558f90ec6b718aa5b83a724 (48)
2017.07.18 18:19:40.379 5: Xiaomi_Vacuum: decrypted
,礍��.�S@��*5
2017.07.18 18:19:40.379 2: Xiaomi_Vacuum: invalid JSON: ,礍��.�S@��*5
2017.07.18 18:19:40.379 5: Xiaomi_Vacuum < 213100600000000003d882ae0001250b2fe424046fa8cbe66b474f750955b212699d613f38dad9862a80542c54437534fbf58be4d7d431fec7cbaaa1e0f0528835601f655ba79a064f0288020f3dfc3d06ebbf7615f7c34d1da388873fc1ce11 (96)
2017.07.18 18:19:40.380 5: Xiaomi_Vacuum: decrypted
{"result":[{"serial_number":"1387100408549"}],"id":478}
2017.07.18 18:19:40.380 5: Xiaomi_Vacuum: parse id 478
$VAR1 = {
'result' => [
{
'serial_number' => '1387100408549'
}
],
'id' => 478
};
2017.07.18 18:19:40.380 4: Xiaomi_Vacuum: parse id 478 / get_serial_number
2017.07.18 18:19:40.381 5: Xiaomi_Vacuum < 213100500000000003d882ae0001250ba7666bd55707d68de8d0f7e22dfecfe33aae47b69a82a3b6a0676280a84a96f20542c07db0a0f6c56af6a59aea756ed024b0f021f7a916845a43005905f4dcca (80)
2017.07.18 18:19:40.382 5: Xiaomi_Vacuum: decrypted
{"result":["Asia\/Shanghai"],"id":479}
2017.07.18 18:19:40.382 5: Xiaomi_Vacuum: parse id 479
$VAR1 = {
'result' => [
'Asia/Shanghai'
],
'id' => 479
};
2017.07.18 18:19:40.383 4: Xiaomi_Vacuum: parse id 479 / get_timezone
2017.07.18 18:19:43.987 4: Xiaomi_Vacuum: write {"id":480,"method":"get_consumable","params":[""]} (50)
2017.07.18 18:19:43.988 5: Xiaomi_Vacuum: send 213100600000000003d882ae0001250e0de65bfdd0842aeee3db09ac5d56afbd32a132442881e0bdf843b9b71454c2d50eb101618d6c95b5ba04ccb3ba527b9cfc001bed3f1e7ece2b3cd9e09affdc79d5049203f18b47257162d5ee8c8091ca
2017.07.18 18:19:43.988 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:43.988 5: Xiaomi_Vacuum > 213100600000000003d882ae0001250e0de65bfdd0842aeee3db09ac5d56afbd32a132442881e0bdf843b9b71454c2d50eb101618d6c95b5ba04ccb3ba527b9cfc001bed3f1e7ece2b3cd9e09affdc79d5049203f18b47257162d5ee8c8091ca
2017.07.18 18:19:43.988 4: Xiaomi_Vacuum: write {"id":481,"method":"get_clean_summary","params":[""]} (53)
2017.07.18 18:19:43.989 5: Xiaomi_Vacuum: send 213100600000000003d882ae0001250eda398a5d554e33cadec8fa59167c9f946ce4988ee9adf77ecf6a10cd7b9431c89c168b983b84f7ec7d01369875bc2d78b9e17e4f7116bcf2be5e7fbb0459504a18de28786996db119b9f673cbf052899
2017.07.18 18:19:43.989 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:43.989 5: Xiaomi_Vacuum > 213100600000000003d882ae0001250eda398a5d554e33cadec8fa59167c9f946ce4988ee9adf77ecf6a10cd7b9431c89c168b983b84f7ec7d01369875bc2d78b9e17e4f7116bcf2be5e7fbb0459504a18de28786996db119b9f673cbf052899
2017.07.18 18:19:43.989 4: Xiaomi_Vacuum: write {"id":482,"method":"get_dnd_timer","params":[""]} (49)
2017.07.18 18:19:43.990 5: Xiaomi_Vacuum: send 213100600000000003d882ae0001250e5e7955d5bfe894f188ece795c1e9ae55a8826ce1fab9cd604a5a8940a989509cb016cea395af5073112044bdc5ab646a1e58ba2819209b380478264868f29e788971c2eb1aa1b4acb57c2a250e633c2e
2017.07.18 18:19:43.990 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:43.990 5: Xiaomi_Vacuum > 213100600000000003d882ae0001250e5e7955d5bfe894f188ece795c1e9ae55a8826ce1fab9cd604a5a8940a989509cb016cea395af5073112044bdc5ab646a1e58ba2819209b380478264868f29e788971c2eb1aa1b4acb57c2a250e633c2e
2017.07.18 18:19:43.990 4: Xiaomi_Vacuum: write {"id":483,"method":"get_timer","params":[""]} (45)
2017.07.18 18:19:43.991 5: Xiaomi_Vacuum: send 213100500000000003d882ae0001250e021945b190f2c569d58588f2344065c67be7c01755b86079840321326e9fa4f3fe112a741d08e5465b85aed472e10729989bd58894bf91188839017756b2ab08
2017.07.18 18:19:43.991 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:43.991 5: Xiaomi_Vacuum > 213100500000000003d882ae0001250e021945b190f2c569d58588f2344065c67be7c01755b86079840321326e9fa4f3fe112a741d08e5465b85aed472e10729989bd58894bf91188839017756b2ab08
2017.07.18 18:19:44.170 5: Xiaomi_Vacuum < 213100b00000000003d882ae0001250f286e53de3c351b56eab04b8adbdf39dd1ffca68b6f547d33de7a1c21fb153d4e9f4ba0203014f09cc6f97d3542479c7e80567101f0420ba6c9adb09fbd0c70bb1f1d93267200dce291edfab64dc31f2cbbeae9498a630a912d25a21c6ba74fa52b718a684d52586ae5a583f4b477d8ea9db6fe7994ddff2a6c6aa38f8ead8c3318cce5e33e90d4028047fa8dd64db0e890384f6e75ce1a5562ebe11e5b08bfc7 (176)
2017.07.18 18:19:44.171 5: Xiaomi_Vacuum: decrypted
{"result":[{"main_brush_work_time":34313,"side_brush_work_time":34313,"filter_work_time":34313,"sensor_dirty_time":34313}],"id":480}
2017.07.18 18:19:44.171 5: Xiaomi_Vacuum: parse id 480
$VAR1 = {
'id' => 480,
'result' => [
{
'sensor_dirty_time' => 34313,
'filter_work_time' => 34313,
'main_brush_work_time' => 34313,
'side_brush_work_time' => 34313
}
]
};
2017.07.18 18:19:44.171 4: Xiaomi_Vacuum: parse id 480 / get_consumable
2017.07.18 18:19:44.172 5: Xiaomi_Vacuum < 213100900000000003d882ae0001250fa5ebe0c0e0682ef076d05dbf4a817432212d44b64b9bb4a05f2999183fd41417ed13bb09a188bf728f32205e94c1ee1277967c48965f66d70e607b865ff3beb18a6463a6f7094d842e9c10583ec91880d946f2627688c5cb448a2f3789891b5b4a23e89f68be43ef15ff83ff5ace9c12070a7bc3555fb6448c3361a03906818c (144)
2017.07.18 18:19:44.173 5: Xiaomi_Vacuum: decrypted
{"result":[34313,434602500,13,[1500336000,1500249600,1500163200,1499990400,1499904000]],"id":481}
2017.07.18 18:19:44.174 5: Xiaomi_Vacuum: parse id 481
$VAR1 = {
'result' => [
34313,
434602500,
13,
[
1500336000,
1500249600,
1500163200,
1499990400,
1499904000
]
],
'id' => 481
};
2017.07.18 18:19:44.174 4: Xiaomi_Vacuum: parse id 481 / get_clean_summary
2017.07.18 18:19:44.174 4: Xiaomi_Vacuum: write {"id":484,"method":"get_clean_record","params":[1500336000]} (60)
2017.07.18 18:19:44.175 5: Xiaomi_Vacuum: send 213100600000000003d882ae0001250fc1caac67ac8627f6d543e94ed03a9bca007f063d26ebd2a8f34bc5fd7dfb1ab365070c96bf11a3bbf8587e1886da282a46ac449f97c5716a1b63579a1d96dc3fa95ce175217f62b37e21fb006605c362
2017.07.18 18:19:44.175 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:44.175 5: Xiaomi_Vacuum > 213100600000000003d882ae0001250fc1caac67ac8627f6d543e94ed03a9bca007f063d26ebd2a8f34bc5fd7dfb1ab365070c96bf11a3bbf8587e1886da282a46ac449f97c5716a1b63579a1d96dc3fa95ce175217f62b37e21fb006605c362
2017.07.18 18:19:44.175 4: Xiaomi_Vacuum: write {"id":485,"method":"get_clean_record","params":[1500249600]} (60)
2017.07.18 18:19:44.176 5: Xiaomi_Vacuum: send 213100600000000003d882ae0001250f11be8b58dcbe0af78d4d64b5c827b4d0f1eb39a880f8b47bcd9844d8485162f9d00001d702e2918f9f5e77d1bcf64b052c979e7e0a31a9a4619d04d4ef24022b9aba75752659eb797f17175c97b19546
2017.07.18 18:19:44.176 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:44.176 5: Xiaomi_Vacuum > 213100600000000003d882ae0001250f11be8b58dcbe0af78d4d64b5c827b4d0f1eb39a880f8b47bcd9844d8485162f9d00001d702e2918f9f5e77d1bcf64b052c979e7e0a31a9a4619d04d4ef24022b9aba75752659eb797f17175c97b19546
2017.07.18 18:19:44.176 4: Xiaomi_Vacuum: write {"id":486,"method":"get_clean_record","params":[1500163200]} (60)
2017.07.18 18:19:44.176 5: Xiaomi_Vacuum: send 213100600000000003d882ae0001250f0bdf53c06deefefc9199ad80da7c1b2b00c4fe265b347a88de566ada6674275509c8306a525de4cac52af65e83c3ab3e564a885a068fb5ff989c216e9592c722fa50e1117d51d1500e598a62caa33ea8
2017.07.18 18:19:44.176 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:44.177 5: Xiaomi_Vacuum > 213100600000000003d882ae0001250f0bdf53c06deefefc9199ad80da7c1b2b00c4fe265b347a88de566ada6674275509c8306a525de4cac52af65e83c3ab3e564a885a068fb5ff989c216e9592c722fa50e1117d51d1500e598a62caa33ea8
2017.07.18 18:19:44.177 4: Xiaomi_Vacuum: write {"id":487,"method":"get_clean_record","params":[1499990400]} (60)
2017.07.18 18:19:44.177 5: Xiaomi_Vacuum: send 213100600000000003d882ae0001250fcd3b8e52ce750ebed2dac014d51acf6bad9c98b9d717d9ed9dac093718ad99c11832df4cd6d0d7d5a83dfc2a3aefc83b81e6b637b920d22700cb7300bdb743e692c30a6cbed8c4ddcc7029537a8598e4
2017.07.18 18:19:44.177 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:44.177 5: Xiaomi_Vacuum > 213100600000000003d882ae0001250fcd3b8e52ce750ebed2dac014d51acf6bad9c98b9d717d9ed9dac093718ad99c11832df4cd6d0d7d5a83dfc2a3aefc83b81e6b637b920d22700cb7300bdb743e692c30a6cbed8c4ddcc7029537a8598e4
2017.07.18 18:19:44.177 4: Xiaomi_Vacuum: write {"id":488,"method":"get_clean_record","params":[1499904000]} (60)
2017.07.18 18:19:44.178 5: Xiaomi_Vacuum: send 213100600000000003d882ae0001250f8531c5a7e65c42bb3a5c4512875bb8f30e91a624de9145210d3f8b87af7ff2d376bf6bb45991d082532c67f2493310f520e261446c5f7cb7b243729b10ac16d200c9a21021e0513b75b101a35ea7ae57
2017.07.18 18:19:44.178 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:44.178 5: Xiaomi_Vacuum > 213100600000000003d882ae0001250f8531c5a7e65c42bb3a5c4512875bb8f30e91a624de9145210d3f8b87af7ff2d376bf6bb45991d082532c67f2493310f520e261446c5f7cb7b243729b10ac16d200c9a21021e0513b75b101a35ea7ae57
2017.07.18 18:19:44.218 5: Xiaomi_Vacuum < 213100900000000003d882ae0001250f8f42f1761e83b5759e9e1a143d907c6202b36019a7e9c2926bbed5cf56bb0f2fabe1f5d393035719bcddc913b4a80d63bf071d079d87363f71c9cc093a4845484f2fade667e998516ea7cb100c8ddde77fefdb531f5dfd10a7f35c7306d1a4aef7210e6c744d3b93ecc0f81e9498ff1195a99717c00a91a94849c3a0a33ef33a (144)
2017.07.18 18:19:44.219 5: Xiaomi_Vacuum: decrypted
{"result":[{"start_hour":22,"start_minute":0,"end_hour":8,"end_minute":0,"enabled":1}],"id":482}
2017.07.18 18:19:44.219 5: Xiaomi_Vacuum: parse id 482
$VAR1 = {
'result' => [
{
'end_minute' => 0,
'end_hour' => 8,
'start_hour' => 22,
'start_minute' => 0,
'enabled' => 1
}
],
'id' => 482
};
2017.07.18 18:19:44.220 4: Xiaomi_Vacuum: parse id 482 / get_dnd_timer
2017.07.18 18:19:44.504 5: Xiaomi_Vacuum < 213100400000000003d882ae0001250f114a5c7393ca8832d0d0507f954235aa18547db81cf78fec6a3735f94c715ce9a6b000fc12abd1ba9afe54f2b5b6b0d6 (64)
2017.07.18 18:19:44.505 5: Xiaomi_Vacuum: decrypted
{"result":[],"id":483}
2017.07.18 18:19:44.505 5: Xiaomi_Vacuum: parse id 483
$VAR1 = {
'id' => 483,
'result' => []
};
2017.07.18 18:19:44.506 4: Xiaomi_Vacuum: parse id 483 / get_timer
2017.07.18 18:19:45.628 5: Xiaomi_Vacuum < 213100700000000003d882ae00012510e4915bab0ddc0e449c9fe7e0895dc3d4001f4cf0c607aea4c2580f876cb6da2a5a384bd8f2ef9d3748895f7b246985aa0c59bd547dece05f121058b76ecb60bd6af335fa85582673066a45334eb3714a68ceaef39e485307899baa6debcbd7de (112)
2017.07.18 18:19:45.629 5: Xiaomi_Vacuum: decrypted
{"result":[[1500308852,1500313416,4406,53645000,0,0]],"id":484}
2017.07.18 18:19:45.629 5: Xiaomi_Vacuum: parse id 484
$VAR1 = {
'id' => 484,
'result' => [
[
1500308852,
1500313416,
4406,
53645000,
0,
0
]
]
};
2017.07.18 18:19:45.630 4: Xiaomi_Vacuum: parse id 484 / get_clean_record0
2017.07.18 18:19:45.671 5: Xiaomi_Vacuum < 213100900000000003d882ae00012510e6f51a16b20ad4329ecfe229f549688a001f4cf0c607aea4c2580f876cb6da2acb39635a52df4d8aebf1d314f2ea376b40d7e99ffa46d30423619d95d68cb3dee59f18eb876d95dff7493e3ecb6fef638786e778cb913242aeb79ad84e04882bee741fa20e19afc54c6c6c1f61cb726104a333bc162f0da3cb466b8d23e2e352 (144)
2017.07.18 18:19:45.672 5: Xiaomi_Vacuum: decrypted
{"result":[[1500300785,1500308094,4112,44852500,0,0],[1500298189,1500298197,0,0,0,0]],"id":485}
2017.07.18 18:19:45.672 5: Xiaomi_Vacuum: parse id 485
$VAR1 = {
'result' => [
[
1500300785,
1500308094,
4112,
44852500,
0,
0
],
[
1500298189,
1500298197,
0,
0,
0,
0
]
],
'id' => 485
};
2017.07.18 18:19:45.673 4: Xiaomi_Vacuum: parse id 485 / get_clean_record1
2017.07.18 18:19:45.693 5: Xiaomi_Vacuum < 213100700000000003d882ae000125107079f89e0c5e7646a84b19e6430c662c001f4cf0c607aea4c2580f876cb6da2a0360d6ab2b11aad4e627f53eb1b6e49be1f771e3f42417322c0b1e6dffe44c7b4c35389209102dcd5825eb21da530e12e953e6344c4a39aba1ba22c45a758c93 (112)
2017.07.18 18:19:45.695 5: Xiaomi_Vacuum: decrypted
{"result":[[1500192898,1500199855,6862,86392500,0,1]],"id":486}
2017.07.18 18:19:45.695 5: Xiaomi_Vacuum: parse id 486
$VAR1 = {
'id' => 486,
'result' => [
[
1500192898,
1500199855,
6862,
86392500,
0,
1
]
]
};
2017.07.18 18:19:45.695 4: Xiaomi_Vacuum: parse id 486 / get_clean_record2
2017.07.18 18:19:45.737 5: Xiaomi_Vacuum < 213101000000000003d882ae00012510a3c56814429fd659ccb61611444ca251001f4cf0c607aea4c2580f876cb6da2a922e01a92f4d94bcd65efdb4cacc5402440fa1ac18e88963f4840d5d9b2a7cd8a387ce10b542ac998a4ca276258bb3c21474b4fda4aaa87f9f24d30a1a99bae7f2b28a81e2c3261e35dd69895df6568b84472f64a7b6c2c9e458d4c25f36098acabea0db4d71d4b2adb0490bd1b6249d1e427de73ae4b7d337187860bb3fcb84d7543fada67aa47969feacf82cb47fc4c69071f1bdcd8608b0296c156936c45040432c2457f27d0ef76b9b68763c33145c8bf44ed71b08a0e4ee7d9d22b70bbd9d85f621209dbcce5dd2479f0e77b789 (256)
2017.07.18 18:19:45.738 5: Xiaomi_Vacuum: decrypted
{"result":[[1500047118,1500052936,5783,83867500,0,1],[1500029405,1500036151,6734,85367500,0,1],[1500025066,1500029364,3970,40575000,0,0],[1500024889,1500024926,0,0,0,0],[1500024773,1500024809,0,0,0,0]],"id":487}
2017.07.18 18:19:45.738 5: Xiaomi_Vacuum: parse id 487
$VAR1 = {
'result' => [
[
1500047118,
1500052936,
5783,
83867500,
0,
1
],
[
1500029405,
1500036151,
6734,
85367500,
0,
1
],
[
1500025066,
1500029364,
3970,
40575000,
0,
0
],
[
1500024889,
1500024926,
0,
0,
0,
0
],
[
1500024773,
1500024809,
0,
0,
0,
0
]
],
'id' => 487
};
2017.07.18 18:19:45.738 4: Xiaomi_Vacuum: parse id 487 / get_clean_record3
2017.07.18 18:19:45.759 5: Xiaomi_Vacuum < 213100d00000000003d882ae00012510bd2c015224a09cc703e48defec9761eff5c62c23f6b50fb625ae098629d334205dc028500539ddb7728263841a10a64e1e761e3c5140073a3164d4a91e99b95ca824a48665659be8aa7710f5e55d5c0607de50c41fe8d7ddf698e29452cdeff846822b5e0f966d41c1716f23e230ca1ae158edc6c4aa6933be8075cd01d559b5cd3d5b4d43bad657e49b035060eef3f11cdd75db03540925ffc589d261c05665fbcf8342a7051650b57b8daf8804325c0ba3796d75bfb8fd30950f4fb419281a (208)
2017.07.18 18:19:45.760 5: Xiaomi_Vacuum: decrypted
{"result":[[1499949853,1499949936,0,1125000,0,0],[1499949743,1499949812,26,455000,0,0],[1499949725,1499949736,0,0,0,0],[1499935715,1499938405,2420,38322500,0,0]],"id":488}
2017.07.18 18:19:45.761 5: Xiaomi_Vacuum: parse id 488
$VAR1 = {
'result' => [
[
1499949853,
1499949936,
0,
1125000,
0,
0
],
[
1499949743,
1499949812,
26,
455000,
0,
0
],
[
1499949725,
1499949736,
0,
0,
0,
0
],
[
1499935715,
1499938405,
2420,
38322500,
0,
0
]
],
'id' => 488
};
2017.07.18 18:19:45.761 4: Xiaomi_Vacuum: parse id 488 / get_clean_record4
2017.07.18 18:19:46.270 4: Xiaomi_Vacuum: write {"id":489,"method":"get_status","params":[""]} (46)
2017.07.18 18:19:46.271 5: Xiaomi_Vacuum: send 213100500000000003d882ae0001251190d1e8bc402bde167d42d7d60291a20bae50bbd6c68e597a6665d3fa2c488298ea1e9d7c42e515054b37ab9a1f1e85bde1620765803005174bdaedfc688e700d
2017.07.18 18:19:46.271 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:19:46.271 5: Xiaomi_Vacuum > 213100500000000003d882ae0001251190d1e8bc402bde167d42d7d60291a20bae50bbd6c68e597a6665d3fa2c488298ea1e9d7c42e515054b37ab9a1f1e85bde1620765803005174bdaedfc688e700d
2017.07.18 18:19:46.369 5: Xiaomi_Vacuum < 213100f00000000003d882ae000125112f460e761c52e982a02577d955d147fff78f9900fbd99f0dea45585babc0cf6ed1173694308b3069286e0220bb09144176446379031599baf7b187a0e5a5a33b211c6a1725cb3df1ee98119b91c6427571c7d27f85b7b0be9f98848cde533471a09001d559bd504b712bb520011024cbce995f8d7c43342f7b1aba33848104ab6c9c51c45c4e530f2358626e9817e62358c720d724a82fc0fc610bd69314c3db2f6b7c0fd0697654f647ae781179fbb379e58411660022593db85cb5b0abf875aaea1f77f57c2afd1539b7472ba7c9f7c42b42e4a9a4cbfc6d14d03b0f66edb0 (240)
2017.07.18 18:19:46.372 5: Xiaomi_Vacuum: decrypted
{"result":[{"msg_ver":5,"msg_seq":2460,"state":5,"battery":75,"clean_time":4053,"clean_area":60010000,"error_code":0,"map_present":1,"in_cleaning":0,"fan_power":30,"dnd_enabled":1}],"id":489}
2017.07.18 18:19:46.373 5: Xiaomi_Vacuum: parse id 489
$VAR1 = {
'id' => 489,
'result' => [
{
'error_code' => 0,
'battery' => 75,
'clean_time' => 4053,
'in_cleaning' => 0,
'fan_power' => 30,
'map_present' => 1,
'state' => 5,
'msg_seq' => 2460,
'clean_area' => 60010000,
'msg_ver' => 5,
'dnd_enabled' => 1
}
]
};
2017.07.18 18:19:46.374 4: Xiaomi_Vacuum: parse id 489 / get_status
2017.07.18 18:20:46.277 4: Xiaomi_Vacuum: write {"id":490,"method":"get_status","params":[""]} (46)
2017.07.18 18:20:46.280 5: Xiaomi_Vacuum: send 213100500000000003d882ae0001254dc5831ae1532badf13caedaad60939d61265483c1e6a3ebf4f124e9541d944c0d75240c441345ce0cb21879e77c71ad56db529434e494c408d0815e2a639cce63
2017.07.18 18:20:46.281 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 18:20:46.281 5: Xiaomi_Vacuum > 213100500000000003d882ae0001254dc5831ae1532badf13caedaad60939d61265483c1e6a3ebf4f124e9541d944c0d75240c441345ce0cb21879e77c71ad56db529434e494c408d0815e2a639cce63
2017.07.18 18:20:46.317 5: Xiaomi_Vacuum < 213100f00000000003d882ae0001254dc0062626587b52f399472bb09460dccbf78f9900fbd99f0dea45585babc0cf6ed1173694308b3069286e0220bb091441f1b13246c8d379a177f4359a5cfd9805bd3027379bc089119b6b7f70caa995dcc444c54024cce319ce6cb5e92f7110327826730666a27f7560e5cfc1ea087e3121b6b5bd19c21a1bf612563320c3d4f26e9d63bd223bd1c831b578efbf0ee8612a8d69f3681931f4d3677c5b5ae25251feadc4c9beefa2e4c7114a5b8cd36f026482ab981ec7080dc9f6d5057916243b97c3804215375a85348a8efeff0d33cf9fd948b538d11295ace4a31eefe40714 (240)
2017.07.18 18:20:46.321 5: Xiaomi_Vacuum: decrypted
{"result":[{"msg_ver":5,"msg_seq":2462,"state":5,"battery":75,"clean_time":4109,"clean_area":62015000,"error_code":0,"map_present":1,"in_cleaning":0,"fan_power":30,"dnd_enabled":1}],"id":490}
2017.07.18 18:20:46.323 5: Xiaomi_Vacuum: parse id 490
$VAR1 = {
'id' => 490,
'result' => [
{
'fan_power' => 30,
'in_cleaning' => 0,
'clean_time' => 4109,
'map_present' => 1,
'error_code' => 0,
'battery' => 75,
'dnd_enabled' => 1,
'msg_ver' => 5,
'clean_area' => 62015000,
'state' => 5,
'msg_seq' => 2462
}
]
};
2017.07.18 18:20:46.324 4: Xiaomi_Vacuum: parse id 490 / get_status
Zitat von: Ma_Bo am 18 Juli 2017, 18:25:17
verbose 5 mit invalid JSON
Kannst du mal deinen Token posten?
Der Reconnect der da mittendrin aufgetaucht ist war manuell ausgelöst?
Probier auch mal bitte manuell
get Xiaomi_Vacuum device_info
Token: 4933685872366c714d3241526e64795a
Manuell habe ich nichts ausgelöst.
get Xiaomi_Vacuum device_info:
2017.07.18 19:47:17.237 4: Xiaomi_Vacuum: write {"id":791,"method":"miIO.info","params":[""]} (45)
2017.07.18 19:47:17.240 5: Xiaomi_Vacuum: send 213100500000000003d882ae00013994d8f79c72d3dd603d0adfd522f1b40d25ed32a0b45db8475d068f7a3b15e7626ad60330be8c0c804b740689ece4e54a8ad7b4651bf944a7e1ee6b0cd038ad9752
2017.07.18 19:47:17.241 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 19:47:17.241 5: Xiaomi_Vacuum > 213100500000000003d882ae00013994d8f79c72d3dd603d0adfd522f1b40d25ed32a0b45db8475d068f7a3b15e7626ad60330be8c0c804b740689ece4e54a8ad7b4651bf944a7e1ee6b0cd038ad9752
2017.07.18 19:47:17.304 5: Xiaomi_Vacuum < 213100300000000003d882ae000139945ed89e7e706c1d74436a1a8e26f12fd4ac99252a1558f90ec6b718aa5b83a724 (48)
2017.07.18 19:47:17.305 5: Xiaomi_Vacuum: decrypted
�0G�f�lP8!�;U
2017.07.18 19:47:17.306 2: Xiaomi_Vacuum: invalid JSON: �0G�f�lP8!�;U
2017.07.18 19:47:28.701 1: Perfmon: possible freeze starting at 19:47:27, delay is 1.701
2017.07.18 19:47:47.056 4: Xiaomi_Vacuum: write {"id":792,"method":"get_status","params":[""]} (46)
2017.07.18 19:47:47.060 5: Xiaomi_Vacuum: send 213100500000000003d882ae000139b2fc666bd8f05f07e4c453cddbe1b96b804536948a6786d8705350ae047f153df480c3603b797494d6925af289862998fbb20b8ca3a830df40e2e067bae9a15c26
2017.07.18 19:47:47.060 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 19:47:47.061 5: Xiaomi_Vacuum > 213100500000000003d882ae000139b2fc666bd8f05f07e4c453cddbe1b96b804536948a6786d8705350ae047f153df480c3603b797494d6925af289862998fbb20b8ca3a830df40e2e067bae9a15c26
2017.07.18 19:47:47.109 5: Xiaomi_Vacuum < 213100f00000000003d882ae000139b2024b56411ab440332181156978f5265df78f9900fbd99f0dea45585babc0cf6ed1173694308b3069286e0220bb0914415872ed058f323a981b1ed42e205ba3ead3668554d51ea93eafaf2254be9664141ba12317892c298712a99afd7723399839d49c23eebece2c6e29e780a50a60aad4092ef0a56700a8f636798c9b4f93e606cbfb659f45db549fbfd357c869e2a5a6b9260a47d6f0289e7d9eb465b0b7a1f6f056cd515e5f416798ffbc9afb199b9c0780ef1fc86dae84e59d5489b97e2643360d140b1428466872ceeb269c619688035d31a1ddd0e2ecb207d981161fe9 (240)
2017.07.18 19:47:47.112 5: Xiaomi_Vacuum: decrypted
{"result":[{"msg_ver":5,"msg_seq":2680,"state":8,"battery":97,"clean_time":5837,"clean_area":88250000,"error_code":0,"map_present":1,"in_cleaning":0,"fan_power":30,"dnd_enabled":1}],"id":792}
2017.07.18 19:47:47.114 5: Xiaomi_Vacuum: parse id 792
$VAR1 = {
'result' => [
{
'state' => 8,
'msg_seq' => 2680,
'msg_ver' => 5,
'clean_area' => 88250000,
'dnd_enabled' => 1,
'error_code' => 0,
'battery' => 97,
'clean_time' => 5837,
'in_cleaning' => 0,
'fan_power' => 30,
'map_present' => 1
}
],
'id' => 792
};
2017.07.18 19:47:47.115 4: Xiaomi_Vacuum: parse id 792 / get_status
Schlechte Nachrichten: Sieht leider so aus, als würde auch die Android-App nicht mehr direkt mit dem Roboter sprechen.
Hallo Markus,
kann dein Modul auch den "Original Xiaomi Mi Smart DC Frequency Stand Fan"?
Ich frage, weil laut deinem ersten Post sollte es klappen für den "Smart Fan", aber in deinem 2-ten Post bezieht sich alles (also die "set" un die 'Readings" auf den Vacuum und den Airpurifier. Dazu brauche ich dann auch wieder einen Token, richtig?
Danke !
Zitat von: Ma_Bo am 18 Juli 2017, 19:48:51
Manuell habe ich nichts ausgelöst.
get Xiaomi_Vacuum device_info:
2017.07.18 19:47:17.237 4: Xiaomi_Vacuum: write {"id":791,"method":"miIO.info","params":[""]} (45)
2017.07.18 19:47:17.240 5: Xiaomi_Vacuum: send 213100500000000003d882ae00013994d8f79c72d3dd603d0adfd522f1b40d25ed32a0b45db8475d068f7a3b15e7626ad60330be8c0c804b740689ece4e54a8ad7b4651bf944a7e1ee6b0cd038ad9752
2017.07.18 19:47:17.241 5: Xiaomi_Vacuum Send SUCCESS
2017.07.18 19:47:17.241 5: Xiaomi_Vacuum > 213100500000000003d882ae00013994d8f79c72d3dd603d0adfd522f1b40d25ed32a0b45db8475d068f7a3b15e7626ad60330be8c0c804b740689ece4e54a8ad7b4651bf944a7e1ee6b0cd038ad9752
2017.07.18 19:47:17.304 5: Xiaomi_Vacuum < 213100300000000003d882ae000139945ed89e7e706c1d74436a1a8e26f12fd4ac99252a1558f90ec6b718aa5b83a724 (48)
2017.07.18 19:47:17.305 5: Xiaomi_Vacuum: decrypted
�0G�f�lP8!�;U
2017.07.18 19:47:17.306 2: Xiaomi_Vacuum: invalid JSON: �0G�f�lP8!�;U
Der Info Aufruf funktioniert bei dir aus irgendeinem Grund wohl generell nicht.
Ich nehme mal an, dass bei dir dann auch die Internals
model und
mac fehlen.
An komplett variablem Content ist in der Antwort eigentlich nur deine SSID drin.
Enthält die irgendwelche Sonderzeichen und/oder Umlaute? Wird sie in der App angezeigt?
Welche Firmware hast du gerade drauf?
Zitat von: inoma am 18 Juli 2017, 22:08:43
Hallo Markus,
kann dein Modul auch den "Original Xiaomi Mi Smart DC Frequency Stand Fan"?
Wird komplett unterstützt, steht hier im Schlafzimmer ;)
Den Token spuckt er in der aktuellen Auslieferungsfirmware übrigens auch nach dem Setup noch aus.
WiFi Fernbedienung und Akkubetrieb schliessen sich allerdings aus.
Zitat von: Markus M. am 18 Juli 2017, 22:11:43
Der Info Aufruf funktioniert bei dir aus irgendeinem Grund wohl generell nicht.
Ich nehme mal an, dass bei dir dann auch die Internals model und mac fehlen.
Korrekt, keine Internals
Zitat von: Markus M. am 18 Juli 2017, 22:11:43
An komplett variablem Content ist in der Antwort eigentlich nur deine SSID drin.
Enthält die irgendwelche Sonderzeichen und/oder Umlaute? Wird sie in der App angezeigt?
SSID: FRITZ!Box7362SL
In der App wird diese wie folgt angezeigt:
Wi-Fi name FRITZ!Box7362SL
IP address 192.168.178.122
MAC address 34:CE:00:E8:30:2C
Zitat von: Markus M. am 18 Juli 2017, 22:11:43
Welche Firmware hast du gerade drauf?
Current Version 3.3.9_003077
Jetzt, wo ich das Internet für den Vacuum freigeschaltet habe, um ihn in der App zu sehen, habe ich die Internals !!!
Ich sperre ihn jetzt mal nicht fürs Internet und warte mal ab, was morgen im LOG steht, muss jetzt ins Bett, der Wecker geht gleich wieder.
Zitat von: Ma_Bo am 18 Juli 2017, 22:29:16
Ich sperre ihn jetzt mal nicht fürs Internet und warte mal ab, was morgen im LOG steht, muss jetzt ins Bett, der Wecker geht gleich wieder.
Habe meinen eben blockiert und beobachte ebenfalls.
Hallo Markus,
ok, dann doch noch 3 Fragen:
Zitat... steht hier im Schlafzimmer ;)
1) Kannst Du den uneingeschränkt empfehlen, für Dachgeschoss / Schlafzimmer? Geräusche? Sonstige Erfahrungen?
ZitatToken spuckt er in der aktuellen Auslieferungsfirmware übrigens auch nach dem Setup noch aus.
2) Das habe ich nicht verstanden, also Token wieder nach der Einrichtung über die Xiaomi APP aus dem iOS Backup extrahieren? Oder was wolltest Du damit sagen? Oder was heisst Token nach dem Setup? Wo finde ich den dann?
3) Mit deinem Modul, kann ich den dann komplett steuern, also - Timer / Schwenken / stufenlose Slider zur Geschwindigkeitsregelung / "Windsimulation" / etc?
4) Wifi Fernbedienung geht dann nur wenn an Strom angeschlossen. Schade.
Danke!
Zitat von: inoma am 18 Juli 2017, 22:43:22
1) Kannst Du den uneingeschränkt empfehlen, für Dachgeschoss / Schlafzimmer? Geräusche? Sonstige Erfahrungen?
32cm Durchmesser bei nur 92cm Gesamthöhe und ca 25 Grad manuell nach oben und unten kippbar, zumindest der Formfaktor muss also passen.
Recht kreativ kannst du mit der Aufstellung nämlich nicht werden, da das Ding einen Kippsensor samt Sicherheitsabschaltung enthält.
Im Betrieb ist er sehr leise, die Windsimulation klingt anfangs etwas gewöhnungsbedürftig ist aber angenehm.
Zitat2) Das habe ich nicht verstanden, also Token wieder nach der Einrichtung über die Xiaomi APP aus dem iOS Backup extrahieren? Oder was wolltest Du damit sagen? Oder was heisst Token nach dem Setup? Wo finde ich den dann?
Wenn du noch die alte Firmware bekommst, kannst du ihn einrichten und das Modul spuckt dir nur anhand der IP direkt den Token aus.
Zitat3) Mit deinem Modul, kann ich den dann komplett steuern, also - Timer / Schwenken / stufenlose Slider zur Geschwindigkeitsregelung / "Windsimulation" / etc?
Alles was in der App ist plus die Geschwindigkeit in Prozent statt nur in 4 Stufen
Kurze Frage, ich würde gerne nachher Ggfs. einen kompletten reset machen, wie geh ich da am besten vor, device aus fhem löschen, device aus der App löschen, dann App löschen (iOS), dann vacuum auf Werkseinstellung (wie geht das, weiß das jemand) und dann von vorne beginnen um den vacuum ins fhem zu bekommen...? Korrekt so...?
Vielleicht klappt es ja dann ohne reconnects und Fehler...
Grüße Marcel
Gesendet von iPhone mit Tapatalk
Zitat von: Ma_Bo am 19 Juli 2017, 12:24:15
Kurze Frage, ich würde gerne nachher Ggfs. einen kompletten reset machen
Vielleicht klappt es ja dann ohne reconnects und Fehler...
Kannst du dir eigentlich sparen.
Es ist definitiv die Internet Verbindung!
Wenn ich die bei mir sperre habe ich das gleiche Problem, keine Device Info sondern ungültiges JSON.
Für die Reconnects ist wahrscheinlich dein WLAN verantwortlich.
Aha... Gut, lässt sich da was machen mit dem ungültigen JSON oder kann man das ignorieren...?
Mit den reconnects muss ich dann wohl leben...
Gesendet von iPhone mit Tapatalk
Zitat von: Ma_Bo am 19 Juli 2017, 14:14:49
Aha... Gut, lässt sich da was machen mit dem ungültigen JSON oder kann man das ignorieren...?
Mit den reconnects muss ich dann wohl leben...
Du kannst es ignorieren und das Modul wird es für diesen speziellen Fall demnächst auch tun.
Ehe du einen Reset machst solltest du den Sauger mal eine Weile mit Verbose 5 laufen lassen um rauszufinden warum er neu verbindet.
Zitat von: Markus M. am 19 Juli 2017, 15:23:00
Du kannst es ignorieren und das Modul wird es für diesen speziellen Fall demnächst auch tun.
Ehe du einen Reset machst solltest du den Sauger mal eine Weile mit Verbose 5 laufen lassen um rauszufinden warum er neu verbindet.
Ich nutze eine Fritzbox und einen Repeater (beides AVM), vielleicht hat das damit was zu tun, wobei der Vacuum beim laden wesentlich näher am repeater ist und die reconnects in der Ladestation passieren, genauso wie beim fahren.
Fritzbox und Repeater senden beide im 2,4GHz und 5GHz Bereich, die Netzwerke haben aber unterschiedlich Namen: FRITZ!Box7362SL und FRITZ!Box7362SL5Ghz
Fritzbox: 7490
Repeater: 1160
Vielleicht hat ja jemand Erfahrung und kann damit was anfangen und an der Zusammenstellung was bemängeln oder sagen, was man ändern könnte.
Gibt es eine Möglichkeit, alles was der Vacuum in verbose5 loggt in ein seperates FileLog zu verfrachten und nicht in mein normales Log...? Also NUR in ein seperaten LOG...
Reset werde ich wohl erstmal nicht machen, da (wie du schon sagtest) der JSON Fehler mit der Inet Verbindung zu tun hat.
Grüße Marcel
*********EDIT
Ich habe mich jetzt mal ein wenig mit dem WLAN beschäftigt und bin zu dem Entschluss gekommen, dass ich die Tage mein WLAN ändern werde.
Es steht in einigen Berichten, dass Geräte mit den Sonderzeichen, in meinem Fall das ! (Ausrufezeichen), Verbindungsprobleme haben können.
Ich kann im LOG der FritzBox sehen, dass sich zu den Timeouts, auch das WLAN Gerät neu angemeldet hat. Vielleicht bringt dies was, ich werde auf jeden Fall berichten.
Zitat von: Ma_Bo am 19 Juli 2017, 15:54:11Ich kann im LOG der FritzBox sehen, dass sich zu den Timeouts, auch das WLAN Gerät neu angemeldet hat.
Dann hast du das Problem ja schon eingegrenzt.
In der neusten Version ist der JSON Fehler durch einen Hinweis auf LogLevel 3 ersetzt.
Zitat von: inoma am 18 Juli 2017, 16:57:10
Hallo StefanFHEM,
ja so ein Problem hatte ich auch für die Eyecare. Es können 2 Ursachen sein:
1) das Wlan Passwort geht nicht. Mein Wlan Passwort hatte ein "/" , das kann die Lampe nicht
2) Ich hatte Schwierigkeiten mit dem USA Server, der immer unter iOS in der MiHome App empfohlen wird (Aber, in den Mi Home app reviews im Apple Appstore findet man dann auch das der Server wohl nicht geht, ein Bug in der App??). Letztendlich habe ich China(Mainland) als Server genommen, dann gings mit der EyeCare. Mit dem China Server bekomnst Du auch das letzte Vacuum FW update angeboten, das wird im US-Singapore Server nicht angeboten.
Beste Grüsse!
Danke! Der Singapore-Server war es. Nachdem ich ihn eingestellt hatte konnte ich auch die EyeCare-Lamp auswählen.
@Markus:
1. Danke für das Klasse Modul und deine Arbeit!
2. Danke für das Klasse Modul und deine Arbeit!
3. Ein Verbesserungswunsch für die Smart-Lamps: state gibt aktuell "connect" an. Schöner würde ich es aber finden, wenn es bei Lampen (analog zum Hue-Modul) on/off angeben würde. Dann würde es auch perfekt mit meinen Templates für TabletUI laufen. Brightness könntest du auch pct nennen und wifi-state wird zu reachable. Aber die letzten zwei Sachen kann man auch über ein UserReading lösen
4. Abschließende Frage: Meine Smart-Lamp hat hinten noch eine zweite LED. Kann man die auch irgendwie steuern?
Grüße
Stephan
Zitat von: StephanFHEM am 19 Juli 2017, 23:06:38
3. Ein Verbesserungswunsch für die Smart-Lamps: state gibt aktuell "connect" an. Schöner würde ich es aber finden, wenn es bei Lampen (analog zum Hue-Modul) on/off angeben würde.
Was meinst du damit? Schick mir mal ein list und einen Logauszug mit verbose 5 bei Statusabfragen.
Ich glaube die Lampe ist noch nicht getestet.
Zitat4. Abschließende Frage: Meine Smart-Lamp hat hinten noch eine zweite LED. Kann man die auch irgendwie steuern?
Wenn ich die Befehle wüsste wahrscheinlich schon...
Brauchst du meine Xiaomi User ID oder meine Telefonnummer um mir Zugriff auf deine Lampe zu geben? :)
Hallo,
anbei die list von meinem Device:
Internals:
DEF 192.168.178.45 HIERSTEHTDERTOKEN
FD 60
NAME WZ_Schreibtischlampe
NR 339
STATE on
TYPE XiaomiDevice
device_type
mac HIERSTEHTDIEMAC
model philips.light.sread1
token HIERSTEHTDERTOKEN
wifi_firmware 1.4.0(30e0bd0)
READINGS:
2017-07-20 22:25:22 brightness 30
2017-07-20 11:21:28 device_firmware 1.2.8
2017-07-20 11:21:28 device_uptime 38.75
2017-07-20 22:25:22 power on
2017-07-20 22:25:22 reachable 1
2017-07-19 22:33:13 state connected
2017-07-20 11:21:28 wifi_auth_fail_count 0
2017-07-20 11:21:28 wifi_conn_fail_count 0
2017-07-20 11:21:28 wifi_conn_success_count 1
2017-07-20 11:21:28 wifi_dhcp_fail_count 0
2017-07-20 11:21:28 wifi_rssi -27
2017-07-20 11:21:28 wifi_state online
helper:
ConnectionState connected
crypt AES
dev 02f9
id a917
ip 192.168.178.45
last_read 1500582322
packetid 162
port 54321
sequence 1500402993
token HIERSTEHTDERTOKEN
packet:
Attributes:
alias Stephan Schreibtisch
group Licht
icon light_office
room Wohnzimmer
stateFormat power
subType SmartLamp
userReadings reachable { if (ReadingsVal($name, 'wifi_state',"offline") eq "online") {"1"} else {"0"} }
verbose 5
webCmd brightness:toggle:on:off
Und hier das event-log mit Verbose 5
2017-07-20 22:29:31 XiaomiDevice WZ_Schreibtischlampe device_uptime: 49.88
2017-07-20 22:29:31 XiaomiDevice WZ_Schreibtischlampe device_firmware: 1.2.8
2017-07-20 22:29:31 XiaomiDevice WZ_Schreibtischlampe wifi_rssi: -26
2017-07-20 22:29:31 XiaomiDevice WZ_Schreibtischlampe reachable: 1
und das normale Log
2017.07.20 22:29:31 4: WZ_Schreibtischlampe: write {"id":162,"method":"miIO.info","params":[""]} (45)
2017.07.20 22:29:31 5: WZ_Schreibtischlampe: initSend
2017.07.20 22:29:31 5: WZ_Schreibtischlampe Send SUCCESS
2017.07.20 22:29:31 5: WZ_Schreibtischlampe > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2017.07.20 22:29:31 5: WZ_Schreibtischlampe: send 213100500000000002f9a9170002bd7a10871910e8b8dbf83a81389e9b066ff2bf43a4dac6a4a7dca2268958ddd6c2ac78348cf7dc17e4e0dcc3bf317378ed0d3ef1f2d6a9cffdc236d3e5a483248140
2017.07.20 22:29:31 5: WZ_Schreibtischlampe Send SUCCESS
2017.07.20 22:29:31 5: WZ_Schreibtischlampe > 213100500000000002f9a9170002bd7a10871910e8b8dbf83a81389e9b066ff2bf43a4dac6a4a7dca2268958ddd6c2ac78348cf7dc17e4e0dcc3bf317378ed0d3ef1f2d6a9cffdc236d3e5a483248140
2017.07.20 22:29:31 5: WZ_Schreibtischlampe < 213100200000000002f9a9170002bd7ac701d9ac0ad12ce1c60cf7e006398634 (32)
2017.07.20 22:29:31 5: WZ_Schreibtischlampe < 213101c00000000002f9a9170002bd7ad831283b8d4d7235766844b73abdce7b9dba2c292844b42b307f31d84557f99f96146851881382497d1933e2beca1eed2e472cc6d9914307a224ab78135b29cb905e1f3acb6d1de8385265013cdb8ad2b24ce5572963f68a06d94d3bcaa145fd2b221821f8c6e3afb4d6445c8678686e7543699de66b61086291cbe0f5f4008d32b268346b2f46d3641e4d98d13736ab1895855092696a889d5a919e317e94dd046c47ecab15a7ecbba8ea462d17b7bfee2fe0290340bdb2dbd5856c76bc4738ec3c0429f2b5e764b2f23707f54d482e4d4ea566f1f61cc361d4a32481efda2c69ca099520103b4ad10c237bdfd8e74120c1a8a2f741a6f080cc507433c02ab0b6ecc3fb9bb00eee5d784093991d8e18b8eeba0dca04864dd4c8504b223f2da1186819a4c81e5a90a0b3dfa0589fbf8cc5280a6a2eabdc5ceaf47456896ec41c0337136fd40d09a3df674cdec691a53d884d8d31c0add9980de66df0af1cc30b94137d0eb2906d0759f721fdac867bffb5127f7b2e571cb6f075a4ee93fbc784cb6ca3913baf40257cd319d98f6fd2ecc0d38e4f245078c7c3d96bc56d22f533b5db8d28fc8b295bfba63e8c2282c43f (448)
2017.07.20 22:29:31 5: WZ_Schreibtischlampe: decrypted
{"result":{"life":179578,"token":"HIERSTEHTDERTOKEN","mac":"HIERSTEHTDIEMAC","fw_ver":"1.2.8","hw_ver":"ESP8266","uid":1642713677,"model":"philips.light.sread1","mcu_fw_ver":"0024","wifi_fw_ver":"1.4.0(30e0bd0)","ap":{"rssi":-26,"ssid":"NAMEFRITZBOX","bssid":"MACVONFRITZBOX"},"netif":{"localIp":"192.168.178.45","mask":"255.255.255.0","gw":"192.168.178.1"},"mmfree":10952},"id":162}
2017.07.20 22:29:31 5: WZ_Schreibtischlampe: parse id 162
{
'result' => {
'hw_ver' => 'ESP8266',
'life' => 179578,
'wifi_fw_ver' => '1.4.0(30e0bd0)',
'mmfree' => 10952,
'ap' => {
'rssi' => -26,
'bssid' => 'MACFRITZBOX',
'ssid' => 'NAMEFRITZBOX'
},
'mac' => '28:6C:07:2A:6D:02',
'uid' => 1642713677,
'token' => 'c701d9ac0ad12ce1c60cf7e006398634',
'mcu_fw_ver' => '0024',
'fw_ver' => '1.2.8',
'model' => 'philips.light.sread1',
'netif' => {
'gw' => '192.168.178.1',
'mask' => '255.255.255.0',
'localIp' => '192.168.178.45'
}
},
'id' => 162
}
2017.07.20 22:29:31 4: WZ_Schreibtischlampe: parse id 162 / device_info
Zitat von: StephanFHEM am 20 Juli 2017, 22:32:33
Hallo,
anbei die list von meinem Device
Teste doch mal den Anhang hier mit verbose 5
Sollte zumindest ein paar Werte lesen.
Deine Lampe kann:
"get_prop",["power","bright","scene_num","notifystatus","ambstatus","ambvalue","eyecare","bls","dvalue"]
"delay_off",[num]
"set_power",[onoff]
"set_bright",[num]
"set_user_scene",[num]
"set_eyecare",[onoff]
"enable_amb",[onoff]
"enable_bl",[onoff]
"set_amb_bright",[num]
"set_notifyuser",[onoff]
hm... neu geladen und jetzt endet FHEM in einer Endlos-Schleife...Booten, kurz da und absturz und wieder neu booten usw.
die Meldung sieht im Log nicht ok aus:
2017.07.21 00:47:11 4: WZ_Schreibtischlampe: parse id 2 / device_info
Can't use string ("0") as an ARRAY ref while "strict refs" in use at ./FHEM/72_XiaomiDevice.pm line 1780.
EDIT: nachdem ich die Version aus deinem 1. Post genommen habe gleicher Fehler weiterhin. Hab dann die pm ganz gelöscht und da lief FHEM wieder aber es waren auch die Geräte weg. Also wieder aus dem 1. Post runtergeladen und Lampe eingerichtet. Dann den Saugroboter und peng. Wieder der gleiche Fehler... Hab gesehen, dass du die Datei gestern erst neu reingesetzt hast. Evnt. ist da ein Fehler drin? Hast du ggf. noch die Version von davor?
EDIT2: Fehler lies sich reproduzieren..Anbei der Fehler im Log
2017.07.21 01:27:36 2: SaugRoboter: Read error
2017.07.21 01:27:36 3: SaugRoboter: disconnecting
2017.07.21 01:27:36 1: ERROR: Select error -1 (9), error count= 0
2017.07.21 01:27:36 1: Found and deleted bad fileno for SaugRoboter
2017.07.21 01:27:40 3: SaugRoboter: disconnecting
2017.07.21 01:27:40 2: SaugRoboter: connecting
2017.07.21 01:27:40 3: SaugRoboter: initialized
2017.07.21 01:27:40 2: SaugRoboter: Read error
2017.07.21 01:27:40 3: SaugRoboter: disconnecting
2017.07.21 01:27:40 1: ERROR: Select error -1 (9), error count= 0
2017.07.21 01:27:40 1: Found and deleted bad fileno for SaugRoboter
EDIT3: Hab jetzt testweise eine Version hier aus dem Forum vom 02.07. genommen und damit läuft es wieder wie normal... da scheint sich in der letzten Version tatsächlich ein Fehler eingeschlichen zu haben
Bite nochmal hiermit mit der aktuellen Version aus dem ersten Post versuchen, vorher alles auf verbose 5 stellen.
Ich habe bisher keinerlei Probleme.
@Markus M.
Ich muss mich recht herzlich für dieses Modul bedanken. Bis auf dieses gefrickel mit dem Token, was durchaus etwas Zeit erfordert, funktioniert alles einwandfrei.
Was ich noch vermisse, sind die Dinge die in der App leider nur auf Chinesisch und nicht auf Englisch sind. Ich glaube die Funktion heisst Sleep.
Grossartige Arbeit, Danke.
Gruss
netsrac4th
Zitat von: netsrac4th am 21 Juli 2017, 09:56:06Ich glaube die Funktion heisst Sleep.
Grossartige Arbeit, Danke.
Bei welchem Gerät denn?
Danke :)
Zitat von: Markus M. am 21 Juli 2017, 10:19:00
Bei welchem Gerät denn?
Danke :)
Beim VacuumCleaner. Soweit ich meine gelesen zu haben, kann man die LED für Standby auch dimmen oder gar abschalten zu gewissen Uhrzeiten.
Auf anderen Seiten war auch zu lesen, das man den Robi auch komplett in suspend setzen kann für eine gewisse Uhrzeit.
Zitat von: netsrac4th am 21 Juli 2017, 14:37:43
Beim VacuumCleaner. Soweit ich meine gelesen zu haben, kann man die LED für Standby auch dimmen oder gar abschalten zu gewissen Uhrzeiten.
Auf anderen Seiten war auch zu lesen, das man den Robi auch komplett in suspend setzen kann für eine gewisse Uhrzeit.
Hast Du da 'ne Quelle? Ich hab' in letzter Zeit ziemlich viel über den Robi gelesen, das ist mir noch nicht untergekommen.
Zitat von: Manul am 21 Juli 2017, 14:58:57
Hast Du da 'ne Quelle? Ich hab' in letzter Zeit ziemlich viel über den Robi gelesen, das ist mir noch nicht untergekommen.
Ja, ich auch. Mal sehen ob ich es noch finde, vielleicht hab ich das auch nur im roboter-forum aufgeschnappt, bei den leuten die die APP Übersetzung hinfummeln.
Zitat von: netsrac4th am 21 Juli 2017, 14:37:43
Beim VacuumCleaner. Soweit ich meine gelesen zu haben, kann man die LED für Standby auch dimmen oder gar abschalten zu gewissen Uhrzeiten.
Auf anderen Seiten war auch zu lesen, das man den Robi auch komplett in suspend setzen kann für eine gewisse Uhrzeit.
Das dürfte der DND Modus sein, der wird bereits unterstützt.
Ich habe allerdings noch nicht rausbekommen, was der macht. Nach meiner Beobachtung plaudert der Roboter im DND-Modus genauso wie ohne. Hat da jemand andere Erfahrungen gemacht?
Zitat von: Markus M. am 21 Juli 2017, 09:29:03
Bite nochmal hiermit versuchen, vorher alles auf verbose 5 stellen.
Ich habe bisher keinerlei Probleme.
Ist das die Version, die auch für einen "Internet gesperrten" Vacuum korrigiert ist ?
Zitat von: Ma_Bo am 21 Juli 2017, 17:50:57
Ist das die Version, die auch für einen "Internet gesperrten" Vacuum korrigiert ist ?
Ja, erste Seite aktualisiert.
Bitte mal damit testen, insbesondere mit Lampen.
Edit: Hatte versehentlich auch die Lampen nach der serial_number gefragt, was die EyeCare wohl nicht vertragen hat.
Problem sollte jetzt behoben sein.
Hallo, kann mir mal einer helfen? Ich bekomme den Token nicht. Beim MiTool kommt immer KEIN Passwort eingeben. Und dann kann ich auf dem Handy nicht Bestätigen. Die miio2.db habe ich auch, dort finde ich kein Token. und beim ./xpn.py kommt ImportError: No module named cryptography.hazmat.primitives.ciphers
Bin jetzt etwas ratlos. Wäre nett wenn mal jemand einen Denkanstoss geben könnte. Besten Dank
Gruß
Rene
Zitat von: skycrack am 22 Juli 2017, 15:16:29Beim MiTool kommt immer KEIN Passwort eingeben. Und dann kann ich auf dem Handy nicht Bestätigen. Die miio2.db habe ich auch, dort finde ich kein Token.
Kenne das Tool nicht im Detail, aber wenn das Gerät eingerichtet ist, ist der Token auch in der DB.
Such mal in der Datei nach dem Namen oder dem Modell (rockrobo).
Du suchst nach einem String mit 32 Zeichen.
Danke, es steht gleich hinter der SSID vom Wlan gefolgt vom gecrypteten WLAN Passwort. Also die ersten 32 Zeichen nach dem WLAN-Namen.
Super, besten dank für den Hinweis.
Gruß
Konnte denn mittlerweile schon jemand die EyeCare2 mit der letzten Version testen?
Danke @Markus_M. für das Modul, mein vacuum funktioniert super!
also..... bei mir leider immer noch der gleiche Fehler mit dem neuen Modul:
log spuckt nach reload 72_xxxx.pm folgende Fehlermeldungen aus.
Wenn ich dann beim Staubsauger ein reconnect auslöse stürzt FHEM ab
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_Initialize redefined at ./FHEM/72_XiaomiDevice.pm line 86.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_Define redefined at ./FHEM/72_XiaomiDevice.pm line 103.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_Undefine redefined at ./FHEM/72_XiaomiDevice.pm line 191.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_Get redefined at ./FHEM/72_XiaomiDevice.pm line 202.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_Set redefined at ./FHEM/72_XiaomiDevice.pm line 396.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_Init redefined at ./FHEM/72_XiaomiDevice.pm line 1106.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_GetUpdate redefined at ./FHEM/72_XiaomiDevice.pm line 1128.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_GetSettings redefined at ./FHEM/72_XiaomiDevice.pm line 1186.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_GetDeviceDetails redefined at ./FHEM/72_XiaomiDevice.pm line 1251.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_GetSpeed redefined at ./FHEM/72_XiaomiDevice.pm line 1287.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_GetDnd redefined at ./FHEM/72_XiaomiDevice.pm line 1327.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_WriteJSON redefined at ./FHEM/72_XiaomiDevice.pm line 1342.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_ParseJSON redefined at ./FHEM/72_XiaomiDevice.pm line 1393.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_connect redefined at ./FHEM/72_XiaomiDevice.pm line 1935.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_disconnect redefined at ./FHEM/72_XiaomiDevice.pm line 1984.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_initSend redefined at ./FHEM/72_XiaomiDevice.pm line 2004.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_connectFail redefined at ./FHEM/72_XiaomiDevice.pm line 2018.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_Read redefined at ./FHEM/72_XiaomiDevice.pm line 2034.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_Write redefined at ./FHEM/72_XiaomiDevice.pm line 2145.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_Attr redefined at ./FHEM/72_XiaomiDevice.pm line 2178.
2017.07.23 13:54:28 1: PERL WARNING: Subroutine XiaomiDevice_DbLog_splitFn redefined at ./FHEM/72_XiaomiDevice.pm line 2207.
Der Absturz erfolgt laut Log (soweit ich das sehen kann) mit folgender Meldung
2017.07.23 13:55:37 2: SaugRoboter: connecting
Can't use string ("0") as an ARRAY ref while "strict refs" in use at ./FHEM/72_XiaomiDevice.pm line 1863.
FHEM läßt sich dann auch nicht mehr zum starten bewegen. Erst nach Austausch der pm mit einer Version vom 02.07. startet FHEM wieder und es läuft wieder alles
Zitat von: StephanFHEM am 23 Juli 2017, 14:04:48
log spuckt nach reload 72_xxxx.pm folgende Fehlermeldungen aus.
Wenn ich dann beim Staubsauger ein reconnect auslöse stürzt FHEM ab
Weil du entweder eine alte Firmware drauf hast oder an deinem Staubsauger noch keine Zeitzone gesetzt hast :)
Ehe du das tust, bitte noch ein Versuch mit der neuen Version. Diesmal sollte es klappen.
danke! jetzt gibt es kein Absturz mehr mit der neuen Version. Dein Fix scheint zu funktionieren.
Anbei noch die jetzt neue list der Lampe
Internals:
DEF 192.168.178.45 MEINTOKEN
FD 57
NAME WZ_Schreibtischlampe
NR 339
STATE connected
TYPE XiaomiDevice
device_type
mac MEINEMAC
model philips.light.sread1
token MEINTOKEN
wifi_firmware 1.4.0(30e0bd0)
READINGS:
2017-07-23 16:17:55 brightness 10
2017-07-23 16:04:58 cct off
2017-07-23 16:17:49 device_firmware 1.2.8
2017-07-23 16:17:49 device_uptime 115.70
2017-07-23 16:17:55 error none
2017-07-23 16:17:55 power off
2017-07-23 16:17:55 reachable 1
2017-07-23 16:04:58 snm 21
2017-07-23 16:06:58 state connected
2017-07-23 16:17:49 wifi_auth_fail_count 0
2017-07-23 16:17:49 wifi_conn_fail_count 0
2017-07-23 16:17:49 wifi_conn_success_count 1
2017-07-23 16:17:49 wifi_dhcp_fail_count 0
2017-07-23 16:17:49 wifi_rssi -28
2017-07-23 16:17:49 wifi_state online
helper:
ConnectionState connected
crypt AES
dev 02f9
id a917
ip 192.168.178.45
last_read 1500819475
packetid 5
port 54321
sequence 1500402954
token MEINTOKEN
packet:
Attributes:
alias Schreibtisch
group Licht
icon light_office
room Wohnzimmer
subType SmartLamp
userReadings reachable { if (ReadingsVal($name, 'wifi_state',"offline") eq "online") {"1"} else {"0"} }
verbose 1
webCmd brightness:toggle:on:off
state ist immer noch auf connect. Da würde ich ein on oder off besser finden (analog Philips Hue). Ansonsten ist cct drin welches ich mit Set auch einstellen kann. Aber es zeigt keine Wirkung. Die in der Lampe zusätzlich integrierte Ambilight-Lampe ist noch nicht sichtbar/steuerbar. Die EyeCare-Funktion an oder ausschalten geht auch noch nicht.
Ich brauche quasi die folgenden von dir genannten:
Zitat"set_eyecare",[onoff]
"enable_amb",[onoff]
"enable_bl",[onoff]
"set_amb_bright",[num]
Zitat von: StephanFHEM am 23 Juli 2017, 16:25:04
danke! jetzt gibt es kein Absturz mehr mit der neuen Version. Dein Fix scheint zu funktionieren.
Na dann machen wir mal weiter, immer noch mit der Version die du gerade drauf hast.
verbose 5 und dann:
get data
set eyecare on
set ambstatus on
set ambvalue 40
2017.07.23 16:47:24 4: WZ_Schreibtischlampe: write {"id":10,"method":"get_prop","params":["power","bright","cct","snm","dv","ct","color_mode","delayoff","flowing","flow_params","name","rgb","hue","sat","ambstatus","ambvalue","eyecare","bls","dvalue"]} (200)
2017.07.23 16:47:24 5: WZ_Schreibtischlampe: initSend
2017.07.23 16:47:24 5: WZ_Schreibtischlampe Send SUCCESS
2017.07.23 16:47:24 5: WZ_Schreibtischlampe > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2017.07.23 16:47:24 5: WZ_Schreibtischlampe: send 213100f00000000002f9a917000661cc84137931ec65303ae2e9a4e770655f1920fdc1b229b0f345ce6d5283ac6d2e9455d3fd1f3a6dee8a4c91256b9710fda0e8eb500796560b273d0eba69d770dc0e435bbb9639c5763f576e68a7e3d19ca97b6ca99081f0f6258c0ff018e3cb5182293f6436979ab98128828652b52e31acdd7f08f40288de6e82a6040a8fc26066491f1e23b03b20ed98f4d1ea08a56e7600df433b137a48a2c1e7a2df4a3167dc220a17e06c6a1d858f22f229dbd56313358c36fef5fa390dfd1f58c962ca74a3ae46f9c8ce74e916abf49a6797200b8ca924029f7fe75f2313f9e8b89e4123f9
2017.07.23 16:47:24 5: WZ_Schreibtischlampe Send SUCCESS
2017.07.23 16:47:24 5: WZ_Schreibtischlampe > 213100f00000000002f9a917000661cc84137931ec65303ae2e9a4e770655f1920fdc1b229b0f345ce6d5283ac6d2e9455d3fd1f3a6dee8a4c91256b9710fda0e8eb500796560b273d0eba69d770dc0e435bbb9639c5763f576e68a7e3d19ca97b6ca99081f0f6258c0ff018e3cb5182293f6436979ab98128828652b52e31acdd7f08f40288de6e82a6040a8fc26066491f1e23b03b20ed98f4d1ea08a56e7600df433b137a48a2c1e7a2df4a3167dc220a17e06c6a1d858f22f229dbd56313358c36fef5fa390dfd1f58c962ca74a3ae46f9c8ce74e916abf49a6797200b8ca924029f7fe75f2313f9e8b89e4123f9
2017.07.23 16:47:24 5: WZ_Schreibtischlampe < 213100200000000002f9a917000661ccc701d9ac0ad12ce1c60cf7e006398634 (32)
2017.07.23 16:47:24 5: WZ_Schreibtischlampe < 213100400000000002f9a917000661ccd6b77916a4142b40959384c5df5b372e0599212b2940926c256c6f7a22d9cde4e798834e99253af833c177aa9b160116 (64)
2017.07.23 16:47:24 5: WZ_Schreibtischlampe: decrypted
{"result":["on",5],"id":10}
2017.07.23 16:47:24 5: WZ_Schreibtischlampe: parse id 10
{
'id' => 10,
'result' => [
'on',
5
]
}
2017.07.23 16:47:24 4: WZ_Schreibtischlampe: parse id 10 / lamp_data
2017.07.23 16:47:24 4: WZ_Schreibtischlampe: msg ref is ARRAY
2017.07.23 16:47:48 4: WZ_Schreibtischlampe: write {"id":11,"method":"set_eyecare","params":["on"]} (48)
2017.07.23 16:47:48 5: WZ_Schreibtischlampe: send 213100600000000002f9a917000661e483a9524a514b469616d3acb737ca90ddfb97e1512dda3cb3e46c4f0b3790b2512d7b260621f27a40d0f6769486566997239388e05410226523d439b587c294fed0ad8eb78ebf2eba9f20a7bfb9f716c3
2017.07.23 16:47:48 5: WZ_Schreibtischlampe Send SUCCESS
2017.07.23 16:47:48 5: WZ_Schreibtischlampe > 213100600000000002f9a917000661e483a9524a514b469616d3acb737ca90ddfb97e1512dda3cb3e46c4f0b3790b2512d7b260621f27a40d0f6769486566997239388e05410226523d439b587c294fed0ad8eb78ebf2eba9f20a7bfb9f716c3
2017.07.23 16:47:48 5: WZ_Schreibtischlampe < 213100400000000002f9a917000661e3471800db6d36bad787929f7cba8fad7acae4dcda6f4c453235525e7a2041c630c99e8b778b4e6af23d7df372c04ef66f (64)
2017.07.23 16:47:48 5: WZ_Schreibtischlampe: decrypted
{"result":["ok"],"id":11}
2017.07.23 16:47:48 5: WZ_Schreibtischlampe: parse id 11
{
'result' => [
'ok'
],
'id' => 11
}
2017.07.23 16:47:48 4: WZ_Schreibtischlampe: parse id 11 / set_light
2017.07.23 16:47:48 4: WZ_Schreibtischlampe: msg ref is ARRAY
2017.07.23 16:47:48 5: WZ_Schreibtischlampe: parse result for 11 is ARRAY(0x424f3e0)
2017.07.23 16:47:50 4: WZ_Schreibtischlampe: write {"id":12,"method":"get_prop","params":["power","bright","cct","snm","dv","ct","color_mode","delayoff","flowing","flow_params","name","rgb","hue","sat","ambstatus","ambvalue","eyecare","bls","dvalue"]} (200)
2017.07.23 16:47:50 5: WZ_Schreibtischlampe: send 213100f00000000002f9a917000661e597cb085af21ff39041fec389db49e0a75aaa63df6f51b5a2194008fe97d8de22c7a177daad179257022c3114610e08193259d2b6f19f776d78ddd13473951bf3a86b12c347e4d7a1ff8fb5a49d52a24bcc67b9a59660992d8b960f1d272b27039427ab73d34e685e0dcc31d6646c44b533448a614e1df473a329ae6113d9502e56626674f984c40f0360392b91d8fd69a8893df764b4033d7a193ebf31eefd2e3f4b032cac066bb65593a05d86bc73c38caab13cf237f2edf1bd5d43b18b95aed54e6633b739e380c9051d65d9739d158ff7d00da204d40db8df57673304c180
2017.07.23 16:47:50 5: WZ_Schreibtischlampe Send SUCCESS
2017.07.23 16:47:50 5: WZ_Schreibtischlampe > 213100f00000000002f9a917000661e597cb085af21ff39041fec389db49e0a75aaa63df6f51b5a2194008fe97d8de22c7a177daad179257022c3114610e08193259d2b6f19f776d78ddd13473951bf3a86b12c347e4d7a1ff8fb5a49d52a24bcc67b9a59660992d8b960f1d272b27039427ab73d34e685e0dcc31d6646c44b533448a614e1df473a329ae6113d9502e56626674f984c40f0360392b91d8fd69a8893df764b4033d7a193ebf31eefd2e3f4b032cac066bb65593a05d86bc73c38caab13cf237f2edf1bd5d43b18b95aed54e6633b739e380c9051d65d9739d158ff7d00da204d40db8df57673304c180
2017.07.23 16:47:50 5: WZ_Schreibtischlampe < 213100400000000002f9a917000661e6c51c2bfc62048b9edd08b45e5a2530de0599212b2940926c256c6f7a22d9cde4b70abf6408345c155f664317bdac9299 (64)
2017.07.23 16:47:50 5: WZ_Schreibtischlampe: decrypted
{"result":["on",5],"id":12}
2017.07.23 16:47:50 5: WZ_Schreibtischlampe: parse id 12
{
'id' => 12,
'result' => [
'on',
5
]
}
2017.07.23 16:47:50 4: WZ_Schreibtischlampe: parse id 12 / lamp_data
2017.07.23 16:47:50 4: WZ_Schreibtischlampe: msg ref is ARRAY
2017.07.23 16:48:06 4: WZ_Schreibtischlampe: write {"id":13,"method":"enable_amb","params":["on"]} (47)
2017.07.23 16:48:06 5: WZ_Schreibtischlampe: send 213100500000000002f9a917000661f627f8db0f64d110186b6fde0adc529e31fa40a90f6a4f3cff0735637e1580fd68428dffd9fcada5808a4f8c2d41f5d31449770937a4ddd9068bd468edb2be1bb2
2017.07.23 16:48:06 5: WZ_Schreibtischlampe Send SUCCESS
2017.07.23 16:48:06 5: WZ_Schreibtischlampe > 213100500000000002f9a917000661f627f8db0f64d110186b6fde0adc529e31fa40a90f6a4f3cff0735637e1580fd68428dffd9fcada5808a4f8c2d41f5d31449770937a4ddd9068bd468edb2be1bb2
2017.07.23 16:48:06 5: WZ_Schreibtischlampe < 213100400000000002f9a917000661f5e05b9a4cf1f037c42ce0ca6ef34fff4ccae4dcda6f4c453235525e7a2041c630c049712bf749d64bf5e1dbc66449ca60 (64)
2017.07.23 16:48:06 5: WZ_Schreibtischlampe: decrypted
{"result":["ok"],"id":13}
2017.07.23 16:48:06 5: WZ_Schreibtischlampe: parse id 13
{
'id' => 13,
'result' => [
'ok'
]
}
2017.07.23 16:48:06 4: WZ_Schreibtischlampe: parse id 13 / set_light
2017.07.23 16:48:06 4: WZ_Schreibtischlampe: msg ref is ARRAY
2017.07.23 16:48:06 5: WZ_Schreibtischlampe: parse result for 13 is ARRAY(0x47b2fb8)
2017.07.23 16:48:08 4: WZ_Schreibtischlampe: write {"id":14,"method":"get_prop","params":["power","bright","cct","snm","dv","ct","color_mode","delayoff","flowing","flow_params","name","rgb","hue","sat","ambstatus","ambvalue","eyecare","bls","dvalue"]} (200)
2017.07.23 16:48:08 5: WZ_Schreibtischlampe: send 213100f00000000002f9a917000661f7f07c8baec7fc1f678f5996cc43ea368df6cbc7a1171eee7a387d2971882113158b24122857ab6cfb239270a28b4383af17a3ac162c3d5243a6f5ac034a782902d9ed51eb0e41d560f7f400765b4a97a29cf9d272fe5d7270751b7efc754fb1a6dab473d8fc65c2dbad107d486ccf04cfa6e2b79f64ddb53cd9b13d718cbe73b6893ad16deab1284c57282b71d1a26a6a92aa79db4ff5813dbc6aba714d931e32cf555c503b97c9c8f9b8a524f5a8137c430d93d37abab5028e2f1293b0cb0deaa45272a2a175e6dd3263462a0c01214193affcc23f336a9d77c423a1008e87bd
2017.07.23 16:48:08 5: WZ_Schreibtischlampe Send SUCCESS
2017.07.23 16:48:08 5: WZ_Schreibtischlampe > 213100f00000000002f9a917000661f7f07c8baec7fc1f678f5996cc43ea368df6cbc7a1171eee7a387d2971882113158b24122857ab6cfb239270a28b4383af17a3ac162c3d5243a6f5ac034a782902d9ed51eb0e41d560f7f400765b4a97a29cf9d272fe5d7270751b7efc754fb1a6dab473d8fc65c2dbad107d486ccf04cfa6e2b79f64ddb53cd9b13d718cbe73b6893ad16deab1284c57282b71d1a26a6a92aa79db4ff5813dbc6aba714d931e32cf555c503b97c9c8f9b8a524f5a8137c430d93d37abab5028e2f1293b0cb0deaa45272a2a175e6dd3263462a0c01214193affcc23f336a9d77c423a1008e87bd
2017.07.23 16:48:08 5: WZ_Schreibtischlampe < 213100400000000002f9a917000661f8862166bab3200c91ab9831c49cf221a90599212b2940926c256c6f7a22d9cde437629410ec09d92942942258d678ccf1 (64)
2017.07.23 16:48:08 5: WZ_Schreibtischlampe: decrypted
{"result":["on",5],"id":14}
2017.07.23 16:48:08 5: WZ_Schreibtischlampe: parse id 14
{
'id' => 14,
'result' => [
'on',
5
]
}
2017.07.23 16:48:08 4: WZ_Schreibtischlampe: parse id 14 / lamp_data
2017.07.23 16:48:08 4: WZ_Schreibtischlampe: msg ref is ARRAY
2017.07.23 16:48:24 4: WZ_Schreibtischlampe: write {"id":15,"method":"set_amb_bright","params":[40]} (49)
2017.07.23 16:48:24 5: WZ_Schreibtischlampe: send 213100600000000002f9a9170006620840291ae8f8ae122166f654e326eb2a0830219229c3a11b999085dc27f126fdaf2205264858ee25754d5f4bf703c06c183676cc1d16a90a6519baa50f969b4fe76d66f6e4a9a5d397769caccc3eaf5aa9
2017.07.23 16:48:24 5: WZ_Schreibtischlampe Send SUCCESS
2017.07.23 16:48:24 5: WZ_Schreibtischlampe > 213100600000000002f9a9170006620840291ae8f8ae122166f654e326eb2a0830219229c3a11b999085dc27f126fdaf2205264858ee25754d5f4bf703c06c183676cc1d16a90a6519baa50f969b4fe76d66f6e4a9a5d397769caccc3eaf5aa9
2017.07.23 16:48:24 5: WZ_Schreibtischlampe < 213100400000000002f9a91700066208f5ed34212679e19403e7edbdd0a8f649cae4dcda6f4c453235525e7a2041c630b54c332e3e59f81b47abe13b7a9a6d90 (64)
2017.07.23 16:48:24 5: WZ_Schreibtischlampe: decrypted
{"result":["ok"],"id":15}
2017.07.23 16:48:24 5: WZ_Schreibtischlampe: parse id 15
{
'id' => 15,
'result' => [
'ok'
]
}
2017.07.23 16:48:24 4: WZ_Schreibtischlampe: parse id 15 / set_light
2017.07.23 16:48:24 4: WZ_Schreibtischlampe: msg ref is ARRAY
2017.07.23 16:48:24 5: WZ_Schreibtischlampe: parse result for 15 is ARRAY(0x495c0e0)
2017.07.23 16:48:26 4: WZ_Schreibtischlampe: write {"id":16,"method":"get_prop","params":["power","bright","cct","snm","dv","ct","color_mode","delayoff","flowing","flow_params","name","rgb","hue","sat","ambstatus","ambvalue","eyecare","bls","dvalue"]} (200)
2017.07.23 16:48:26 5: WZ_Schreibtischlampe: send 213100f00000000002f9a9170006620ad7f60afac57efe1c5d3c8c8b195a29ea0e78cc2b26e35e51ead8ef720b3bb8cfbf25ce46d926f39acf849a72bfafa12e8117fe918f22c358d7d6da4c95cfc6da50e8c7ec5fd304fd4afa915cda7c55f79e7fdba4dfae34515aa231673aa055e9cddbaf9f8663b67305376f4b33beb1309c176517e1075e9e15e072a36d5cf6e46339e0b258c46348640bc4e57bd6e9fb0fd2ace741a32b6c6f6e13e0649930ee78d1d5a3a8507d673cc54afeabb6520ada6699f92018e8b7170f2fd24fdb975ee128cc064b3065bfdc8715507f5d3a3a64242a9be5158ac90ae4b63cb867a483
2017.07.23 16:48:26 5: WZ_Schreibtischlampe Send SUCCESS
2017.07.23 16:48:26 5: WZ_Schreibtischlampe > 213100f00000000002f9a9170006620ad7f60afac57efe1c5d3c8c8b195a29ea0e78cc2b26e35e51ead8ef720b3bb8cfbf25ce46d926f39acf849a72bfafa12e8117fe918f22c358d7d6da4c95cfc6da50e8c7ec5fd304fd4afa915cda7c55f79e7fdba4dfae34515aa231673aa055e9cddbaf9f8663b67305376f4b33beb1309c176517e1075e9e15e072a36d5cf6e46339e0b258c46348640bc4e57bd6e9fb0fd2ace741a32b6c6f6e13e0649930ee78d1d5a3a8507d673cc54afeabb6520ada6699f92018e8b7170f2fd24fdb975ee128cc064b3065bfdc8715507f5d3a3a64242a9be5158ac90ae4b63cb867a483
2017.07.23 16:48:26 5: WZ_Schreibtischlampe < 213100400000000002f9a9170006620acd45a0efaf1605aa47573f764c2e58830599212b2940926c256c6f7a22d9cde4a5f5cc0a804b73aa3892db31647655b2 (64)
2017.07.23 16:48:26 5: WZ_Schreibtischlampe: decrypted
{"result":["on",5],"id":16}
2017.07.23 16:48:26 5: WZ_Schreibtischlampe: parse id 16
{
'id' => 16,
'result' => [
'on',
5
]
}
2017.07.23 16:48:26 4: WZ_Schreibtischlampe: parse id 16 / lamp_data
2017.07.23 16:48:26 4: WZ_Schreibtischlampe: msg ref is ARRAY
die Befehle und Readings sehe ich zwar im Device nicht aber sie funktionieren. Jedenfalls Eyecare und Amilight on/off.
Die Änderung von Ambivalue scheint nichts zu bewirken. Aber das passt glaube ich weil man das an der Lampe auch nicht getrennt heller und dunkler stellen kann. Das wird automatisch mit der normalen Brightness heller und dunkler...ist also quasi gleichgeschaltet.
Zitat von: StephanFHEM am 23 Juli 2017, 16:50:04die Befehle und Readings sehe ich zwar im Device nicht aber sie funktionieren. Jedenfalls Eyecare und Amilight on/off.
Die Änderung von Ambivalue scheint nichts zu bewirken. Aber das passt glaube ich weil man das an der Lampe auch nicht getrennt heller und dunkler stellen kann. Das wird automatisch mit der normalen Brightness heller und dunkler...ist also quasi gleichgeschaltet.
Sieht noch komisch aus, die meisten Readings fehlen.
Update aus Post 1, subType auf "EyeCare" umstellen und dann nochmal probieren nach "
deletereading WZ_Schreibtischlampe .*".
ambvalue ist das komische Lichtverhältnis aus den Settings, keine Ahnung was das tut :)
EDIT: Deine Lampe sollte jetzt komplett unterstützt werden
hallo,
jetzt funktioniert es. Alle Readings werden richtig angezeigt und ich kann die Funktionen steuern.
Allerdings zeigt STATE mir jetzt auch "on" an obwohl power=off ist. Wenn ich die Lampe ausgeschaltet habe müsste dort auch off stehen.
Grüße und vielen Dank!
Stephan
Zitat von: StephanFHEM am 23 Juli 2017, 21:26:52
jetzt funktioniert es. Alle Readings werden richtig angezeigt und ich kann die Funktionen steuern.
Allerdings zeigt STATE mir jetzt auch "on" an obwohl power=off ist. Wenn ich die Lampe ausgeschaltet habe müsste dort auch off stehen.
stateFormat ist also auf power? Und du hast ausgeschaltet?
Die Detailseite unterstützt darauf keine notifies - ich vermute mal dass es überall anders und nach Reload passt.
Ansonsten brauch ich nochmal ein Log.
Mit meiner EyeCare geht auch alles. State steht auf 'connected', ohne attr stateFormat gesetzt zu haben, so wie es sein soll.
Ein RIESEN DANK and Dich!
Zitat von: inoma am 23 Juli 2017, 22:20:15
Mit meiner EyeCare geht auch alles. State steht auf 'connected', ohne attr stateFormat gesetzt zu haben, so wie es sein soll.
Sehe ich etwas anders. Wie bei den Philips Hue Birnen sollte State auf On oder Off stehen je nachdem ob man das Licht an hat oder nicht. Damit wären auch die Templates für Lampen bei meiner TabletUI und MobilUI lauffähig.
Wie bei Stephan wird bei mir auch das stateFormat "power" nicht ins state 'durchgereicht' . . .
Zitat von: inoma am 24 Juli 2017, 00:13:45
Wie bei Stephan wird bei mir auch das stateFormat "power" nicht ins state 'durchgereicht' . . .
Ich verstehe das Problem nicht. Das Reading
state hat mit dem Internal
STATE erst mal nichts zu tun.
attr eycarelampe stateFormat powerDamit muss das passen.
Sorry, mea culpa, Du hast recht, war gestern Abend wohl zu spät. Für das Internal STATE passt es.
Hallo,
ich habe heute mal wieder ein Update gemacht und bekomme nun regelmäßig folgende Einträge im LOG:
deletereading SaugRobot history_7 : Deleted reading history_7 for device SaugRobot
deletereading SaugRobot history_8 : Deleted reading history_8 for device SaugRobot
deletereading SaugRobot history_9 : Deleted reading history_9 for device SaugRobot
...
Kann man das unterdrücken? Und wofür sind diese "deletereading" eigentlich?
Ansonsten sage auch ich hier mal "VIELEN DANK FÜR DIESES MODUL", tolle Arbeit!
Gruß
Blueberry63
Zitat von: blueberry63 am 24 Juli 2017, 09:08:13
ich habe heute mal wieder ein Update gemacht und bekomme nun regelmäßig folgende Einträge im LOG:
deletereading SaugRobot history_7 : Deleted reading history_7 for device SaugRobot
deletereading SaugRobot history_8 : Deleted reading history_8 for device SaugRobot
deletereading SaugRobot history_9 : Deleted reading history_9 for device SaugRobot
...
Kann man das unterdrücken? Und wofür sind diese "deletereading" eigentlich?
Das löscht alte History Readings über den passenden FHEM Mechanismus.
Hatte aber noch nen Fehler drin - mach einfach nochmal ein Update.
Hi Markus,
ich habe das .pm per Hand installiert.
Gibt es bereits einen github link zum adden für normales update?
Danke
Zitat von: netsrac4th am 24 Juli 2017, 15:04:55ich habe das .pm per Hand installiert.
Gibt es bereits einen github link zum adden für normales update?
Noch nicht.
Ich will den Code noch ein wenig überarbeiten, danach kommt das Modul ins FHEM SVN.
also.... hab jetzt noch mal genau im Vergleich zu den Hue-Lampen geschaut und dabei folgendes herausgefunden:
Das die Lampe aus ist aber als "an" gezeigt wird liegt tatsächlich nicht am state sondern an Brightness. Bei Hue heißt das PCT und wird automatisch auf Null gestellt sobald die Lampe ausgeschaltet wird. Hier bleibt es auf dem eingestellten Wert stehen und darum wird die Lampe in meinem Template noch als "an" gezeigt. Das kann ich mit einem User-Reading lösen.
Dennoch gibt in diesem Modul noch ein kleinen Fehler mit dem STATE wenn ich die Lampe über "toggle" anschalte. Die Lampe geht dann an aber der STATE bleibt auf "off". Andersrum funktioniert über Toggle ausschalten aber: STATE geht von "on" auf "off". Schalte ich direkt über "on" und "off" dann geht STATE richtig mit.
Zitat von: StephanFHEM am 24 Juli 2017, 16:59:43Das die Lampe aus ist aber als "an" gezeigt wird liegt tatsächlich nicht am state sondern an Brightness.
Dennoch gibt in diesem Modul noch ein kleinen Fehler mit dem STATE wenn ich die Lampe über "toggle" anschalte.
Brightness aufgeteilt in
brightness und
brightness_on, Reload nach
toggle implementiert. 8)
super klasse! wir kommen der Sache näher:-)
Toggle geht jetzt
Brightness klappt, wenn ich mit Toggle an und ausschalte. Wenn ich über on/off gehe aktualisiert sich Brightness nicht auf 0
Zitat von: StephanFHEM am 24 Juli 2017, 18:17:45Wenn ich über on/off gehe aktualisiert sich Brightness nicht auf 0
Jetzt aber.
Hallo,
Habe gerade den Staubsauger in Betrieb genommen. Klappt prima. Über Total Commander habe ich dann aus der Datenbankdatei das Token ausgelesen (31 Zeichen nach der WLAN SSID). Zusammen mit IP und Token dann den Staubsauger mit der aktuellen Version des Moduls definiert. Der Status bleibt leider auf Disconnected. Die entsprechenden Abhängigkeiten habe ich wie im Startpost beschrieben installiert.
Im Logfile finde ich was den Sauger betrifft folgendes:
2017.07.24 18:45:44 2: XIAOMI_VACUUM: connection timeout
2017.07.24 18:45:44 5: Starting notify loop for XIAOMI_VACUUM, 1 event(s), first is disconnected
...
2017.07.24 18:50:44 3: XIAOMI_VACUUM: disconnecting
2017.07.24 18:50:44 2: XIAOMI_VACUUM: connecting
2017.07.24 18:50:44 3: XIAOMI_VACUUM: initialized
2017.07.24 18:50:44 5: XIAOMI_VACUUM: initSend
2017.07.24 18:50:44 5: XIAOMI_VACUUM Send SUCCESS
2017.07.24 18:50:44 5: XIAOMI_VACUUM > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2017.07.24 18:50:44 5: XIAOMI_VACUUM < 213100200000000003d9263859762564ffffffffffffffffffffffffffffffff (32)
...
2017.07.24 18:50:51 4: XIAOMI_VACUUM: write {"id":124,"method":"get_consumable","params":[""]} (50)
2017.07.24 18:50:51 5: XIAOMI_VACUUM: send 213100600000000003d926385976256bda6a9e1effc603b3f62d25f2638ccbdaf7a5ec68ed4184fb85fa39b11486fa840231a09fd9c8b138fbbd5cfcfe45f78f837c491eb2b553a203842f06b338032ee5eb9e0b7b3c52c1dc3503bdce755e83
2017.07.24 18:50:51 5: XIAOMI_VACUUM Send SUCCESS
2017.07.24 18:50:51 5: XIAOMI_VACUUM > 213100600000000003d926385976256bda6a9e1effc603b3f62d25f2638ccbdaf7a5ec68ed4184fb85fa39b11486fa840231a09fd9c8b138fbbd5cfcfe45f78f837c491eb2b553a203842f06b338032ee5eb9e0b7b3c52c1dc3503bdce755e83
2017.07.24 18:50:51 4: XIAOMI_VACUUM: write {"id":125,"method":"get_clean_summary","params":[""]} (53)
2017.07.24 18:50:51 5: XIAOMI_VACUUM: send 213100600000000003d926385976256b577027e7cd7ed277dbbedcb579d42c50c37dd168b2edb88ed92ab8a811ca42a4f7401c0839fd3324b710cec8441440887bad6ea9fbbd69138f476335c1ca88c6ad5047533b5a5c6a4f9487cd789aa0de
2017.07.24 18:50:51 5: XIAOMI_VACUUM Send SUCCESS
2017.07.24 18:50:51 5: XIAOMI_VACUUM > 213100600000000003d926385976256b577027e7cd7ed277dbbedcb579d42c50c37dd168b2edb88ed92ab8a811ca42a4f7401c0839fd3324b710cec8441440887bad6ea9fbbd69138f476335c1ca88c6ad5047533b5a5c6a4f9487cd789aa0de
2017.07.24 18:50:51 4: XIAOMI_VACUUM: write {"id":126,"method":"get_dnd_timer","params":[""]} (49)
2017.07.24 18:50:51 5: XIAOMI_VACUUM: send 213100600000000003d926385976256bb517e73c0f5041988c3fd8de699d5dec2ab991f8bb2089b38ed34e1f2db5052753e5832033248d0115d4b6908d43470a7e300d6895b24936ee71da1208105644ffd07bdb864bd77d4b573b76929dff19
2017.07.24 18:50:51 5: XIAOMI_VACUUM Send SUCCESS
2017.07.24 18:50:51 5: XIAOMI_VACUUM > 213100600000000003d926385976256bb517e73c0f5041988c3fd8de699d5dec2ab991f8bb2089b38ed34e1f2db5052753e5832033248d0115d4b6908d43470a7e300d6895b24936ee71da1208105644ffd07bdb864bd77d4b573b76929dff19
2017.07.24 18:50:51 4: XIAOMI_VACUUM: write {"id":127,"method":"get_timer","params":[""]} (45)
2017.07.24 18:50:51 5: XIAOMI_VACUUM: send 213100500000000003d926385976256bcdee41438ee83228011da7af491b67adce5177461d0aa7da18c3f1ac4f6dcb88fa93a2bdb8846dd3153fda23b5e8004db1d0550e8768e5b5d674aa12176a90b4
2017.07.24 18:50:51 5: XIAOMI_VACUUM Send SUCCESS
2017.07.24 18:50:51 5: XIAOMI_VACUUM > 213100500000000003d926385976256bcdee41438ee83228011da7af491b67adce5177461d0aa7da18c3f1ac4f6dcb88fa93a2bdb8846dd3153fda23b5e8004db1d0550e8768e5b5d674aa12176a90b4
Was kann ich noch versuchen / Was habe ich beim Einrichten übersehen?
Zitat von: matzemoerk am 24 Juli 2017, 18:57:16
31 Zeichen nach der WLAN SSID
Was kann ich noch versuchen / Was habe ich beim Einrichten übersehen?
Ein einzelnes Zeichen - der Token hat 32 Zeichen
Zitat von: Markus M. am 24 Juli 2017, 19:17:54
Ein einzelnes Zeichen - der Token hat 32 Zeichen
Schande über mein Haupt ;-) Läuft .... Vielen Dank!
Markus,
jetzt hast du alles gelöst und es läuft perfekt:-) mehr hab ich nicht. Danke für das unermüdliche Ändern!
Grüße
Stephan
Guten Morgen!
Mir wird seit einigen Tagen ein Update für die iOS-App angeboten. Hier der (mit Google-Translator) übersetzte Updatetext:
Zitat
1.es Raummanagement neu aufgerüstet; 2 Sprachausrüstung autorisierte Optimierung; 3 m, die vielseitige Gateway, ein Sensor (Temperatur, Feuchtigkeit, Türen und Fenster, der menschliche Körper-Sensor) und Schalteinrichtungen Zigbee Untertitel Optimierung; 4 Seite Bildschärfe der Kamera Polymerisation; 5,3 Automatisierungsoptimierung: modifizieren können die Fehler Automatisierung nicht in der Liste wechseln; ● Verbesserung der Multi-Device-Fall schaffen automatisierte Geläufigkeit; · lösen, wenn ein Teil der Ausrüstung automatisierte Aufgaben, Bedingungen / Aktionen erstellen Themen fehlen; 6 weitere Optimierung: · das Problem beheben Konto wird automatisch unter abnormalen Umständen abgemeldet; Tong Pat haben, rui h ● Geläufigkeit verbessern Schalt mehrsprachiger;
Hat von Euch schon jemand das Update gewagt und kann etwas zu Kompatibilität und Features sagen?
LG
Oli
Zitat von: OliS. am 26 Juli 2017, 11:15:07
Guten Morgen!
Mir wird seit einigen Tagen ein Update für die iOS-App angeboten. Hier der (mit Google-Translator) übersetzte Updatetext:
Hat von Euch schon jemand das Update gewagt und kann etwas zu Kompatibilität und Features sagen?
LG
Oli
Hallo,
das Update habe ich gemacht und kann eigentlich keine veränderung spüren.
Allerdings habe ich auch nur den Sauger.
Der übrigens über die MiHome App nicht wirklich aktualisiert, wenn ich mir mal die Map anschauen möchte.
Ist das bei jemand anderem auch so?
Zitat von: Markus M. am 19 Juli 2017, 20:41:51
Dann hast du das Problem ja schon eingegrenzt.
In der neusten Version ist der JSON Fehler durch einen Hinweis auf LogLevel 3 ersetzt.
Ich habe am Montag mein WLAN umgestellt, Verbindungsabbrüche hatte ich seit dem nur einen einzigen. Also hat es für mich auf jeden Fall was gebracht.
Die aktuelle pm aus dem ersten Beitrag habe ich jetzt auch eingespielt und geladen, mal sehen ob jetzt alles flüssig läuft.
Danke nochmal für das super Modul.
Ist es möglich die "history_x" Readings zu beschränken ?
Ich würde gerne maximal die letzten 10 anzeigen lassen.
Grüße Marcel
Zitat von: Ma_Bo am 27 Juli 2017, 15:35:56
Ist es möglich die "history_x" Readings zu beschränken ?
Ich würde gerne maximal die letzten 10 anzeigen lassen.
Bekommst du denn mehr als 10?
Wenn ja ist das ein Bug.
Ja bekomme mehr.
Habe im Moment 0-12
Tapatalk mit Handy geschrieben, daher kurz gehalten.
Zitat von: Ma_Bo am 27 Juli 2017, 20:08:26
Ja bekomme mehr.
Habe im Moment 0-12
Nur weil du mehrmals am Tag gesaugt hast.
Kümmere mich am Sonntag darum, ist ein Fehler aus dem Umbau.
Readings 10-12 musst du anschließend selbst löschen.
Ok, kein Problem. Danke
Tapatalk mit Handy geschrieben, daher kurz gehalten.
Hi,
ich erhalte nach dem Reload 72_... die folgenden Fehlermeldung in FHEM:
Hast du dazu eine Idee?
Not enough arguments for main::InternalTimer at ./FHEM/72_XiaomiDevice.pm line 858, near "$hash)"
Not enough arguments for main::InternalTimer at ./FHEM/72_XiaomiDevice.pm line 991, near "$hash)"
Not enough arguments for main::InternalTimer at ./FHEM/72_XiaomiDevice.pm line 1007, near "$hash)"
Not enough arguments for main::InternalTimer at ./FHEM/72_XiaomiDevice.pm line 1019, near "$hash)"
Not enough arguments for main::InternalTimer at ./FHEM/72_XiaomiDevice.pm line 1047, near "$hash)"
Too many arguments for main::RemoveInternalTimer at ./FHEM/72_XiaomiDevice.pm line 1170, near ""XiaomiDevice_GetUpdate")"
Not enough arguments for main::InternalTimer at ./FHEM/72_XiaomiDevice.pm line 1188, near "$hash)"
Too many arguments for main::RemoveInternalTimer at ./FHEM/72_XiaomiDevice.pm line 1233, near ""XiaomiDevice_GetSettings")"
Not enough arguments for main::InternalTimer at ./FHEM/72_XiaomiDevice.pm line 1234, near "$hash)"
Too many arguments for main::RemoveInternalTimer at ./FHEM/72_XiaomiDevice.pm line 1306, near ""XiaomiDevice_GetDeviceDetails")"
./FHEM/72_XiaomiDevice.pm has too many errors.
Zitat von: winty99 am 30 Juli 2017, 23:07:27ich erhalte nach dem Reload 72_... die folgenden Fehlermeldung in FHEM:
Hast du dazu eine Idee?
Not enough arguments for main::InternalTimer at ./FHEM/72_XiaomiDevice.pm line 858, near "$hash)"
Nicht wirklich.
Wann hast du das letzte FHEM Update gemacht?
Danke. Es lag am fehlenden Update.
:)Schönes und funktionelles Modul,
3077 FW, alles wie beschrieben. Danke!
PS: ganz kleine Sache:
set Vacuum locate Befehl, wird bei mir immer 2 x abgesetzt.
Zitat von: cortmen am 08 August 2017, 19:43:05
:)Schönes und funktionelles Modul,
3077 FW, alles wie beschrieben. Danke!
PS: ganz kleine Sache:
set Vacuum locate Befehl, wird bei mir immer 2 x abgesetzt.
Hatte ich vor einiger Zeit auch mal...
...aber nicht nur mit dem Modul sondern auch per App...
Hat sich aber wieder gegeben...
...warum weiß ich nicht...
Gruß, Joachim
Hi Markus,
bin seit Tag 1 Nutzer des Moduls und sehr happy, vielen Dank!
Kann es allerdings sein, dass das Modul nicht automatisch einen reconnect auslöst falls die Verbindung zum Sauger abbricht? Spätestens nach zwei Tagen ist mein Sauger entweder disconnected oder es wird einfach kein Reading mehr geupdated, ohne dass der state auf disconnected gesetzt wird.
Ich habe mir als quick-and-dirty fix eine DOIF Funktion geschrieben, die ein "set reconnect" auslöst, falls der state auf disconnected gesetzt wird oder das Timestamp eines Readings über 5 Minuten nicht geupdated wird. Das funktioniert seit nun einer Woche super, aber dennoch wäre es gut, wenn das Modul es eigenständig handlen könnte.
Feedback ende!
Gruß,
Mathea
@ Mathea Irgendwas passt nicht Du hast seit einem Tag das Modul aber seit Tagen und Wochen irgendwelche Probleme?
Bei mir gibt es ab und an so etwas
Zitat2017.08.01 10:35:01 2: MyRobot: connection timeout
2017.08.01 10:40:01 2: MyRobot: connecting
aber er ist nie disconnected. Ich steuere ihn aber auch täglich mit dem Modul, 2 Tage disconnected ginge gar nicht.
Zur info
Ich habe ja am Anfang meine Mi Home App auf locale United States gestellt und bin damit bisher von Updates "verschont" geblieben. Ich wollte das immer mal umstellen, war aber zu faul. Geht ja alles :)
Seit heute gibt es auch in US ein update. Siehe Screenshot im Anhang.
Gruß Otto
Der automatische Reconnect nach 5 oder 10 Minuten (auch ohne Aktion) ist bereits im Modul. Wenn der Sauger WLAN Probleme hat hilft das allerdings nicht viel.
Hallo Markus,
nur mal zur Info wie das update ablief, nach dem download des Paketes stand dann wirklich "Software update" im State. 8) das war so 10:09.
Dann kam dies im Log und danach passierte von alleine nichts mehr. Ich habe eine Weile gewartet. Ich habe dann reconnect per Hand gemacht und alles ist wieder schick:2017.08.09 10:14:00 2: MyRobot: Read error
2017.08.09 10:14:00 1: ERROR: Select error -1 (9), error count= 0
2017.08.09 10:14:00 1: Found and deleted bad fileno for MyRobot
2017.08.09 10:14:02 2: MyRobot: connecting
2017.08.09 10:14:02 2: MyRobot: Read error
2017.08.09 10:14:02 1: ERROR: Select error -1 (9), error count= 0
2017.08.09 10:14:02 1: Found and deleted bad fileno for MyRobot
2017.08.09 10:14:04 2: MyRobot: connecting
2017.08.09 10:14:04 2: MyRobot: Read error
2017.08.09 10:14:04 1: ERROR: Select error -1 (9), error count= 0
2017.08.09 10:14:04 1: Found and deleted bad fileno for MyRobot
2017.08.09 10:14:06 2: MyRobot: connecting
2017.08.09 10:14:06 2: MyRobot: Read error
2017.08.09 10:14:06 1: ERROR: Select error -1 (9), error count= 0
2017.08.09 10:14:06 1: Found and deleted bad fileno for MyRobot
2017.08.09 10:14:08 2: MyRobot: connecting
2017.08.09 10:14:08 2: MyRobot: Read error
2017.08.09 10:14:08 1: ERROR: Select error -1 (9), error count= 0
2017.08.09 10:14:08 1: Found and deleted bad fileno for MyRobot
2017.08.09 10:14:10 2: MyRobot: connecting
2017.08.09 10:14:10 2: MyRobot: Read error
2017.08.09 10:14:10 1: ERROR: Select error -1 (9), error count= 0
2017.08.09 10:14:10 1: Found and deleted bad fileno for MyRobot
2017.08.09 10:14:12 2: MyRobot: connecting
2017.08.09 10:14:12 2: MyRobot: Read error
2017.08.09 10:14:12 1: ERROR: Select error -1 (9), error count= 0
2017.08.09 10:14:12 1: Found and deleted bad fileno for MyRobot
2017.08.09 10:14:14 2: MyRobot: connecting
2017.08.09 10:14:14 2: MyRobot: Read error
2017.08.09 10:14:14 1: ERROR: Select error -1 (9), error count= 0
2017.08.09 10:14:14 1: Found and deleted bad fileno for MyRobot
2017.08.09 10:14:16 2: MyRobot: connecting
2017.08.09 10:14:16 2: MyRobot: Read error
2017.08.09 10:14:16 1: ERROR: Select error -1 (9), error count= 0
2017.08.09 10:14:16 1: Found and deleted bad fileno for MyRobot
2017.08.09 10:14:18 2: MyRobot: connecting
2017.08.09 10:14:18 2: MyRobot: Read error
2017.08.09 10:14:18 1: ERROR: Select error -1 (9), error count= 0
2017.08.09 10:14:18 1: Found and deleted bad fileno for MyRobot
2017.08.09 10:14:20 2: MyRobot: connecting
2017.08.09 10:14:20 2: MyRobot: Read error
2017.08.09 10:14:20 1: ERROR: Select error -1 (9), error count= 0
2017.08.09 10:14:20 1: Found and deleted bad fileno for MyRobot
2017.08.09 10:14:22 2: MyRobot: connecting
2017.08.09 10:14:22 2: MyRobot: Read error
2017.08.09 10:14:22 1: ERROR: Select error -1 (9), error count= 0
2017.08.09 10:14:22 1: Found and deleted bad fileno for MyRobot
2017.08.09 10:14:24 2: MyRobot: connecting
2017.08.09 10:14:24 2: MyRobot: Read error
2017.08.09 10:14:24 1: ERROR: Select error -1 (9), error count= 0
2017.08.09 10:14:24 1: Found and deleted bad fileno for MyRobot
2017.08.09 10:14:26 2: MyRobot: connecting
2017.08.09 10:31:55 2: MyRobot: connecting
Er hat jetzt eine Zeitzone Asia/Shanghai - hatte er vorher so nicht. Hatte er überhaupt eine Zeitzone?
Gruß Otto
Zitat von: Otto123 am 09 August 2017, 09:55:09
@ Mathea Irgendwas passt nicht Du hast seit einem Tag das Modul aber seit Tagen und Wochen irgendwelche Probleme?
Sorry, meine Wortwahl verleitet tatsächlich dazu, es beim Lesen zu verdrehen. Ich wollte eigentlich ausdrücken, dass ich das Modul direkt installiert habe nachdem Markus es erstmalig hier im Forum veröffentlicht hat, also "seit Tag eins".
Aber dass es bei dir funktioniert und Markus auch sagt, dass ein automatischer Reconnect drin ist, ist natürlich seltsam. Es scheint als habe ich dann ein anderes Problem. WLAN Probleme kann ich eigentlich ausschließen, da ich mit der App nie Verbindungsabbrüche habe.
Mein Modul steht auf verbose 0. Ich setze das mal hoch, um im Log zu schauen, ob nach einiger Zeit die "connection timeout" und "connecting" Meldungen kommen.
Was würde denn passieren, wenn es das Modul nach einem Connection Timeout nicht schafft, die Verbindung wieder herzustellen? Würde es den Reconnect dann zyklisch weiterprobieren oder es nach einigen Fehlversuchen für immer sein lassen?
Danke!
Mathea
Hi Mathea,
ups, das habe ich gründlich falsch verstanden. ???
Ich kann die Funktion wirklich bestätigen, mehrfach am Tag und nach exakt 5 min macht er ein reconnect. Länger hat es bei mir noch nicht gedauert, außer vorhin beim update.
Gruß Otto
Bitte ein Update ziehen, verbose auf 2 oder 3 setzen und beobachten.
Zitat von: Otto123 am 09 August 2017, 10:37:19Er hat jetzt eine Zeitzone Asia/Shanghai - hatte er vorher so nicht. Hatte er überhaupt eine Zeitzone?
Je nach deinem vorherigen Firmware-Stand: Wahrscheinlich nicht.
Du möchtest das auf Europe/Berlin setzen ;)
Zitat von: Markus M. am 09 August 2017, 12:53:36
Je nach deinem vorherigen Firmware-Stand: Wahrscheinlich nicht.
Du möchtest das auf Europe/Berlin setzen ;)
Habe ich natürlich sofort getan ;D
Hallo Markus,
irgendwas stimmt mit der remotecontrol nicht. Ich wollte den Sauger mal gezielt in eine Ecke schicken. Dabei fiel mir folgendes auf:
bewegt man ihn z.B.
set MyRobot move 0 100 5000
und macht dann ein
set MyRobot move -50 0 für eine links Drehung um 90° macht er eine Drehung um knapp 450 °
Macht man nach dem move erst mal ein
set MyRobot remotecontrol stop
set MyRobot remotecontrol start
dreht er sich ordentlich um 90°.
Macht man in Summe (immer mit Pausen dazwischen)
set MyRobot remotecontrol start
set MyRobot move 0 100 5000
set MyRobot remotecontrol stop
set MyRobot remotecontrol start
set MyRobot move -50 0
und jetzt ein
set MyRobot move 0 100 20000
beachtet er die 20 sec nicht sondern fährt nur 1 sec.
Macht man wieder
set MyRobot remotecontrol stop
set MyRobot remotecontrol start
geht danach alles ordentlich.
Mehrere gleiche Befehle hintereinander kann man absetzen, z.B. zweimal move 0 100 5000 macht er ordentlich. zweimal move -25 0 auch. Aber in Kombination muss immer ein stop dazwischen.
Mir riecht das danach, dass irgendwelche Variablen / Speicher nicht zurück gesetzt werden?
Ich habe die Version von vorgestern.
Gruß Otto
Schau doch mal bitte mit Verbose 5 nach ob ich was nicht zurücksetze oder der Sauger.
Ich befürchte dass es am Sauger liegt.
Dann darfst du gerne einen Bug Report abschicken :)
Die 20 Sekunden gehen wahrscheinlich auch über ein internes Maximum. Oder fährt er so lange wenn du das versuchst?
Noch was: du solltest zwischen den Befehlen immer eine Pause einlegen die mindestens so lange wie die Ausführungszeit ist.
Also quasi move x y 2000;sleep 2;move...
Das mit den Pausen zwischen den Befehlen ist klar, habe ich ja geschrieben.
Die 20 sec sind offenbar kein limit, er fährt das. Ist auch egal ob 5 oder 10, er fährt nach einer Drehung erstmal nur 1 sec, also so als hätte ich keine Zeit angegeben.
Ich denke auch fast es ist der Sauger. Die Frage wäre: gibt es vielleicht einen "Zwischenbefehl" der nicht remotecontrol stop und start heißt?
Ich hatte das vorher nicht so im Detail probiert, ob es an der neuen Firmware liegt?
Das war die Folge (händisch und natürlich mit Wartezeit:
set MyRobot remotecontrol start
set MyRobot move 0 100 5000
set MyRobot move -50 0 (Drehung um 450°)
set MyRobot remotecontrol stop
set MyRobot remotecontrol start
set MyRobot move -50 0 (Drehung um 90°)
set MyRobot charge
2017.08.10 13:08:27 4: MyRobot: write {"id":30,"method":"app_rc_start","params":[""]} (47)
2017.08.10 13:08:27 5: MyRobot: initSend
2017.08.10 13:08:27 5: MyRobot Send SUCCESS
2017.08.10 13:08:27 5: MyRobot > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2017.08.10 13:08:27 5: MyRobot: send 213100500000000003d7434a598c3eaa6ff9cd1621451e9fc69241603803d90fab21cc52afe9e23ac036a7ff4ab98021a00cf8b4c1575899856a82ceb57c75f61ec754b7cdfd52609cbd8d2534db5b4a
2017.08.10 13:08:27 5: MyRobot Send SUCCESS
2017.08.10 13:08:27 5: MyRobot > 213100500000000003d7434a598c3eaa6ff9cd1621451e9fc69241603803d90fab21cc52afe9e23ac036a7ff4ab98021a00cf8b4c1575899856a82ceb57c75f61ec754b7cdfd52609cbd8d2534db5b4a
2017.08.10 13:08:27 5: MyRobot < 213100200000000003d7434a598c3eabffffffffffffffffffffffffffffffff (32)
2017.08.10 13:08:27 5: MyRobot < 213100400000000003d7434a598c3eab75daf1339e37eb1d621051c43fc69ea4b7b0752db352fae020301e8cd4a9321029e813a76ab74ba707150ec61b097a61 (64)
2017.08.10 13:08:27 5: MyRobot: decrypted
{"result":0,"id":30}
2017.08.10 13:08:27 5: MyRobot: parse id 30
$VAR1 = {
'result' => 0,
'id' => 30
};
2017.08.10 13:08:27 4: MyRobot: parse id 30 / app_rc_start
2017.08.10 13:08:27 4: MyRobot: msg ref is
2017.08.10 13:08:30 4: MyRobot: write {"id":31,"method":"get_status","params":[""]} (45)
2017.08.10 13:08:30 5: MyRobot: send 213100500000000003d7434a598c3eae2bf4152cc7050b8953279654e42f7fc1f2d27eaa6365ae1e2dce9fc66ad15d9f9490cce230974c0eb7ee6e382400ed8c2ce058c8ea7604fda1be21cb290be416
2017.08.10 13:08:30 5: MyRobot Send SUCCESS
2017.08.10 13:08:30 5: MyRobot > 213100500000000003d7434a598c3eae2bf4152cc7050b8953279654e42f7fc1f2d27eaa6365ae1e2dce9fc66ad15d9f9490cce230974c0eb7ee6e382400ed8c2ce058c8ea7604fda1be21cb290be416
2017.08.10 13:08:30 5: MyRobot < 213100e00000000003d7434a598c3ead6d4ee0c2a84a8351f18010caf3116d847aff605b8c30047c9246370067bc73a9005c570f8da45b0346e12d904eeed699113b81347a976ac8f642d2b1212d97668ae65ee571c78013e3a76d5e8b2f69033d6a74cb4e97daa71081cc74ebab10c8ff7cd5048acef6d504a1bfa54b36660c39b6f179f89eb343a336ef05075bb75da9bb0050f16e2815db5836d80caa39308161c7fa7bbfe5065701d8a5363a61bfef71a3ae57f8080cc85654c1a3e40799c43f6801ad64418cfbe806879404da7e9796d97a5143dec5802a9cc784af00ea (224)
2017.08.10 13:08:30 5: MyRobot: decrypted
{"result":[{"msg_ver":5,"msg_seq":344,"state":7,"battery":100,"clean_time":3405,"clean_area":62490000,"error_code":0,"map_present":1,"in_cleaning":0,"fan_power":1,"dnd_enabled":0}],"id":31}
2017.08.10 13:08:30 5: MyRobot: parse id 31
$VAR1 = {
'result' => [
{
'clean_time' => 3405,
'msg_ver' => 5,
'msg_seq' => 344,
'fan_power' => 1,
'state' => 7,
'battery' => 100,
'map_present' => 1,
'error_code' => 0,
'in_cleaning' => 0,
'dnd_enabled' => 0,
'clean_area' => 62490000
}
],
'id' => 31
};
2017.08.10 13:08:30 4: MyRobot: parse id 31 / get_status
2017.08.10 13:08:30 4: MyRobot: msg ref is ARRAY
2017.08.10 13:08:42 4: MyRobot: write {"id":32,"method":"app_rc_move","params":[{"duration":5000,"seqnum":1,"omega":-0.00000000000000000,"velocity":0.2999}]} (119)
2017.08.10 13:08:42 5: MyRobot: send 213100a00000000003d7434a598c3eb928a13ac0e3151e1526d394e07350d6c64dca3d97e590cc8520fc310bf1400e1b691d7edf75f90955c4dbb12d0fe2594eb035529d8503925a9e9ff33a5f461ae79132ec37b876c50c868a3d08caef79d5109deb82cb758e0456c6ccb5f2a79fa1f8419c44ca63decb8c40674ad40947891b1cb2f7eef3a2b08c1aa95f3d04822d21aae24d9acefed159bafdfa0ccbea64
2017.08.10 13:08:42 5: MyRobot Send SUCCESS
2017.08.10 13:08:42 5: MyRobot > 213100a00000000003d7434a598c3eb928a13ac0e3151e1526d394e07350d6c64dca3d97e590cc8520fc310bf1400e1b691d7edf75f90955c4dbb12d0fe2594eb035529d8503925a9e9ff33a5f461ae79132ec37b876c50c868a3d08caef79d5109deb82cb758e0456c6ccb5f2a79fa1f8419c44ca63decb8c40674ad40947891b1cb2f7eef3a2b08c1aa95f3d04822d21aae24d9acefed159bafdfa0ccbea64
2017.08.10 13:08:43 5: MyRobot < 213100400000000003d7434a598c3eba671902188688d2cfb898d3fe1c448dcfb7b0752db352fae020301e8cd4a932108686cb20950def21f8fa4ca3302cc835 (64)
2017.08.10 13:08:43 5: MyRobot: decrypted
{"result":0,"id":32}
2017.08.10 13:08:43 5: MyRobot: parse id 32
$VAR1 = {
'result' => 0,
'id' => 32
};
2017.08.10 13:08:43 4: MyRobot: parse id 32 / app_rc_move
2017.08.10 13:08:43 4: MyRobot: msg ref is
2017.08.10 13:08:58 4: MyRobot: write {"id":33,"method":"app_rc_move","params":[{"duration":1000,"seqnum":2,"omega":1.55000000000000004,"velocity":0.0000}]} (118)
2017.08.10 13:08:59 5: MyRobot: send 213100a00000000003d7434a598c3eca55674bb678edd1b4a54893e468e4f15db02e5105fd1292c1a5c2af2694c0750f3246d912f0b1a7a3c35f3536c5d3561f5fcd2c66e2fbfd1598de8157ff51a27df3f17b2071fec5bff7b3dd27bca7655fb7adcdddcb31b2ac2de1b9bd7c4b19e1cc10afbdfe4cb29afc5b77e80d4aac0a364cc0c5f57a21c43a86f636dd1530d8757b0a8cc9e5d49e4454bdb228cfcb88
2017.08.10 13:08:59 5: MyRobot Send SUCCESS
2017.08.10 13:08:59 5: MyRobot > 213100a00000000003d7434a598c3eca55674bb678edd1b4a54893e468e4f15db02e5105fd1292c1a5c2af2694c0750f3246d912f0b1a7a3c35f3536c5d3561f5fcd2c66e2fbfd1598de8157ff51a27df3f17b2071fec5bff7b3dd27bca7655fb7adcdddcb31b2ac2de1b9bd7c4b19e1cc10afbdfe4cb29afc5b77e80d4aac0a364cc0c5f57a21c43a86f636dd1530d8757b0a8cc9e5d49e4454bdb228cfcb88
2017.08.10 13:08:59 5: MyRobot < 213100400000000003d7434a598c3ecabb42d4d43a7da65789b01a0287b7a582b7b0752db352fae020301e8cd4a932100db5723a740e18d516e42deca3d1ce32 (64)
2017.08.10 13:08:59 5: MyRobot: decrypted
{"result":0,"id":33}
2017.08.10 13:08:59 5: MyRobot: parse id 33
$VAR1 = {
'id' => 33,
'result' => 0
};
2017.08.10 13:08:59 4: MyRobot: parse id 33 / app_rc_move
2017.08.10 13:08:59 4: MyRobot: msg ref is
2017.08.10 13:09:19 4: MyRobot: write {"id":34,"method":"app_rc_end","params":[1]} (44)
2017.08.10 13:09:19 5: MyRobot: send 213100500000000003d7434a598c3edefb49f56a29a1eecfbb6e83aedcfaf3ed309272179b676dd1a3608108963f3c572bc4469b6c0db7951541c599ff3fee62431b44e0a25aaad0e9c53188e55d7f51
2017.08.10 13:09:19 5: MyRobot Send SUCCESS
2017.08.10 13:09:19 5: MyRobot > 213100500000000003d7434a598c3edefb49f56a29a1eecfbb6e83aedcfaf3ed309272179b676dd1a3608108963f3c572bc4469b6c0db7951541c599ff3fee62431b44e0a25aaad0e9c53188e55d7f51
2017.08.10 13:09:21 5: MyRobot < 213100400000000003d7434a598c3ee181a7d54ff79cf83d6d8fcb51adfd1fa9b7b0752db352fae020301e8cd4a932100db61f8893478a07ede100736141b461 (64)
2017.08.10 13:09:21 5: MyRobot: decrypted
{"result":0,"id":34}
2017.08.10 13:09:21 5: MyRobot: parse id 34
$VAR1 = {
'result' => 0,
'id' => 34
};
2017.08.10 13:09:21 4: MyRobot: parse id 34 / app_rc_end
2017.08.10 13:09:21 4: MyRobot: msg ref is
2017.08.10 13:09:26 4: MyRobot: write {"id":35,"method":"get_status","params":[""]} (45)
2017.08.10 13:09:26 5: MyRobot: send 213100500000000003d7434a598c3ee678f62eabfe9beb92b9367658b77158f3444ad93ced6aa481dd6bf88a375aebf8cd34fc3df0aee940a96c177e5520b59e0ae233ead331bf9d596053642892cacc
2017.08.10 13:09:26 5: MyRobot Send SUCCESS
2017.08.10 13:09:26 5: MyRobot > 213100500000000003d7434a598c3ee678f62eabfe9beb92b9367658b77158f3444ad93ced6aa481dd6bf88a375aebf8cd34fc3df0aee940a96c177e5520b59e0ae233ead331bf9d596053642892cacc
2017.08.10 13:09:27 5: MyRobot < 213100e00000000003d7434a598c3ee7ceee0ce4cbd4febdc54c2ceef2aabb9e7aff605b8c30047c9246370067bc73a9005c570f8da45b0346e12d904eeed6990fce868e315a7c748ded0b102719a7be07228dd58cf2a525a9cba10ba8ab3b347cbb349ee02a6fd412e627e94e35e469940a2aabee4a5ef66e9cee9ba8c941ed4d4a610d96ad39da0962b835bcfa279b3246c49b48041be9e56d915a41a4b8f2af8445b14fdd863346376d20ba830efdda1f682191209b700879c4b084de0d74f6be4c9d9b9bf30b4f3bbb888d64b8589ef99d23a815486bbb8691f6b789ba8e (224)
2017.08.10 13:09:27 5: MyRobot: decrypted
{"result":[{"msg_ver":5,"msg_seq":346,"state":3,"battery":100,"clean_time":3405,"clean_area":62490000,"error_code":0,"map_present":1,"in_cleaning":0,"fan_power":1,"dnd_enabled":0}],"id":35}
2017.08.10 13:09:27 5: MyRobot: parse id 35
$VAR1 = {
'result' => [
{
'error_code' => 0,
'map_present' => 1,
'in_cleaning' => 0,
'clean_area' => 62490000,
'dnd_enabled' => 0,
'clean_time' => 3405,
'msg_ver' => 5,
'msg_seq' => 346,
'fan_power' => 1,
'state' => 3,
'battery' => 100
}
],
'id' => 35
};
2017.08.10 13:09:27 4: MyRobot: parse id 35 / get_status
2017.08.10 13:09:27 4: MyRobot: msg ref is ARRAY
2017.08.10 13:09:38 4: MyRobot: write {"id":36,"method":"app_rc_start","params":[""]} (47)
2017.08.10 13:09:38 5: MyRobot: send 213100500000000003d7434a598c3ef2c11e641f8fa802efdad7c50192d731df6513a9ee61d4e83aebd248e007a37cf5680991a5b380eb0d956ad3c2ef142cf09f19e638e7a1067733c173f75538f317
2017.08.10 13:09:38 5: MyRobot Send SUCCESS
2017.08.10 13:09:38 5: MyRobot > 213100500000000003d7434a598c3ef2c11e641f8fa802efdad7c50192d731df6513a9ee61d4e83aebd248e007a37cf5680991a5b380eb0d956ad3c2ef142cf09f19e638e7a1067733c173f75538f317
2017.08.10 13:09:38 5: MyRobot < 213100400000000003d7434a598c3ef208f314440832a907985921c98ec5184eb7b0752db352fae020301e8cd4a93210f867dc5c6b7b96769c0c9555eb647ac4 (64)
2017.08.10 13:09:38 5: MyRobot: decrypted
{"result":0,"id":36}
2017.08.10 13:09:38 5: MyRobot: parse id 36
$VAR1 = {
'result' => 0,
'id' => 36
};
2017.08.10 13:09:38 4: MyRobot: parse id 36 / app_rc_start
2017.08.10 13:09:38 4: MyRobot: msg ref is
2017.08.10 13:09:40 4: MyRobot: write {"id":37,"method":"get_status","params":[""]} (45)
2017.08.10 13:09:40 5: MyRobot: send 213100500000000003d7434a598c3ef447ba30c43503ada980516e542552edf6b8205f948481b13de1d0b03acdf0a362129f7800c6629c93fb659601dd142cb7d32d266f4b71250577151615e2758db1
2017.08.10 13:09:40 5: MyRobot Send SUCCESS
2017.08.10 13:09:40 5: MyRobot > 213100500000000003d7434a598c3ef447ba30c43503ada980516e542552edf6b8205f948481b13de1d0b03acdf0a362129f7800c6629c93fb659601dd142cb7d32d266f4b71250577151615e2758db1
2017.08.10 13:09:40 5: MyRobot < 213100e00000000003d7434a598c3ef4fab05a7a7283e1af154edaf98939920b7aff605b8c30047c9246370067bc73a9005c570f8da45b0346e12d904eeed69914c379b2ae165d9142a1825f8af95e60185672234786f0da19909682b0602e1e17ad53f8069e6dd2e96142552f2154e93183e51b094db8863ac07100043a05dd46e08847db9ef7214ffe7bb2ac4d38e27a4e18a6c8f5a742200a7db8dbc280d081f4ccf2f06706384311d4913fe3620b77e1581981464bdb6f968afd77e580f21ba6047fd8a7c70a241a57ec7755f8b137d4c680a8dc4b96036ca675ad93b124 (224)
2017.08.10 13:09:40 5: MyRobot: decrypted
{"result":[{"msg_ver":5,"msg_seq":348,"state":7,"battery":100,"clean_time":3405,"clean_area":62490000,"error_code":0,"map_present":1,"in_cleaning":0,"fan_power":1,"dnd_enabled":0}],"id":37}
2017.08.10 13:09:40 5: MyRobot: parse id 37
$VAR1 = {
'result' => [
{
'clean_time' => 3405,
'state' => 7,
'battery' => 100,
'msg_ver' => 5,
'fan_power' => 1,
'msg_seq' => 348,
'map_present' => 1,
'error_code' => 0,
'dnd_enabled' => 0,
'clean_area' => 62490000,
'in_cleaning' => 0
}
],
'id' => 37
};
2017.08.10 13:09:40 4: MyRobot: parse id 37 / get_status
2017.08.10 13:09:40 4: MyRobot: msg ref is ARRAY
2017.08.10 13:09:58 4: MyRobot: write {"id":38,"method":"app_rc_move","params":[{"duration":1000,"seqnum":1,"omega":1.55000000000000004,"velocity":0.0000}]} (118)
2017.08.10 13:09:58 5: MyRobot: send 213100a00000000003d7434a598c3f06e19f5197644fe2bfeb3f0bce200a13c114491bc836202a14d9afd9f96909183709281bbf237c71e8c50b33a5b87317df07b78b01dba9f3662f224c855802bc4bb75549870b63e949d986734b1641b075b5b50ef22dfb857425b8459bf7771ecf226e46f096caa8aacdd5f29fc20cc091e44862b5e296960d1589879b8507dfd3d57844c4c8e11f81412bcb9466ca7537
2017.08.10 13:09:58 5: MyRobot Send SUCCESS
2017.08.10 13:09:58 5: MyRobot > 213100a00000000003d7434a598c3f06e19f5197644fe2bfeb3f0bce200a13c114491bc836202a14d9afd9f96909183709281bbf237c71e8c50b33a5b87317df07b78b01dba9f3662f224c855802bc4bb75549870b63e949d986734b1641b075b5b50ef22dfb857425b8459bf7771ecf226e46f096caa8aacdd5f29fc20cc091e44862b5e296960d1589879b8507dfd3d57844c4c8e11f81412bcb9466ca7537
2017.08.10 13:10:00 5: MyRobot < 213100400000000003d7434a598c3f08f9a960bcf13e05f5f53115408665bff7b7b0752db352fae020301e8cd4a93210b4667d0b7d5a2888766fde11b1ff9e6a (64)
2017.08.10 13:10:00 5: MyRobot: decrypted
{"result":0,"id":38}
2017.08.10 13:10:00 5: MyRobot: parse id 38
$VAR1 = {
'id' => 38,
'result' => 0
};
2017.08.10 13:10:00 4: MyRobot: parse id 38 / app_rc_move
2017.08.10 13:10:00 4: MyRobot: msg ref is
2017.08.10 13:10:13 4: MyRobot: write {"id":39,"method":"app_stop","params":[""]} (43)
2017.08.10 13:10:13 5: MyRobot: send 213100500000000003d7434a598c3f15cda9f1a76554adbc5ca0b1fc34b7c58fad390b0bcecc627a7683754862199872814040cbdca76c28b78aedfbc938b1a2336648f173855a008d2a4dede194199a
2017.08.10 13:10:13 5: MyRobot Send SUCCESS
2017.08.10 13:10:13 5: MyRobot > 213100500000000003d7434a598c3f15cda9f1a76554adbc5ca0b1fc34b7c58fad390b0bcecc627a7683754862199872814040cbdca76c28b78aedfbc938b1a2336648f173855a008d2a4dede194199a
2017.08.10 13:10:13 4: MyRobot: write {"id":40,"method":"app_charge","params":[""]} (45)
2017.08.10 13:10:13 5: MyRobot: send 213100500000000003d7434a598c3f1565b0f61a4a4c1bd5d7ecb28fa2f4d7b27cd87219144c613083dfffc5a5d7637a4ffc133c9fc3dd3fbb672cbab04c6f021c8561ca0c2b1b4b574301d17126ce34
2017.08.10 13:10:13 5: MyRobot Send SUCCESS
2017.08.10 13:10:13 5: MyRobot > 213100500000000003d7434a598c3f1565b0f61a4a4c1bd5d7ecb28fa2f4d7b27cd87219144c613083dfffc5a5d7637a4ffc133c9fc3dd3fbb672cbab04c6f021c8561ca0c2b1b4b574301d17126ce34
2017.08.10 13:10:13 5: MyRobot < 213100400000000003d7434a598c3f14d42c4a516f91954ea55295df758b996ab7b0752db352fae020301e8cd4a932108d809a337bfa8bcd1e34691652cd0c14 (64)
2017.08.10 13:10:13 5: MyRobot: decrypted
{"result":0,"id":39}
2017.08.10 13:10:13 5: MyRobot: parse id 39
$VAR1 = {
'result' => 0,
'id' => 39
};
2017.08.10 13:10:13 4: MyRobot: parse id 39 / app_stop
2017.08.10 13:10:13 4: MyRobot: msg ref is
2017.08.10 13:10:13 5: MyRobot < 213100400000000003d7434a598c3f14453dcd9d83f86d1629c474923bf9dd6ab7b0752db352fae020301e8cd4a932108c694edbc25099e85604dabea5554d6e (64)
2017.08.10 13:10:13 5: MyRobot: decrypted
{"result":0,"id":40}
2017.08.10 13:10:13 5: MyRobot: parse id 40
$VAR1 = {
'result' => 0,
'id' => 40
};
2017.08.10 13:10:13 4: MyRobot: parse id 40 / app_charge
2017.08.10 13:10:13 4: MyRobot: msg ref is
Wenn du wireshark hast kannst du es auch mal mit dem Telefon probieren und nachsehen was die App schickt. Die Fernsteuerung sollte über das lokale Netzwerk laufen.
Hallo,
ich bekomme einfach nicht die Xiaomi Schreibtischlampe angesprochen. Token (32 Zeichen) hab ich, verbose 5 gibt immer (sowohl bei subtyp eyecare als auch smartlamp) nur Folgendes:
2017.08.10 20:33:46 3: xdesk.og.kind1_tisch: disconnecting
2017.08.10 20:33:46 2: xdesk.og.kind1_tisch: connecting
2017.08.10 20:33:46 3: xdesk.og.kind1_tisch: initialized
2017.08.10 20:33:46 5: xdesk.og.kind1_tisch: initSend
2017.08.10 20:33:46 5: xdesk.og.kind1_tisch Send SUCCESS
2017.08.10 20:33:46 5: xdesk.og.kind1_tisch > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
mehr nicht.
In der App funktioniert die Lampe (bis auf ganz schön Bedenkzeit - ca. 3Sek). Die Lampe wird aber doch unterstützt, oder? (Siehe Anhang)
Fairerweise sei dazu gesagt, die Lampe hängt in einem anderen Subnetz mit Firewall dazwischen, aber die Freischaltungen sind identisch mit denen des Saugers - und der funktioniert.
Irgendwelche Tipps?
Zitat von: distel am 10 August 2017, 20:40:00Irgendwelche Tipps?
zu 99%: Dein Token ist falsch.
Hallo zusammen,
bin seit heute glücklicher Besitzer von einem dieser lustigen Sauger. Modul + Anbindung haben auf Anhieb funktioniert! :)
Der WAF ist nach den ersten Vorführungen durch die Decke gegangen! ;D
Budget für weitere Gadgets wurde genehmigt!
Viiieeelen Dank an Markus für das Modul und alle die mit Tests und Hinweisen unterstützt haben!
VG
Micha
Hallo,
ich habe jetzt auch den Staubsauger :) und möchte ihn gerne in FHEM einbinden – scheitere aber am Token.
MiToolkit will nicht richtig laufen (hängt in Endlosschleife nach Klick auf Verbindung prüfen. Handy hängt am PC und wurde auch richtig erkannt).
Zitat
- Aus DB unter /data/data/com.xiaomi.smarthome/databases/miio2.db
werde ich nicht Schlau. Da fehlen mir noch Infos. Weder das Verzeichnis noch eine miio2.db befinden sich auf dem Handy. Wie wird die erstellt?
Mir ist auch nicht klar, wie, wann und wo xpn.py eingesetzt werden soll (und welche Voraussetzungen dafür erfüllt sein müssen).
Ich hoffe auf Unterstützung.
LG
Holger
Hallo Holger,
ich staune ja auch, dass offenbar alle mit der recht knappen Beschreibung zum Token klar kommen. Ich denke für Android geht es nur mit mitoolkit, zumindest habe ich das gestern erfolgreich gemacht. Der Verweis auf die Datenbank führt bei mir zu nichts, weil an der Stelle einfach nichts ist.
Du hast Dir beim MITOOLKIT das Video angesehen und das Handy in den Entwicklermodus versetzt und USB debugging aktiviert. An welcher Stelle klemmt es?
Gruß Otto
Hallo Otto,
danke für deine Unterstützung.
Es war eigentlich alles so weit ok. Warum die Anwendung permanent hing - keine Ahnung (USB-Debugging war aktiviert, Handy wurde vom PC erkannt, richtige ADB-Treiber waren auch installiert).
Nach einem Neustart des Rechners hat MiToolkit auf einmal funktioniert (so nach dem 4. oder 5. Anlauf). Hilfreich wäre dann noch der Hinweis gewesen (zumindest für mich), nach jeder Aktion das Handy auf Meldungen zu kontrollieren. Aber Hauptsache: ich habe jetzt meinen Token und FHEM kennt den robbi. Danke.
Momentan habe ich noch folgende Fragen:
Was bedeutet DND mode?
Meldet der Robbi eigentlich, wenn der Filterbehälter voll ist bzw. zu wieviel %?
Wenn ich nicht alles sondern nur bestimmte Räume saugen will: Robbi im Raum "einsperren" und starten oder geht das intelligenter?
LG
Holger
Hallo Holger,
ja das MIToolkit löst Aktionen aus und man muss am Handy reagieren - ich sag ja so ganz easy ist es nicht. :-[
Do Not Disturb - störe nicht ... Keine Sprachmeldungen (oder gar keine?)
Der Filter wird nicht gemeldet, er sagt lediglich wenn Du ihn heraus nimmst oder einsetzt. Das ist eigentlich zweckfrei ;D ;D ;D
Man kann ihn entweder einsperren oder es gibt Spot Cleanup, das ist so ein Areal von 2 x 2 metern? In etwa. Also hinsetzen oder mit Remotecontrol hinfahren.
Viel Spaß!
Gruß Otto
Hallo,
also zu dem ob der Behälter voll ist sagt mir mein Robi schon etwas.
Wenn er zum Beispiel voll ist sagt er das ich ihn leeren soll (dann ist der Behälter aber auch wirklich rand voll) und nach einer gewissen Stunden anzahl sagt er mir auch das ich den Filter reinigen soll.
Gruß
Zitat von: pumabaer am 12 August 2017, 19:43:22
Hallo,
also zu dem ob der Behälter voll ist sagt mir mein Robi schon etwas.
Wenn er zum Beispiel voll ist sagt er das ich ihn leeren soll (dann ist der Behälter aber auch wirklich rand voll) und nach einer gewissen Stunden anzahl sagt er mir auch das ich den Filter reinigen soll.
Gruß
Genau, und er meckert auch wenn er eine Socke gefressen hat und nicht richtig saugen darf weil sie in der Bürste klemmt :-D
Er bleibt dann stehen und status ist im FHEM auf sleeping.
Zitat von: pumabaer am 12 August 2017, 19:43:22
also zu dem ob der Behälter voll ist sagt mir mein Robi schon etwas.
Wenn er zum Beispiel voll ist sagt er das ich ihn leeren soll (dann ist der Behälter aber auch wirklich rand voll)
Echt? Das hatte ich noch nicht. Da war ich auch nicht von ausgegangen. Wieder was gelernt :D
Das mit dem Wechseln ist klar, aber das ist reine Stundenzählerei.
Im übrigen was er nicht merkt: Wenn er z.B. eine rote Hibiscusblüte findet, diese zu einer Heidelbeerfarbenen Knetrolle verarbeitet, welche sich zwischen der Bürstenrolle und Gehäuse offenbar wunderbar dreht und im gesamten Zimmer den Weg aufmalt (Mapping direkt auf dem Boden) - steht er anschließend unschuldig da wie immer. :'( :'( :'(
Gruß Otto
Zitatalso zu dem ob der Behälter voll ist sagt mir mein Robi schon etwas.
Sagt er (sie) nur etwas oder kommt auch ein entsprechender Status in einem der Readings, auf den reagiert werden kann?
LG
Holger
Zitat von: Omega am 12 August 2017, 23:00:18
Sagt er (sie) nur etwas oder kommt auch ein entsprechender Status in einem der Readings, auf den reagiert werden kann?
In einem Reading kommt nichts, weil ich kein solches kenne. Hatte ich auch noch nie.
Interessantere Frage: Wird dann auch in der App was angezeigt?
Oder evtl. eine Fehlermeldung?
Zitat von: Markus M. am 12 August 2017, 23:10:09
In einem Reading kommt nichts, weil ich kein solches kenne. Hatte ich auch noch nie.
Interessantere Frage: Wird dann auch in der App was angezeigt?
Oder evtl. eine Fehlermeldung?
hallo
Also in der App kommt nur so ein Popup (wie z.B. Sucsessfully Docked) und er sagt vorher ja immer eine Fehlernummer an, die ich aber grade nicht weiß.
Die meldung das er voll ist kommt aber auch echt Spät, ich vermute er bemerkt irgendwie einen druck unterschied beim saugen.
Ich hatte neulich meinen Filter sauber gemacht und dann war dieser noch ein bisschen feucht und dann kam sofort die Meldung das der Filter blockiert sei.
Das mit der Socke kann ich auch bestätigen ;D ;D
Error 10 => "Filter blocked"
Wir haben auch noch ein Reading in_cleaning von dem ich nicht weiss was es tut.
Wer seinen Sauger mal lange genug nicht geleert hat: bitte beobachten :)
Man nehme einen alten Briefumschlag schneide ihn passend und bedecke von innen den Filter :)
Nach ca. 60 sec
Ansage: Error 10 Please clean or replace the filter
In der App: looks like the filter is blocked
Allerdings in FHEM kommt nichts an kein error, das reading in_cleaning bleibt bei mir immer auf no
Beim zweiten Versuch kommt die Meldung in der App nicht sondern nur akustisch. Allerdings wird er Fehler wiederholt wenn man den Behälter entfernt.
Die Meldung in der App kann ich nicht wiederholen :-\
Gruß Otto
Es gibt also keine Meldung sondern erst einen Fehler, wenn es wirklich fast zu spät ist.
Zitat von: netsrac4th am 12 August 2017, 19:46:12
Genau, und er meckert auch wenn er eine Socke gefressen hat und nicht richtig saugen darf weil sie in der Bürste klemmt :-D
Er bleibt dann stehen und status ist im FHEM auf sleeping.
Wenn er bei mir was "gefressen" hat und deshalb stehen bleibt meldet Fhem "
Malfunction"
Hallo,
ich habe mir mit Euer Vorarbeit nun eine kleine Datei gebastelt, damit der Sauger sein Versteck verlässt und unter unserem Frühstückstisch klarschiff macht.
in der fhem.cfg folgendes eingefügt
define vacuum XiaomiDevice 192.xxx.xxx.xxx. #Ziffern des Tokens#
attr vacuum room Wohnzimmer
attr vacuum subType VacuumCleaner
attr vacuum webCmd reconnect:start:stop:charge
define unter_Tisch_Saugen dummy
attr unter_Tisch_Saugen room Wohnzimmer
attr unter_Tisch_Saugen webCmd on:off
define Tisch_Saugen_notify notify unter_Tisch_Saugen:on {Tisch_Saugen ()}
define Fhemobile dummy
und dann die myutilstemplate.pm als 99myutils.pm mit folgendem Inhalt gespeichtert
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.
package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
# Enter you functions below _this_ line.
sub Tisch_Saugen()
{fhem(" set vacuum reconnect; sleep 5; set vacuum fan_power 50;
sleep 2;
set vacuum remotecontrol start;
sleep 8;
set vacuum move -10 100 3000;
sleep 1;
set vacuum move -10 100 3000;
sleep 1;
set vacuum move 0 100 3000;
sleep 1;
set vacuum spot;
sleep 1;
set vacuum remotecontrol stop; set vacuum charge; ")}
1;
Hi Winty99,
Wenn Du jetzt noch Deinen Beitrag editierst und den Code in Codetags einbettest, bekommst Du ein Bienchen. ;) Die Codetags findest Du mit der # Taste über dem :-X Smily.
Einfach den Code markieren und draufdrücken.
Kannst Du noch sagen welche Firmware Du hast?
Gruß Otto
Zitat von: winty99 am 13 August 2017, 20:08:17
Hallo,
ich habe mir mit Euer Vorarbeit nun eine kleine Datei gebastelt, damit der Sauger sein Versteck verlässt und unter unserem Frühstückstisch klarschiff macht.
Wenn du möchtest dass unter dem Frühstückstisch auch gesaugt wird und der Sauger dort nicht nur kurz vorbeischaut ehe er wieder Aufladen geht, solltest du dir die letzten 2 Zeilen nochmal genauer ansehen ;)
Wobei ich nicht glaube dass er bis zum Tisch kommt, da deine Sleeps generell kürzer sind als die Anweisungen.
Zitat von: Markus M. am 13 August 2017, 20:53:55
Wobei ich nicht glaube dass er bis zum Tisch kommt, da deine Sleeps generell kürzer sind als die Anweisungen.
Die Frage nach dem praktischen Lauffähigkeit hätte ich auch noch nachgeschoben. Nach meinen Tests würde das so gar nicht gehen. Aber das muss ja nix heißen :-[
Zitat von: Markus M. am 09 August 2017, 12:09:17
Bitte ein Update ziehen, verbose auf 2 oder 3 setzen und beobachten.
Hallo Markus,
danke für das Update! Leider scheint es noch nicht so ganz zu funktionieren.
Nach ein paar connection timeouts habe ich wieder einen "disconnected" state ohne dass er erneut einen reconnect versucht:
2017.08.10 15:16:18 2: Robot_Vacuum: connection timeout
2017.08.10 15:21:18 2: Robot_Vacuum: connecting
2017.08.10 17:33:39 2: Robot_Vacuum: connection timeout
2017.08.10 17:38:39 2: Robot_Vacuum: connecting
2017.08.10 19:30:00 2: Robot_Vacuum: connection timeout
2017.08.10 19:35:00 2: Robot_Vacuum: connecting
Gerade eben habe ich auch versucht, die fan_power zu setzen während verbose auf 5 steht. Beim ersten mal hat es funktioniert, beim zweiten mal kam zwar ein Send SUCCESS, allerdings 10 Sekunden später ein connection timeout. Ab dann war der Sauger disconnected und er hat keinen weiteren reconnect versucht.
Es wundert mich, dass die Verbindung bei mir so instabil zu laufen scheint..
So, erstmal vielen Dank fuer das Modul! Mein Vacuum ist grade angekommen und ich konnte ihn erfolgreich mit fhem verbinden.
An der Stelle beschreibe ich mal kurz wie man noch an den token kommt, ich hab naemlich keinen Windows Rechner zur Hand. Android auf dem Telefon und Linux auf dem Laptop
1) Xiaomi MiHome App installieren, Account erstellen (ohne konnte ich jedenfalls kein Device anlegen). Den Vacuum als Device hinzufuegen so das er in der App als verfuegbar angezeigt wird.
2) Auf dem PC Android Backup Extractor (https://sourceforge.net/projects/adbextractor/?source=typ_redirect) runterladen und entpacken. In das verzeichniss wechseln.(commandline)
3) Auf dem Android Debugging aktivieren, Telefon per USB mit dem Rechner verbinden, USB debugging erlauben.
4) Backup der MiHome App ziehen mit adb backup -f backup.ab -apk com.xiaomi.smarthome
5) Backup entpacken: java -jar abe.jar unpack backup.ab backup.tar
6) Tar file entpacken tar xf backup.tar
7) File miio2.db findet ihr dann im Ordner ./app/db/miio2.db
8) File in den sqlite Editor eurer Wahl laden (Ich hatte eh schon dbeaver installiert).
9) Mit folgendem SQL Befehl kriegt ihr dann den Token: select token from devicerecord
Der Rest ist dann ja hier sehr gut beschrieben.
Wie gesagt, nochmal vielen Dank fuer das Modul!
Hallo,
wenn auch ohne kurze Vorstellung: Ich hab da ein Problem.
Die Verbindung mit dem Ventilator scheint nicht zu klappen, FHEM beschwert sich zwar nicht, aber Daten kommen keine, auch nicht mit Token. Der Ventilator ist ganz frisch, neuste Firmware war bereits drauf.
Hab grad keine Ausgabe vom Log zur Hand, steht allerdings auch mit verbose 5 nicht viel drin. Kann ich gern später nachliefern.
Funktioniert das grad mit der aktuellen Firmware einfach nicht?
Viele Grüße
Manu
Ich habe meinen SmartMi Fan gestern bekommen und in Betrieb genommen, mit Firmware 1.2.9_50.
Die Einbindung hat problemlos funktioniert, über die Xiaomi APP mit dem WLAN verbunden, dann eine feste IP zugewiesen in der Fritzbox. Der Token wird automatisch generiert und in den Internals angezeigt, dann habe ich den Token in die DEF von FHEM übernommen.
Hast Du beim subType "SmartFan" eingestellt?
Seitdem ich dem Vacuum gestern das Internet abgedreht habe, steht er zwischendurch immer wieder auf disconnected. Bei einem manuellen reconnect ist mir im Logfile grade diese Meldung aufgefallen:
2017.08.24 09:01:00 3: XIAOMI_vacuum: Internet access is blocked, no device info available
Seit gestern habe ich knapp 15000 Versuche 350 verschiedene Adressen im Internet zu erreichen, das Ding ist also Recht gespraechig. Ich hab noch nicht rausgefunden zu welchem Zeitpunkt er dann wieder auf disconnected steht, ich versuche das mal zu beobachten.
Hatte die letzten 2 Tage wegen Router-/DSL-Modem-Problemen kein Internet aber lokales Netz ging prima...
In der Zeit waren meine Sauger auch alle disconnected und nicht zu einem Reconnect zu bewegen.
Habe ich auch früher beobachtet, wo ich für die den kompletten Internetzugang gesperrt hatte...
Mit "nur" http/https gesperrt geht es...
Bin ja gespannt was deine Tests so ergeben...
Gruß, Joachim
Wenn Du nur http(s) sperrst, dann bringt das (soweit ich das bisher beobachten konnte) auch nichts. Das Ding baut UDP Verbindungen auf allen moeglichen Ports auf, wenn ich den Zugang nicht sperre.
Das wird es auch schwierig machen das Ding zu umgehen denke ich grade. Mit einem normalen http request haette man, jenachdem wie die Anfragen aussehen, diese entsprechenden auf einen http Server umzuleiten und einfach leere oder fake antworten zu liefern, das wird mit UDP schon schwieriger. Ich weiss zumindest grade nicht wie.
Ich muss mir bei Gelegenheit mal die Pakete per Wireshark ansehen, was da ueberhaupt so passiert und ob man da was machen kann.
Was genau gesperrt ist sollte für die Verbindung an sich eigentlich nicht interessant sein. Habe ich allerdings nicht wirklich getestet da meiner Internet hat.
Nur die Device Infos funktionieren dann generell nicht, deshalb auch die Meldung im Log.
Kannst Du sagen welche Infos das genau sind die von der Internet Verbindung abhaengig sind?
Was ich jetzt noch nicht probiert ist zu testen ob ich einen Start/Stop/Pause/charging Befehl senden kann wenn das Internet gesperrt ist.
Ich weiss nicht wie es den anderen hier geht, aber ich glaube ich waere eher bereit auf die zusaetzlichen Informationen zu verzichten anstatt dem Robot hier konstant Zugriff aufs Internet zu geben. Ich finde das schon etwas creepy muss ich sagen (Auch der Grund warum mir kein Alexa oder Google Home ins Haus kaeme, das hat nix mit China zu tun). Eine Option das abzuschalten ohne das es Fehlermeldungen gibt waere in dem Modul zumindest von meiner Seite wuenschenswert, aber ich sehe auch das es zu diesem Zeitpunkt sicher nicht trivial ist :)
Ohne Internet funktioniert alles bis auf das was unter Device Info geladen wird, also beispielsweise die Seriennummer.
Das ist auch keine Fehlermeldung sondern nur eine Information. Verbose 2 und sie ist weg.
Zitat von: Markus M. am 25 August 2017, 12:15:50
Ohne Internet funktioniert alles bis auf das was unter Device Info geladen wird, also beispielsweise die Seriennummer.
Das ist auch keine Fehlermeldung sondern nur eine Information. Verbose 2 und sie ist weg.
Mit ohne Internet meinst du generell keinen Zugnag nach "außerhalb meines privaten Netzes"!?
Wie gesagt, als ich mal (früher) testweise "alles nach außen gesperrt" hatte (für den Sauger) war er disconnected und auch nicht zu einem connect zu bewegen...
...als ich nun mit (fast) neuester Version (also vorletzter oder so, 31.07.) kein Internet hatte (Problem mit dem Provider/Umstellung) aber lokal alles prima...
...hatte ich den selben Effekt: disconnected und nicht zu einem (re)connect zu bewegen.
Seit der Blockade von "nur" http/https (nach außen) funktioniert er soweit, habe nur keine maps mehr in der App (brauche ich eh nicht), also "irgendwas" wird ja schon mal geblockt...
...muss ja nicht "jeder" alles wissen... ;)
Gruß, Joachim
Im Zweifelsfall ausprobieren.
Ich hab nur die eingebaute Internetsperre der FritzBox zum Testen bzw. im Urlaub kein FHEM dabei [emoji6]
Zitat von: Markus M. am 25 August 2017, 15:14:55
im Urlaub kein FHEM dabei [emoji6]
Du nimmst den Staubsauger mit in den Urlaub? ;D
Zitat von: MadMax-FHEM am 25 August 2017, 13:01:56
habe nur keine maps mehr in der App (brauche ich eh nicht),
Wobei es mal ganz interessant ist zu sehen was er tut. Anbei mal zwei Bilder an zwei aufeinander folgende Tagen. Auf dem einen habe ich das Gefühl er hat was geraucht. :o
Hatte das schon mal jemand?
Wann passiert so was, wenn Internet weg? Oder Einfluss FHEM? Ich hatte am Vortag lediglich mit einem notify und einem DOIF mit "Handtrigger" gespielt um ihn an eine bestimmte Stelle fahren zu lassen.
Gruß Otto
Du solltest vielleicht mal die Sensoren reinige. So fährt er bei mir nur wenn Spinnweben am seitlichen Sensor hängen.
War das erste zufällig bei direktem Sonnenlicht?
Hast du einen ovalen Teppich im Wohnzimmer, den er auf Bild 1 umkreist aber auf Bild 2 überfahren hat?
Hallo Markus,
nein die "Bilder" die er erzeugt hat haben nichts mit meinem Boden zu tun. Ich habe diagonale Dielen und Naturstein liegen.
Auch direktes Sonnenlicht kommt um diese Zeit dort nicht hin.
Das mit einer Spinnenwebe am Sensor klingt mir ziemlich plausibel.
Gruß Otto
Dann solltest du wohl mal die Sensoren reinigen. Wenn du keine Magnetfelder hast könnte es daran liegen.
Der leicht verzogene Grundriss kommt wahrscheinlich einfach davon dass die Räder an irgendeiner Schwelle ein wenig gerutscht sind, das passiert bei mir auch ab und zu.
Das war jetzt genau einmal! Er fährt jeden Tag einmal ohne das dazwischen sich irgendwas an den Bedingungen ändert. Die Sensoren werden regelmäßig gereinigt. Verhindert aber nicht das er sich ein Netz einfängt. Das schaffen die kleinen Krabbler ja ziemlich schnell :D
Den Grundriss hat er mal ganz rechtwinklig, manchmal verzogen. Das kann sein, dass mal die Räder rutschen, es gibt zwar keine Schwellen aber manchmal kämpft er mit dem Badvorleger - wenn ich vergessen habe den weg zu legen.
Hallo Markus,
ich hatte heute einmalig eine Warnung:
2017.09.01 08:00:53 1: PERL WARNING: Use of uninitialized value $msgtype in concatenation (.) or string at ./FHEM/72_XiaomiDevice.pm line 1473.
2017.09.01 08:00:53 2: MyRobot: message type for id 566 not found!
$VAR1 = {
'id' => 566,
'result' => [
{
'dnd_enabled' => 0,
'msg_seq' => 65,
'state' => 8,
'in_cleaning' => 0,
'clean_time' => 3486,
'error_code' => 0,
'fan_power' => 75,
'map_present' => 1,
'msg_ver' => 5,
'clean_area' => 66120000,
'battery' => 100
}
]
};
Zu dem Zeitpunkt wo er 2017-09-01_08:00:53 MyRobot dnd: off setzt.
Vielleicht kannst Du was damit anfangen?
Gruß Otto
Kannst du das reproduzieren?
Ich wüsste nicht wie. Ich glaube ich habe zu dem Zeitpunkt nix gemacht. Kann ich nur beobachten...
Zitat von: Otto123 am 01 September 2017, 17:51:41
Ich wüsste nicht wie. Ich glaube ich habe zu dem Zeitpunkt nix gemacht. Kann ich nur beobachten...
Dann tu das mit der neuen Version und Verbose 3 ;)
Wenn du seitdem noch nicht neu gestartet hast, mach doch vorher mal noch ein list und poste die $hash->{helper}{packet} Liste
Neu gestartet habe ich gerade bevor ich deinen Post gelesen habe. :-[
Ich habe die neue Version eingespielt. Beim reload gab es eine Meldung syntax error at ./FHEM/72_XiaomiDevice.pm line 1477, near ")
return"
Im Log sieht aber alles gut aus.
Gruß Otto
Zitat von: Otto123 am 02 September 2017, 10:01:56Ich habe die neue Version eingespielt. Beim reload gab es eine Meldung syntax error at ./FHEM/72_XiaomiDevice.pm line 1477, near ")
return"
Ups - bitte nochmal runterladen!
reload ohne Fehler :)
Hallo Vacuum Fans ;-)
ich bin von dem Saugroboter echt begeistert.
Probleme bereitem ihm aber:
- schwarze Teppiche (ist ja bekannt)
- Kabel unter dem TV Schrank (meine Schuld)
- Schnürsenkel von Schuhen (auch meine Schuld). Die Schuhe nimmt er dann ein paar Meter mit und stellt dann seinen Dienst ein ;-)
Sonst alles TOP!
Jetzt habe ich mich an die Anbindung nach FHEM begeben. Token auslesen war kein Problem dank der Anleitung.
Im Log erhalte ich aber immer folge Meldung (der Roboter reagiert natürlich nicht auf FHEM):
2017.09.06 09:47:40 5: vacuum > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2017.09.06 09:47:40 1: vacuum: internal error, values missing
2017.09.06 09:47:41 4: vacuum: write {"id":6,"method":"app_stop","params":[""]} (42)
2017.09.06 09:47:41 5: vacuum: initSend
2017.09.06 09:47:41 5: vacuum Send SUCCESS
2017.09.06 09:47:41 5: vacuum > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2017.09.06 09:47:41 1: vacuum: internal error, values missing
2017.09.06 09:47:41 4: vacuum: write {"id":7,"method":"app_charge","params":[""]} (44)
2017.09.06 09:47:41 5: vacuum: initSend
2017.09.06 09:47:41 5: vacuum Send SUCCESS
2017.09.06 09:47:41 5: vacuum > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2017.09.06 09:47:41 1: vacuum: internal error, values missing
2017.09.06 09:47:42 4: vacuum: write {"id":8,"method":"app_stop","params":[""]} (42)
2017.09.06 09:47:42 5: vacuum: initSend
2017.09.06 09:47:42 5: vacuum Send SUCCESS
2017.09.06 09:47:42 5: vacuum > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2017.09.06 09:47:42 1: vacuum: internal error, values missing
Meine Definition:
Internals:
DEF 192.168.1.190 MEIN_TOKEN
FD 13
NAME vacuum
NR 615
STATE state
TYPE XiaomiDevice
helper:
ConnectionState initialized
crypt AES
delay 7200
ip 192.168.1.190
packetid 9
port 54321
token MEIN_TOKEN
packet:
1 app_start
10 app_charge
11 app_start
12 app_start
13 app_stop
2 app_stop
3 app_stop
4 app_charge
5 app_start
6 app_stop
7 app_charge
8 app_stop
9 app_stop
Attributes:
alias Saugroboter
group XIAOMI Vacuum Cleaner
room Unsorted
stateFormat state
subType VacuumCleaner
verbose 5
webCmd reconnect:start:stop:charge
Firmware 3.3.9_003077
Robot's time zone: Europe/Berlin
Locale: zweiter Eintrag in der Liste nach the U.S. --> Chinesische Schriftzeichen
Language: English
Wo liegt der Fehler? Hat von euch noch einer eine Idee?
Zitat von: DO7RH am 06 September 2017, 09:56:02
Wo liegt der Fehler? Hat von euch noch einer eine Idee?
Vermutlich falscher Token.
Poste den dch mal mit.
Den Token habe ich mit dem MiToolkit 1.4 ausgelesen. Dieser hat 32 Zeichen (HEX). Habe auch schon Groß- und Kleinschreibung der HEX Werte. leider alles ohne Erfolg.
Hallo an alle (gleichzeitig Vorstellung - mein erster Beitrag hier...),
eine Idee zum Thema Disconnects beim Saugroboter: Mir ist aufgefallen, dass ich sehr häufig in der Verbindung zwischen Robo und FHEM UDP Timeouts bekomme, wenn ich dem Robo per "DROP"-Befehl (iptables hier) das Internet abgestellt habe. Wenn ich dagegen "REJECT" nehme, so dass der Robo auf jeden Verbindungsversuch nach China prompt eine "ICMP port unreachable" Rückmeldung bekommt, scheint die Verbindung zu FHEM wesentlich stabiler zu sein. Mein Eindruck ist, dass er bei der Kontaktaufnahme durch FHEM manchmal versucht, an die Cloud zu antworten, und (wenn - wegen DROP - nichts zurückkommt) auf den Timeout wartet, bevor er per UDP an FHEM antwortet, was dann aber für die UDP-Verbindung viel zu spät ist.
Kann das jemand bestätigen?
Interessanter Ansatz.
Kann durchaus sein, kann ich aber nicht testen da ich meinen am Internet habe.
Hallo zusammen,
seit heute habe ich auch dein Saugroboter. Gemäß der Anleitung hier:
http://technikzeugs.de/xiaomi-mirobot-staubsaugroboter-mit-iobroker-und-echo-bzw-alexa-fernsteuern/
habe ich das unverschlüsselte Backup eines iPads ausgelesen, aber der ZTOKEN ist nicht 32-stellig, sondern sieht so aus:
6e1c5c0fe1c23c544dd30bd9d0b93fcb0a74ac71d0c5edcc922080ea51b22df90143db63ee66b0cdff9f69917680151e
Muss ich den noch irgendwie konvertieren?
Egal ob ich diesen String oder nur die ersten 32 Stellen davon benutze - das Reading state bleibt immer auf "disconnected".
Hat jemand vielleicht eine Idee?
Danke und Gruß
Herwig
Zitat von: hdiessner am 07 September 2017, 22:11:47
6e1c5c0fe1c23c544dd30bd9d0b93fcb0a74ac71d0c5edcc922080ea51b22df90143db63ee66b0cdff9f69917680151e
Hat jemand vielleicht eine Idee?
Xiaomi hat den Token verschlüsselt.
Die ersten 64 Stellen sind wahrscheinlich der Token, die letzten 32 hängen am Account.
Wer noch nen Vacuum sucht, der ist gerade für 235,79€ zu haben: https://www.smarthomeassistent.de/18-07-2017-gearbest-xiaomi-mi-staubsauger-roboter-fuer-263e/
Wer seine Geräte jetzt noch nicht eingerichtet hat, kann sie aber nicht mehr ohne weiteres mit FHEM verbinden!
Zitat von: Markus M. am 08 September 2017, 18:33:10
Wer seine Geräte jetzt noch nicht eingerichtet hat, kann sie aber nicht mehr ohne weiteres mit FHEM verbinden!
Wie meinst Du das?
Zitat von: netsrac4th am 08 September 2017, 18:48:05
Wie meinst Du das?
Eins weiter oben nicht gelesen?
Der Token ist mittlerweile in der DB verschlüsselt.
Aktuell funktioniert es also bereits nur noch, wenn man eine alte MiHome App hernimmt.
D.h. alle mit iOS die automtische Updates aktiviert haben sind bereits raus.
Post 1 und 3 aktualisiert mit alten MiHome Versionen.
Sorry, hab ich nicht gelesen.
Das ist dann aus fuer den Robi, wenn ich irgendwas mache wie einen Reset oder FHEM neu aufsetze/umziehen will oder muss. :-(
Zitat von: netsrac4th am 08 September 2017, 20:11:21
Sorry, hab ich nicht gelesen.
Das ist dann aus fuer den Robi, wenn ich irgendwas mache wie einen Reset oder FHEM neu aufsetze/umziehen will oder muss. :-(
Nur bei Reset des Roboters und wechsel des WLAN...
...ansonsten den aktuellen Token merken und nach neu Aufsetzen von fhem etc. wieder nutzen...
Gruß, Joachim
Zitat von: MadMax-FHEM am 08 September 2017, 20:14:03
Nur bei Reset des Roboters und wechsel des WLAN...
...ansonsten den aktuellen Token merken und nach neu Aufsetzen von fhem etc. wieder nutzen...
Gruß, Joachim
ich muss bald meinen Router wechseln wegen neuem Anbiter
muss ich mich dann von der steuerung verabschieden?
gruß Aurel
Gleiche SSID und gleiches Passwort und es sollte gehen...
...hat bei mir funktioniert...
Gruß, Joachim
Jetzt wo mein Robi auch mit Alexa laeuft, hoff ich einfach mal, das ich keinen reset benötige....
Kann mir mal jemand die letzte Android Version nennen mit der der Token nicht verschlüsselt ist bzw. die erste Version bei der er das ist?
Nur so am Rande:
bei meinem letzten Saugroboter der Mitte August geliefert wurde ging das Auslesen noch mit der Flole-App...
Eine andere Methode hab ich noch nie verwendet...
Gruß, Joachim
Moin allerseits,
bei mir läuft Saugi und Module hervorragend, aber mit der manuellen Steuerung komme ich nicht klar. Wie Otto123 schon zuvor gepostet hat, ist die Sache nicht berechenbar, z.B.
set Saugroboter.Xiaomi move 50 0
macht mal 90°, mal 180° Drehung
set Saugroboter.Xiaomi move 0 100 3000
geht mal 90cm, mal 70cm weit
Ich habe ein paar Tricks ausprobiert, z.Bsp. zwischen den Befehlen remotecontrol stop
und remotecontrol start
ausgeführt. Ein klares Muster, dass sich der Sauger danach immer gleich verhält, kann ich nicht feststellen.
Die Befehle habe ich alle manuell ausgeführt, also immer gewartet, bis der Sauger den letzten Befehl abgearbeitet hat.
Es wurde erwähnt, dass es vielleicht mit der Firmware des Saugers zu tun hat, bei mir läuft 3.3.6_003061, das FHEM Modul 72_XiaomiDevice.pm ist vom 2017-09-01.
Update: Sauger Firmware jetzt 3.3.9_003074, die gleichen Probleme.
Darum Frage: hat jemand die manuelle Steuerung zuverlässig zum Laufen gebracht? Wie? Welche Firmware verwendet Ihr?
Grüsse
Der Dröhn
Zitat von: droehn am 09 September 2017, 11:33:10
Darum Frage: hat jemand die manuelle Steuerung zuverlässig zum Laufen gebracht? Wie? Welche Firmware verwendet Ihr?
Naja ... zuverlässig eher nicht.
Auf kurze Distanzen funktioniert es.
( (
[d_Gollum_Inspektion] eq "on"
or [d_Dash_01] eq "on"
)
and (
[?SaugRoboter] eq "Docked"
or [?SaugRoboter] eq "Sleeping"
or [?SaugRoboter] eq "connected"
or [?SaugRoboter] eq "disconnected"
or [?SaugRoboter] eq "Charging"
)
)
(set MQ_SoPo1_172_SaugRoboter ON)
(setreading SaugRoboter Doif D_SaugRoboter_Inspektion_az ON)
{fhem
(" set SaugRoboter locate;
sleep 10;
set SaugRoboter fan_power 1;
set SaugRoboter remotecontrol start;
sleep 7;
set SaugRoboter move 0 60 5000;
sleep 5;
set SaugRoboter move -10 0 0;
sleep 6;
set SaugRoboter move 0 50 5000;
sleep 5;
set SaugRoboter move 0 50 4500;
sleep 5;
set SaugRoboter remotecontrol stop;
set SaugRoboter fan_power 60;
setstate d_Gollum_.z off");;
}
DOELSE
(set MQ_SoPo1_172_SaugRoboter ON)
(setreading SaugRoboter Doif D_SaugRoboter_Inspektion_az OFF)
(set SaugRoboter locate)
Im Beispiel locke ich ihn nur unter seinem Regal vor um ihn sauber zu machen. (gerade aus, 90° links und 2x gerade aus)
Bei längeren Strecken kommt es eigentlich immer vor das er "irgend wie" schräg kommt und damit irgend wo gegen knallt. O.g. ist das Einzige was ich noch nutze.
Manchmal "vergisst" er auch einen Befehl.
Firmware: 3.3.9_003077
Gruß
Erdnar
Längere sleeps könnten helfen.
Kurzes Update zu den Tokens:
Aktuell wird der Token nur in der iOS Datenbank verschlüsselt, eine Entschlüsselung ist nicht möglich.
Bei Android folgt das sicher noch, bisher ist das Auslesen aber noch möglich.
Aktuell funktioniert also noch:
- bei alter Firmware Flole, Scripte etc. vor der Einrichtung
- bei Android wie bisher aus der Datenbank
- bei iOS mit Downdrade der App via Cydia Impactor (siehe 3. Post)
Im Zusammenspiel von Firmware und App Version haben wir aktuell also leider keine zukunftssichere Möglichkeit um an die Token zu kommen.
Das Auslesen wird erst mal nur solange funktionieren, wie das über jeweils alte Versionen möglich ist.
Da mein Sauger aktuell nach ca 50m² aufhört zu reinigen muss ich mal resetten...
Also finger kreuzen und Android App installieren.
Hi,
ich habe da zufällig etwas wegen der Entschlüsselung des Tokens gefunden:
https://github.com/rytilahti/python-mirobo/issues/75
Gruß Otto
Zitat von: Otto123 am 12 September 2017, 13:57:22ich habe da zufällig etwas wegen der Entschlüsselung des Tokens gefunden
Jackpot!
Empty key wusste ich mehr oder weniger, auf den Modus wäre ich erst mal nicht gekommen.
Baue ich ein wenn ich Zeit habe.
Das sind mal wirklich gute Nachrichten :-) Danke schon im vorraus, Markus.
Zitat von: erdnar am 11 September 2017, 13:05:36
Auf kurze Distanzen funktioniert es.
Vielen Dank für Deine Antwort. Bei mir müsste er gute 10m mit 3 Wenden zurücklegen. Wenn er unterwegs nicht die volle Strecke bis zum nächsten Wegpunkt zurücklegt oder die Drehung nicht mit +/- 5° Toleranz durchführt, dann fährt er weiss Gott wohin. Schade, wollte ihn eigentlich für SpotCleaning und Leerung in die Küche fahren lassen. Naja, sicherlich ein Luxusproblem ;)
Schönen Gruss
Der Dröhn
Zitat von: droehn am 13 September 2017, 17:37:06
...die Drehung nicht mit +/- 5° Toleranz durchführt ...
Mein Problem ist eigentlich nicht die Drehung. Die 90° sind immer korrekt. Das Problem sind bei mir die langen Strecken und der Schlupf. Dann kommt er immer irgend wie schief.
Erdnar
Welche Versionen habt ihr den so laufen?
Wenn man die Cloud-Kommunikation direkt zu Beginn blockiert, dann macht er gar nicht erst die App-Kommunikation auf und aktzeptiert auf 54321 (udp) keine Befehle.
Abhängig von der Firmwareversion scheint es unterschiedlich zu sein, wie die Staubsauger sich bei verlorenen Cloud-Kommunikation verhalten.
Zonen kommen irgendwann noch, es zirkulieren bereits Screenshots.
Zitat von: hdiessner am 07 September 2017, 22:11:47
ZTOKEN ist nicht 32-stellig, sondern sieht so aus:
6e1c5c0fe1c23c544dd30bd9d0b93fcb0a74ac71d0c5edcc922080ea51b22df90143db63ee66b0cdff9f69917680151e
Muss ich den noch irgendwie konvertieren?
Neue Version im ersten Post runterladen und damit den String mit 96 Stellen einfügen.
Der Token wird dann automatisch entschlüsselt.
ich habe plötzlich folgendes Phänomen mit meiner Xiaomi Eyecare 2 Lamp:
ich kann sie über FHEM und über die App wie gewohnt bedienen. Allerdings reagiert sie in keinster weise mehr auf die direkte Touch-Bedienung an der Lamp. Selbst Strom aus und an hilft nicht.
Hat das schon mal jemand gehabt und irgendwie gelöst? Die Lampe resetten mag ich nicht. Hab sogar, dass ich dann gar nicht mehr dran komme.
Zitat von: StephanFHEM am 16 September 2017, 19:42:21ich kann sie über FHEM und über die App wie gewohnt bedienen. Allerdings reagiert sie in keinster weise mehr auf die direkte Touch-Bedienung an der Lamp. Selbst Strom aus und an hilft nicht.
Kindersicherung aktiv?
Ist die zufällig in den Settings der App vorhanden?
wäre auch meine Vermutung gewesen aber hab in der App nichts dazu gefunden. Auch im Netz hab ich so nichts gefunden ob es eine gibt und wie man die an oder ausstellen kann
Hallo,
ich hab mir gerade die letzte Version heruntergeladen und wenn ich jetzt ein Define für den Saugroboter mit dem 96stelligen Token mache, stürzt bei mir FHEM ab.
Wenn 95 Stellen von dem Token nur eingebe funktioniert alles, nur nicht der Roboter natürlich ;)
Sobald ich in irgendeiner Weise die letzte Stelle hinzufüge, funktioniert wieder nichts.
Bin für jede Hilfe dankbar.
Gruß Figo
Zitat von: figo-z80 am 17 September 2017, 09:13:03
Hallo,
ich hab mir gerade die letzte Version heruntergeladen und wenn ich jetzt ein Define für den Saugroboter mit dem 96stelligen Token mache, stürzt bei mir FHEM ab.
Was steht danach im Log?
Vermutlich fehlt dir das passende Perl Modul Crypt::ECB - schau mal in den ersten Post, da habe ich es in der Liste hinzugefügt.
Funktioniert es wenn du das installierst?
Abstürzen sollte natürlich trotzdem nichts, das sehe ich mir nochmal an.
EDIT: ohne das Modul wird das Device wie vorgesehen ohne Absturz deaktiviert.
Wäre es möglich, das Modul als offizielles FHEM Modul einzuchecken? So wäre ein update komfortabler und es würde bestimmt von mehr Personen genutzt werden.
Zitat von: Mathea am 17 September 2017, 11:06:09Wäre es möglich, das Modul als offizielles FHEM Modul einzuchecken?
Ja, aber zumindest der Crash mit dem verschlüsselten Token muss vorher noch behoben werden.
Hallo,
Modul hab ich mit "sudo cpan install Crypt::ECB" installiert. Ich hab eigentlich alles Module installiert, die beschrieben waren.
Gruß Figo
Zitat von: figo-z80 am 17 September 2017, 13:26:07
Hallo,
Modul hab ich mit "sudo cpan install Crypt::ECB" installiert.
Funktioniert es damit?
Was steht im Log? Wenn FHEM immer noch abstürzt, bitte stacktrace aktivieren und die genaue Fehlermeldung posten.
Hier das Logfile mit stacktrace:
2017.09.17 15:02:47 3: EG.Saugroboter: initialized, using AES
Asked to truncate 130 bytes, which is greater than Crypt::Cipher::AES's blocksize (16 bytes).
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "/opt/yowsup-master/yowsup/demos/cli/cli.py", line 153, in startInputThread
cmd = self._queuedCmds.pop(0) if len(self._queuedCmds) else input(self.getPrompt()).strip()
EOFError: EOF when reading a line
Zitat von: figo-z80 am 17 September 2017, 15:04:49
Hier das Logfile mit stacktrace:
2017.09.17 15:02:47 3: EG.Saugroboter: initialized, using AES
Asked to truncate 130 bytes, which is greater than Crypt::Cipher::AES's blocksize (16 bytes).
Nicht gut...
Probier die neue Version im ersten Post.
Wenn das nicht klappt, schick mir doch mal deinen Token per PM
Hi,
ich bekomme sporadisch bei Senden des Befehls "start" an meinen "Cleaner" die Fehlermeldung im Log
ZitatCleaner: internal error, values missing
Der Cleaner reagiert dann einfach nicht.
Wenn ich einen list direkt vor diesem Fehler schicke, bekomme ich folgende Daten:
Zitat2017.09.18 09:30:00 3: list Cleaner : Internals:
CHANGED
DEF 192.168.178.43 xxxxxxxxxxxx
FD 35
NAME Cleaner
NR 231
STATE Docked
TYPE XiaomiDevice
device_type
mac 28:6C:07:D9:00:03
model rockrobo.vacuum.v1
token xxxxxxxxxxxxxxxxxxxxxxxxxx
READINGS:
2017-09-17 10:24:34 battery ok
2017-09-17 10:24:34 batteryLevel 100
2017-09-17 09:49:28 consumables_filter 81
2017-09-17 09:49:28 consumables_main_brush 90
2017-09-17 09:49:28 consumables_sensors 9
2017-09-17 09:49:28 consumables_side_brush 86
2017-07-15 11:41:15 current_sound english
2017-09-17 05:49:25 device_firmware 3.3.9_003077
2017-07-15 09:22:15 device_lifetime 6.03
2017-09-17 05:49:25 device_uptime 2.48
2017-09-17 10:24:34 dnd off
2017-09-17 09:49:28 dnd_enabled off
2017-09-17 09:49:28 dnd_end 08:00
2017-09-17 09:49:28 dnd_start 18:20
2017-09-17 10:24:34 error none
2017-09-17 10:24:34 error_code None
2017-09-17 10:24:34 fan_power 80
2017-09-17 10:24:34 history_0 2017-09-15 10:30:02: 64.95m² in 1.18h, finished cleaning
2017-09-17 10:24:34 history_1 2017-09-11 09:48:13: 64.31m² in 1.06h, finished cleaning
2017-09-17 10:24:34 history_2 2017-09-08 10:29:58: 62.24m² in 1.02h, finished cleaning
2017-09-17 10:24:34 history_3 2017-09-04 09:30:00: 62.72m² in 1.08h, finished cleaning
2017-09-17 10:24:34 history_4 2017-09-01 10:30:00: 63.20m² in 1.09h, finished cleaning
2017-09-17 10:24:34 in_cleaning no
2017-09-17 10:24:34 last_clean_area 64.95
2017-09-17 10:24:34 last_clean_time 1.18
2017-09-17 10:24:34 last_timestamp 1505464202
2017-09-17 10:24:34 map_present no
2017-09-17 05:49:25 serial_number 1387100332427
2017-09-17 10:24:34 state Docked
2017-09-17 05:49:25 timezone Europe/Berlin
2017-09-17 10:24:34 total_clean_area 1626.29
2017-09-17 10:24:34 total_clean_time 27.04
2017-09-17 10:24:34 total_cleans 38
2017-09-17 05:49:25 wifi_auth_fail_count 0
2017-09-17 05:49:25 wifi_conn_fail_count 0
2017-09-17 05:49:25 wifi_conn_success_count 1
2017-09-17 05:49:25 wifi_dhcp_fail_count 0
2017-09-17 05:49:25 wifi_rssi -58
2017-09-17 05:49:25 wifi_state online
helper:
ConnectionState initialized
cleanrecord 5
crypt AES
delay 0
historydays 5
ip 192.168.178.43
last_read 1505636674
packetid 3325
port 54321
rc_seq 0
sequence 0
timers 0
token xxxxxxxxxxxxxxxxxxxxxxxxxx
day:
history:
packet:
1148 get_status
1216 get_status
1219 get_status
1242 get_consumable
1243 get_clean_summary
1244 get_dnd_timer
1245 get_timer
1462 get_status
1532 get_status
1661 get_status
1666 get_status
1684 get_status
1685 get_status
1707 get_status
1712 get_status
1733 get_status
1826 get_status
1842 get_status
1843 get_status
1852 device_info
1872 get_status
1873 get_status
1874 get_status
1889 get_status
1890 get_status
1891 get_status
1906 get_status
1955 get_status
220 get_status
2279 get_status
2377 get_status
2412 get_status
248 get_status
261 get_clean_summary
262 get_dnd_timer
263 get_timer
2668 get_status
2786 get_status
2829 get_status
2879 get_status
2925 get_status
2995 get_status
3051 get_status
307 get_status
3076 get_status
3098 get_status
3162 get_status
3206 get_status
3253 get_status
3272 get_status
3317 get_status
350 get_status
395 get_status
517 get_status
518 get_status
622 get_status
727 get_status
777 get_status
799 get_status
824 get_status
915 get_status
966 get_status
Attributes:
event-on-change-reading state
room Vacuum
subType VacuumCleaner
verbose 1
Da ist meiner Meinung nach nichts Auffälliges, wie ein disconnect..
Hat jemand eine Idee?
vg stoxx
Deine Internals haben Alzheimer. Hast du Internet blockiert?
Packet sollte im Idealfall leer sein, wenn nicht bedeutet das, dass der Sauger nicht auf eine Anfrage geantwortet hat. Kommt bei dir wohl recht häufig vor. (Oder läuft schon sehr lange ohne Neustart)
ZitatDeine Internals haben Alzheimer. Hast du Internet blockiert?
Nein, keine Beschränkungen
ZitatPacket sollte im Idealfall leer sein, wenn nicht bedeutet das, dass der Sauger nicht auf eine Anfrage geantwortet hat. Kommt bei dir wohl recht häufig vor. (Oder läuft schon sehr lange ohne Neustart)
Kann ich auch nicht bestätigen. Habe erst vor zwei Tagen den Raspberry neu gestartet. Oder muss der Cleaner neu gestartet werden?
Ich verstehe die Fehlermeldung einfach nicht und habe nichts dazu gefunden. Welche Werte fehlen und warum? Woher kommt diese Meldung, vom Modul? Wenn ja, wann macht es das?
vg stoxx
Zitat von: stoxx am 18 September 2017, 17:53:08Ich verstehe die Fehlermeldung einfach nicht und habe nichts dazu gefunden. Welche Werte fehlen und warum? Woher kommt diese Meldung, vom Modul? Wenn ja, wann macht es das?
Werte diebei einem Reconnect neu eingelesen werden.
Jeder Listeneintrag unter packet bedeutet dass eine Abfrage abgeschickt wurde, die der Staubsauger nicht beantwortet hat.
Nimm mal die neue Version aus dem ersten Post und setz das Logging hoch wenn du immer noch so viele Ausfälle hast.
Mittlerweile wurde der Xiaomi Vacuum 2 vorgestellt. Preis liegt noch bei $500.
Neu ist eine Wischfunktion und Bereichsauswahl.
Sobald ihn jemand hat, bitte Bescheid geben ;)
Zitat von: Markus M. am 19 September 2017, 12:01:18
Mittlerweile wurde der Xiaomi Vacuum 2 vorgestellt. Preis liegt noch bei $500.
Neu ist eine Wischfunktion und Bereichsauswahl.
Sobald ihn jemand hat, bitte Bescheid geben ;)
Hi Markus,
habe mal versucht was zu finden...
...bin wohl zu dumm zu suchen... ;)
Hast du einen Link dazu?
Danke, Joachim
Zitat von: MadMax-FHEM am 19 September 2017, 12:34:11
Hi Markus,
habe mal versucht was zu finden...
...bin wohl zu dumm zu suchen... ;)
Hast du einen Link dazu?
Danke, Joachim
Hallo Joachim,
hier bitte -->
http://www.roboter-forum.com/showthread.php?23915-2-Generation-Xiaomi-Mi-Der-Preis-steht-FEST!-Und-erste-Bilder
Grüße
Habe gestern auch den Staubsauger Roboter eingerichtet und das Modul aktiviert.
Token habe ich über die alternative App: https://xiaomi.flole.de/ am Handy (Android) direkt ausgelesen. Das wäre also noch eine weitere Art, um an den token zu kommen. Eigentlich sogar ohne die MiHome App je genutzt zu haben. (das habe ich aber auch erst später gelesen).
Zugriff über das Modul etc. funktioniert. Danke für das tolle Modul. Das war eins der Kaufargumente für den Xiaomi Staubsauger Roboter.
Habe schon ein paar Dummys angelegt, die Informationen erhalten zur Anzeige, Tastensteuerung, etc. Nun kommen noch Timer Schaltungen und Status-Meldungen per telegrambot aufs Handy.
Ein paar Tipps habe ich u.a. hier gefunden: https://www.frombeyond.de/2017/xiaomi-mi-robot-saugroboter-fhem/
Nun aber auch noch eine Frage:
Gibt es Probleme, wenn man dem SaugRoboter am Router die Internet-Rechte entzieht? Er also nur im lokalen Netz agieren darf?
Das Modul im FHEM kann auch so mit ihm kommunizieren. Oder hat das Nachteile (mal abgesehen davon, dass man mit der miHome App nichts mehr machen kann ;) )
Zitat von: fred_feuerstein am 19 September 2017, 17:04:06
Habe gestern auch den Staubsauger Roboter eingerichtet und das Modul aktiviert.
Token habe ich über die alternative App: https://xiaomi.flole.de/ am Handy (Android) direkt ausgelesen. Das wäre also noch eine weitere Art, um an den token zu kommen. Eigentlich sogar ohne die MiHome App je genutzt zu haben. (das habe ich aber auch erst später gelesen).
Zugriff über das Modul etc. funktioniert. Danke für das tolle Modul. Das war eins der Kaufargumente für den Xiaomi Staubsauger Roboter.
Habe schon ein paar Dummys angelegt, die Informationen erhalten zur Anzeige, Tastensteuerung, etc. Nun kommen noch Timer Schaltungen und Status-Meldungen per telegrambot aufs Handy.
Ein paar Tipps habe ich u.a. hier gefunden: https://www.frombeyond.de/2017/xiaomi-mi-robot-saugroboter-fhem/
Nun aber auch noch eine Frage:
Gibt es Probleme, wenn man dem SaugRoboter am Router die Internet-Rechte entzieht? Er also nur im lokalen Netz agieren darf?
Das Modul im FHEM kann auch so mit ihm kommunizieren. Oder hat das Nachteile (mal abgesehen davon, dass man mit der miHome App nichts mehr machen kann ;) )
Ich habe ihn auch komplett gesperrt. Nachteil ist halt das es keine Karte mehr in der App gibt..Ansonsten funktioniert alles top.
Grüße
Die Flole App funktioniert mit den neuen Firmware Versionen nicht mehr.
Bei geblocktem Internet kann es je nach Art zu Timeouts kommen, einem Bericht nach reagiert der Sauger teilweise auch gar nicht mehr, weil er den internen Port erst nach der Kommunikation mit der Cloud öffnet.
Ich hatte meinen auch mal komplett den Zugang nach außen gesperrt, da war er schwer beleidigt: oft disconnected...
Aktuell habe ich http/https gesperrt (mal besser wie nix) seither halt keine Karte etc. aber die nutze ich eh nicht...
Wäre schon interessant zu wissen was man alles sperren kann bis er beleidigt ist ;)
Mein letzter Sauger hat auch noch mit der Flole-App funktioniert...
...nach dem dann erfolgten FW-Update habe ich es nat. nicht mehr probiert: kein Risiko!
Gruß, Joachim
also die flole App funktioniert bei mir (trotz neuester Firmware auf dem Sauger). Allerdings noch mit älterer MiHome Software auf dem Handy.
Aber egal. Hier geht es ja um das Modul.
Ich werde mal schauen wie der Sauger sich verhält. Aktuell kann ich kein Problem feststellen wegen gesperrtem WWW für ihn.
Leider sehe ich als "Neueinsteiger" in Sachen "Vacuum Robot" hier nicht mehr durch.
Welche Möglichkeite(n) funktionieren denn aktuell um an den Token zu kommen.
Benutze hauptsächlich iOS, hätte zur Not aber auch ein Android Gerät zu Hand.
Mein Robot ist in der zugehörigen App bereits eingerichtet und hat die aktuelle Firmware.
Vielen Dank im Voraus.
Gruß
Dan
Zitat von: DeeSPe am 20 September 2017, 13:48:39
Leider sehe ich als "Neueinsteiger" in Sachen "Vacuum Robot" hier nicht mehr durch.
Welche Möglichkeite(n) funktionieren denn aktuell um an den Token zu kommen.
Benutze hauptsächlich iOS, hätte zur Not aber auch ein Android Gerät zu Hand.
Mein Robot ist in der zugehörigen App bereits eingerichtet und hat die aktuelle Firmware.
Vielen Dank im Voraus.
Gruß
Dan
Der dritte Beitrag sollte aktuell sein, sprich
iOS: (alle FWs)
- Unverschlüsseltes iTunes Backup auf den Rechner kopieren
- Mit http://www.imactools.com/iphonebackupviewer/ Free öffnen
- RAW, com.xiaomi.home, USERID_mihome.sqlite -> Extrahieren
- Token aus der Datei lesen
Über Android kannst du das mit der Fowel App machen. Dafür muss der Roboter aber komplett zurückgesetzt werden. Sprich Ursprungsfirmware.
Grüße
Verschlüsselten Token (96 Zeichen) aus einem iTunes Backup auslesen und direkt mit der aktuellen Version des Moduls verwenden.
Im ersten Post findest du die Perl Module die du dafür brauchst.
Danke Euch beiden, ich werde das mit dem Backup probieren.
Gruß
Dan
Zitat von: DeeSPe am 20 September 2017, 14:14:47
Danke Euch beiden, ich werde das mit dem Backup probieren.
Gruß
Dan
Kein Problem. Ich habe meinen Sauger jetzt knapp 2 Monate, und würde ihn für nichts mehr hergeben. Außer für 2 neue. Hoffe du hast genauso viel Freude dran, und bleibst von lästigen LDS oder Sonstigen Störungen befreit.
Grüße
Zitat von: Esjay am 20 September 2017, 14:21:26
Kein Problem. Ich habe meinen Sauger jetzt knapp 2 Monate, und würde ihn für nichts mehr hergeben. Außer für 2 neue. Hoffe du hast genauso viel Freude dran, und bleibst von lästigen LDS oder Sonstigen Störungen befreit.
Grüße
Die letzten 1,5 Jahre hat die Arbeit bei mir ein Neato D85 gemacht. Insofern bin ich schon an die Arbeitserleichterung gewöhnt.
Bin bisher sehr begeistert vom Xiaomi, weil er sich m.E. (trotz halben Anschaffungspreises des Neato) sehr intelligent verhält. Auch reinigt er die Bude in 2/3 der Zeit des Neato.
Wenn ich jetzt noch die Integration in FHEM hinbekomme, bin ich erst einmal glücklich...
Gruß
Dan
So, das Backup ist erstellt und die Datei "_mihome.sqlite" ist extrahiert.
Habe die Datenbank nun mit "DB Browser for SQLite" geöffnet, aber einen 96 Zeichen langen Token kann ich nicht finden.
In welcher Tabelle soll der stehen?
Gruß
Dan
EDIT: Hab's gefunden. Hatte die falsche "_mihome.sqlite" exportiert.
Setz mal bitte Verbose 3 wenn du den verschlüsselten Token einträgst und poste was das Log sagt. Und ob es funktioniert :)
Die Entschlüsselung klappt bisher nicht bei allen.
Zitat von: Esjay am 20 September 2017, 14:11:31
iOS: (alle FWs)
- Unverschlüsseltes iTunes Backup auf den Rechner kopieren
- Mit http://www.imactools.com/iphonebackupviewer/ Free öffnen
- RAW, com.xiaomi.home, USERID_mihome.sqlite -> Extrahieren
- Token aus der Datei lesen
Hat so geklappt und nach Installation der noch fehlenden Module ist nun auch mein "Vacuum Robot" in FHEM.
Heute Abend mache ich mich mal an die nötigen notify(s).
Zitat von: Markus M. am 20 September 2017, 15:12:51
Setz mal bitte Verbose 3 wenn du den verschlüsselten Token einträgst und poste was das Log sagt. Und ob es funktioniert :)
Die Entschlüsselung klappt bisher nicht bei allen.
Bin gerade nicht zu Hause und komme nur sehr umständlich an das Log.
Kann das gerne bei Bedarf heute Abend liefern. Zumindest scheint der Robot nun in FHEM zu funktionieren.
Gruß
Dan
P.S. Danke für das Modul!!!
Vielen Dank für das Modul. Einrichtung hat super funktioniert.
Ich hab mal eine Wiki Seite erstellt.
Bei mir hat es Anfang der Woche so recht gut funktioniert.
Werde dafür auch einen Diskussionsthread eröffnen. Vorschläge oder Verbesserungen, einfach Ändern und verbessern den Eintrag :)
https://wiki.fhem.de/wiki/Mi_vacuum
Diskussionsthread:
https://forum.fhem.de/index.php/topic,76940.0.html
Wenn wer eine Step by Step Anleitung für iOS schreiben würde bitte?
@Rince:
Nach Eingeben des Befehls laut Anleitung
sudo chown -R fhem:dialout /opt/fhem
hat sich bei mir die Kommunikation zwischen FHEM und Alexa aufgehängt. Woran kann das liegen? Wenn ich Alexa über den Raspberry starte, funktioniert es. Aber nicht mehr wie früher... Wie könnte man den Befehl quasi rückgängig machen?
Wenn ich sudo dpkg --get-selections | grep hold eingebe, erscheint "fhem hold"
Wo hast du alexa-fhem installiert?
(/opt/fhem/alexa-fhem ?)
Welcher User startet bei dir alexa-fhem?
(pi ?)
EDIT: Rückgängig geht nur, wenn man weiß welche Rechte bzw. "Besitzer/Gruppen" vorher auf den einzelnen Dateien/Ordnern waren...
Gruß, Joachim
@Rince: vielleicht den Aufruf nur spezifisch für die Übertragene Datei machen:
sudo chown fhem:dialout /opt/fhem/FHEM/72_XiaomiDevice.pm
Und auch den Hinweis, dass das nur gilt, wenn fhem dort installiert ist und auch unter fhem läuft (ist bei meinem Wheezy-System nicht so [gewesen])...
Gruß, Joachim
Vielen Dank für die schnelle Antwort. Ja, alexa fhem ist unter /opt/fhem/alexa-fhem installiert. Wie bekomme ich raus, welcher User alexa-fhem startet?
Wie startest du?
init.d-Script?
Dann steht es dort drin...
Gruß, Joachim
In der fhem.cfg heißt es insoweit "system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}"...Meinst Du das?
Ganz kurz,was hat die Aktuelle Diskussion mit dem Modul zu tun?
Fangt ihr jetzt schon an die Alexa Sachen Global zu klären?
@Esjay: sorry!
@schlingi: ja meine ich. Dort steht der User drin der alexa-fhem startet: su -c "pi" cd $ALEXAPATH usw. Was steht da bei dir? Auch "pi", dann: sudo chown -R pi:pi /opt/fhem/alexa-fhem
Ansonsten einen neuen Thread aufmachen und hier den Link posten...
...oder im "offiziellen Problem-Thread" von alexa-fhem noch mal die Problematik schildern:
https://forum.fhem.de/index.php/topic,60452.0.html
EDIT: und zukünftig vorher zumindest nachsehen was denn das jeweilige Kommando/Befehl tut bevor man es einfach anwendet ;)
Gruß, Joachim
Ich habe das Token aus meiner App ermittelt: a2c89638d54ae37f27c94dcc9a51228dc675663dfd6963a3cfc21348e41ffba90143db63ee66b0cdff9f69917680151e
das command:
define vacuum XiaomiDevice 192.168.69.123 a2c89638d54ae37f27c94dcc9a51228dc675663dfd6963a3cfc21348e41ffba90143db63ee66b0cdff9f69917680151e
macht dann aber:
2017.09.22 20:19:50 3: vacuum: initialized, using AES
2017.09.22 20:19:50 3: vacuum: token decryption using Crypt::Cipher::AES
2017.09.22 20:19:50 1: vacuum: token decryption failed
Asked to truncate 194 bytes, which is greater than Crypt::Cipher::AES's blocksize (16 bytes).
im Log
Zitat von: ahlermi am 22 September 2017, 20:23:24macht dann aber:
2017.09.22 20:19:50 3: vacuum: initialized, using AES
2017.09.22 20:19:50 3: vacuum: token decryption using Crypt::Cipher::AES
2017.09.22 20:19:50 1: vacuum: token decryption failed
Asked to truncate 194 bytes, which is greater than Crypt::Cipher::AES's blocksize (16 bytes).
im Log
Welche Perl Version, welches Betriebssystem und welche Version der AES Library hast du?
Kannst du mal versuchen Perl und AES auf den neusten Stand zu bringen?
Dein Token ist übrigens 6e5252414e353935687a7861456e5433
mit dem Token klappt es.... ::)
danke!
Linux openmediavault 4.11.7 #1 SMP Tue Jun 27 12:03:15 CEST 2017 x86_64 GNU/Linux
Debian Wheezy
cpan version Crypt::Cipher::AES
Reading '/root/.cpan/Metadata'
Database was generated on Fri, 22 Sep 2017 13:17:02 GMT
version is up to date (0.9918).
Crypt::Cipher::AES is up to date (0.053).
Vor zwei Stunden cpan upgrade ausgeführt.
perl -v
This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-gnu-thread-multi
(with 104 registered patches, see perl -V for more detail)
irgendwas ist da aber auch noch faul:
2017.09.22 21:05:14 2: vacuum: invalid json evaluation: {"result":[{"msg_ver":5,"msg_seq":26,"state":8,"battery":98,"clean_time":0,"clean_area":3960000,"error_code":0,"map_present":1,"in_cleaning":0,"fan_power":60,"dnd_enabled":0}],"id":15}
2017.09.22 21:06:43 3: MAX_0d4a8d(Fenster Küche) onoff: 0
2017.09.22 21:09:37 3: vacuum: disconnecting
2017.09.22 21:09:37 2: vacuum: connecting
2017.09.22 21:09:37 3: vacuum: initialized
2017.09.22 21:09:41 2: vacuum: invalid json evaluation: {"id":16,"code":0,"message":"ok","result":{"state":"ONLINE","auth_fail_count":0,"conn_success_count":1,"conn_fail_count":0,"dhcp_fail_count":0}}
2017.09.22 21:09:41 2: vacuum: invalid json evaluation: {"partner_id":"","id":17,"code":0,"message":"ok","result":{"hw_ver":"Linux","fw_ver":"3.3.9_003077","ap":{"ssid":"NETZ","bssid":"38:10:D5:18:F5:BE","rssi":-46},"netif":{"localIp":"192.168.69.123","mask":"255.255.255.0","gw":"192.168.69.254"},"model":"rockrobo.vacuum.v1","mac":"34:CE:00:EA:7E:70","token":"6e5252414e353935687a7861456e5433","life":7167}}
2017.09.22 21:09:41 2: vacuum: invalid json evaluation: {"result":[{"serial_number":"1387100531890"}],"id":18}
2017.09.22 21:09:41 2: vacuum: invalid json evaluation: {"result":["Europe\/Berlin"],"id":19}
2017.09.22 21:09:45 2: vacuum: invalid json evaluation: {"result":[{"main_brush_work_time":1305,"side_brush_work_time":1305,"filter_work_time":1305,"sensor_dirty_time":1305}],"id":20}
2017.09.22 21:09:45 2: vacuum: invalid json evaluation: {"result":[1305,22605000,2,[1506060000,1506038400]],"id":21}
2017.09.22 21:09:45 2: vacuum: invalid json evaluation: {"result":[{"start_hour":22,"start_minute":0,"end_hour":8,"end_minute":0,"enabled":1}],"id":22}
2017.09.22 21:09:45 2: vacuum: invalid json evaluation: {"result":[],"id":23}
2017.09.22 21:09:47 2: vacuum: invalid json evaluation: {"result":[{"msg_ver":5,"msg_seq":28,"state":8,"battery":99,"clean_time":0,"clean_area":3960000,"error_code":0,"map_present":1,"in_cleaning":0,"fan_power":60,"dnd_enabled":0}],"id":24}
2017.09.22 21:10:10 2: vacuum: invalid json evaluation: {"result":[1305,22605000,2,[1506060000,1506038400]],"id":25}
2017.09.22 21:11:45 3: MAX_0a9db5(Fenster Schlafzimmer Garten) onoff: 0
2017.09.22 21:14:42 2: vacuum: invalid json evaluation: {"result":[{"msg_ver":5,"msg_seq":30,"state":8,"battery":100,"clean_time":0,"clean_area":3960000,"error_code":0,"map_present":1,"in_cleaning":0,"fan_power":60,"dnd_enabled":0}],"id":26}
2017.09.22 21:14:59 2: vacuum: invalid json evaluation: {"result":[{"main_brush_work_time":1305,"side_brush_work_time":1305,"filter_work_time":1305,"sensor_dirty_time":1305}],"id":27}
2017.09.22 21:14:59 2: vacuum: invalid json evaluation: {"result":[1305,22605000,2,[1506060000,1506038400]],"id":28}
2017.09.22 21:14:59 2: vacuum: invalid json evaluation: {"result":[{"start_hour":22,"start_minute":0,"end_hour":8,"end_minute":0,"enabled":1}],"id":29}
2017.09.22 21:14:59 2: vacuum: invalid json evaluation: {"result":[],"id":30}
2017.09.22 21:15:18 2: vacuum: invalid json evaluation: {"result":[{"serial_number":"1387100531890"}],"id":31}
Internals:
CFGFN
DEF 192.168.69.123 6e5252414e353935687a7861456e5433
FD 101
NAME vacuum
NR 578
STATE ???
TYPE XiaomiDevice
device_type
helper:
ConnectionState connected
crypt AES
delay 0
dev 03da
id d0f2
ip 192.168.69.123
last_read 1506109849
packetid 13
port 54321
sequence -17
token 6e5252414e353935687a7861456e5433
packet:
1 wifi_stats
10 device_info
11 get_status
12 get_status
2 device_info
3 get_serial_number
4 get_timezone
5 get_consumable
6 get_clean_summary
7 get_dnd_timer
8 get_timer
9 get_status
Attributes:
icon scene_robo_lawnmower
room Wohnzimmer
subType VacuumCleaner
webCmd start:stop:charge
Ich habe hier Perl 5.22 auf Ubuntu 16.04 - da funktioniert alles.
Bei dir machen AES und JSON Probleme.
Ich hab leider keine Ahnung wie ich dir auf der Ebene helfen kann.
Danke,
Ich gucke mir das Modul nächste Woche Mal genauer an.
Wenn ich ne Lösung habe melde ich diese.
Gruß Michael
Zitat von: distel am 10 August 2017, 20:40:00
ich bekomme einfach nicht die Xiaomi Schreibtischlampe angesprochen. Token (32 Zeichen) hab ich, verbose 5 gibt immer (sowohl bei subtyp eyecare als auch smartlamp) nur Folgendes:[...]
Mit dem Modul 32_YeeLight aus diesem Thread https://forum.fhem.de/index.php/topic,62570.0.html (https://forum.fhem.de/index.php/topic,62570.0.html) und über die YeeLight aktivierten Developer-Modus hat es geklappt. Da braucht es dann aber gar keinen Token (Developermodus = "unverschlüsselte Kommunikation"). War dieses Modul am Ende das Falsche? Wie auch immer, mit dem anderen Modul klappt es.
Zitat von: distel am 25 September 2017, 14:01:40
Mit dem Modul 32_YeeLight aus diesem Thread https://forum.fhem.de/index.php/topic,62570.0.html (https://forum.fhem.de/index.php/topic,62570.0.html) und über die YeeLight aktivierten Developer-Modus hat es geklappt. Da braucht es dann aber gar keinen Token (Developermodus = "unverschlüsselte Kommunikation"). War dieses Modul am Ende das Falsche? Wie auch immer, mit dem anderen Modul klappt es.
Dieses Modul hätte auch funktionieren sollen, du hättest dazu aber deinen Token nochmal überprüfen müssen.
Die gleiche Lampe steht übrigens auf meinem Schreibtisch und funktioniert.
Zitat von: Markus M. am 25 September 2017, 14:52:21
Dieses Modul hätte auch funktionieren sollen, du hättest dazu aber deinen Token nochmal überprüfen müssen.
Sorry, hatte es nicht geschrieben: Ich hab's seit dem letzten Post (verzweifelt) und weit mehr als einmal versucht - leider ohne Erfolg. Alles versucht: Kopiert aus SQlite-Editor bis abtippen - no way.
Sei es drum. Vielleicht bekomm ich es ja eines schönen Tages hin. Ich bin mir jedenfalls bewusst, dass der Fehler irgendwo bei mir liegen muss. Letztlich zählt für mich erstmal: es löppt.
Gruß Dirk
Ich bin jetzt etwas schlauer.
In Zeile 1523 wird der jsonstring decodiert, es muss irgendwo ein Sonderzeichen oder ähnliches im String enthalten sein.
Ich habe die Logzeile geändert:
Log3 $name, 2, "$name: invalid json evaluation: \"$jsonstring\" $@";
2017.09.26 07:03:04 2: vacuum: invalid json evaluation: "{"id":19,"code":0,"message":"ok","result":{"state":"ONLINE","auth_fail_count":0,"conn_success_count":1,"conn_fail_count":0,"dhcp_fail_count":0}}" garbage after JSON object, at character offset 145 (before "(end of string)") at ./FHEM/72_XiaomiDevice.pm line 1525.
Wenn ich den jsonstring mit dem selben Wert hart fülle der im Log ausgegeben wird, dann klappt die Verarbeitung.
$jsonstring = "\{\"result\":\[\{\"msg_ver\":5,\"msg_seq\":60,\"state\":8,\"battery\":100,\"clean_time\":3550,\"clean_area\":50132500,\"error_code\":0,\"map_present\":0,\"in_cleaning\":0,\"fan_power\":60,\"dnd_enabled\":1\}\],\"id\":38\}";
Habe jetzt in Zeile 1523 diesen Code eingebaut.
$jsonstring =~ tr/a-zA-ZÄÖÜäöüß0-9.,\:\"\[\{\]\}//cd;
jetzt läuft es wie gewollt :)
Zitat von: ahlermi am 26 September 2017, 08:23:31
Habe jetzt in Zeile 1523 diesen Code eingebaut.
$jsonstring =~ tr/a-zA-ZÄÖÜäöüß0-9.,\:\"\[\{\]\}//cd;
jetzt läuft es wie gewollt :)
Ich muss zugeben dass ich nicht allzu viel Ahnung von regex habe, aber was sagt jetzt eigentlich dein Timezone Reading? ;)
Es gibt optimirungspotential ;-)
aber besser als nix
$jsonstring =~ tr/a-zA-ZÄÖÜäöüß0-9.,\:\"\[\{\]\}\/\\//cd;
sollte jetzt klappen
Hallo,
ich habe seit Sommer den Airpurifier und versucht diesen in FHEM einzubinden. Ich erhielt jedoch zu Beginn im Log die
Meldung "no or incorrect token defined", wobei ich davon ausgegangen war, daß ja kein Token benötigt wird.
Ich habe dann mit der einschlägigen Anleitung, ein Token für den Purifier extrahiert, erhalte auch die Meldung nicht
mehr, es findet jedoch auch weiterhin keinerlei Kommunikation per get/set statt.
Define sollte passen, IP-Adresse etc ist erreichbar.
Habe ich noch was übersehen?
Hier die weiteren Auszüge aus dem Log betreffend den Purifier:
2017.09.30 15:28:45 3: Luftreiniger: disconnecting
2017.09.30 15:28:45 2: Luftreiniger: connecting
2017.09.30 15:28:45 3: Luftreiniger: initialized
2017.09.30 15:28:45 5: Luftreiniger: initSend
2017.09.30 15:28:45 5: Luftreiniger Send SUCCESS
2017.09.30 15:28:45 5: Luftreiniger > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Vielen Dank im voraus
Thorsten
Hast du den Subtype gesetzt?
Ja, Subtype ist gesetzt. Mich hat halt auch die Meldung, dass ein falsches oder kein Token gesetzt ist, stutzig gemacht.
Hat das Gerät Internet?
Bitte mal ein komplettes list incl. Token nach dem Verbindungsversuch
Hallo,
erstmal vielen Dank für die Rückmeldungen. Ja, das Gerät hat Internet, kann es normal über die MiHome App ansprechen, ist nichts per Firewall
geblockt.
Bei der Definition mit Token ergibt ein List:
Internals:
DEF 192.168.89.223 6892a5fa00230f4af5d3d2ddc7f92c09
FD 151
NAME Luftreiniger
NR 428
STATE ??
TYPE XiaomiDevice
Helper:
ConnectionState initialized
crypt AES
delay 0
ip 192.168.89.223
packetid 1
port 54321
token 6892a5fa00230f4af5d3d2ddc7f92c09
Attributes:
subType AirPurifier
verbose 5
Noch einmal die relevanten Logs nach Neustart Fhem:
2017.10.01 09:40:46 3: Luftreiniger: initialized, using AES
2017.10.01 09:40:56 3: Luftreiniger: disconnecting
2017.10.01 09:40:56 2: Luftreiniger: connecting
2017.10.01 09:40:56 3: Luftreiniger: initialized
2017.10.01 09:40:56 5: Luftreiniger: initSend
2017.10.01 09:40:56 5: Luftreiniger Send SUCCESS
2017.10.01 09:40:56 5: Luftreiniger > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Zitat von: tomahawk2015 am 01 Oktober 2017, 10:53:59
Bei der Definition mit Token ergibt ein List...
Und wenn du jetzt manuell ein paar Updates für die verschiedenen Daten anstösst, was sagen List und Log danach?
Bist du dir sicher dass der Token richtig ist?
Hallo,
ich habe das ganze jetzt noch mal parallel auf meiner Zweitumgebung (Raspberry) eingerichtet und da funktioniert es, auch ohne Token,
das wird mir auch (ist gleich dem per App ermittelten) im Log angezeigt. Ich muß noch einmal auf der Erstinstanz forschen woran es liegen
könnte aber damit ist mir jetzt erstmal geholfen.
Vielen Dank für die Hilfe!
Zitat von: tomahawk2015 am 01 Oktober 2017, 12:22:28ich habe das ganze jetzt noch mal parallel auf meiner Zweitumgebung (Raspberry) eingerichtet und da funktioniert es, auch ohne Token,
das wird mir auch (ist gleich dem per App ermittelten) im Log angezeigt. Ich muß noch einmal auf der Erstinstanz forschen woran es liegen
könnte aber damit ist mir jetzt erstmal geholfen.
Vielen Dank für die Hilfe!
Mögliche Ansätze: Die Kommunikation vom Luftreiniger zu FHEM oder die Verschlüsselung.
Hab mal Icons gebaut
Zitat von: Markus M. am 23 Juni 2017, 00:21:21
Indem du eines der beiden Module (bevorzugt AES) mit CPAN installierst:
sudo cpan Crypt::Cipher::AES
Ich habe diesen Schritt durchgeführt, leider ändert das bei mir nichts. Im "state" steht immer noch dass es benötigt wird.
Zitat von: Kiter1988 am 02 Oktober 2017, 15:05:53
Ich habe diesen Schritt durchgeführt, leider ändert das bei mir nichts. Im "state" steht immer noch dass es benötigt wird.
Hast du das
disable Attribut wieder rausgenommen / danach neu gestartet?
Dann wird das Modul von deinem Perl nicht gefunden.
In dem Fall könntest du alternativ Crypt::Rijndael_PP probieren
Zitat von: Markus M. am 02 Oktober 2017, 16:00:36
Hast du das disable Attribut wieder rausgenommen / danach neu gestartet?
Dann wird das Modul von deinem Perl nicht gefunden.
In dem Fall könntest du alternativ Crypt::Rijndael_PP probieren
Es hat sich was getan, allerdings nichts gutes
Ich bekomme die Meldung " Encryption cipher error"
defmod Staubsauger XiaomiDevice IP Token
attr Staubsauger disable 1
attr Staubsauger room 01_Wohnzimmer
attr Staubsauger stateFormat state
attr Staubsauger subType VacuumCleaner
setstate Staubsauger Encryption cipher error
Zitat von: Kiter1988 am 02 Oktober 2017, 16:30:13Es hat sich was getan, allerdings nichts gutes
Ich bekomme die Meldung " Encryption cipher error"
Du hast also mittlerweile auch noch Crypt::ECB installiert und arbeitest mit einem verschlüsselten Token?!
Bitte die Logeinträge die das Modul vom Start an (disable wieder rausnehmen) ausspuckt und danach ein
list vom Device, incl. komplettem Token.
Zitat von: Markus M. am 02 Oktober 2017, 17:13:03
Du hast also mittlerweile auch noch Crypt::ECB installiert und arbeitest mit einem verschlüsselten Token?!
Bitte die Logeinträge die das Modul vom Start an (disable wieder rausnehmen) ausspuckt und danach ein list vom Device, incl. komplettem Token.
Ich hab nun mal endlich Zeit gefunden um mich dem Problem anzunehmen. Kurz und knapp.
Der Sauger funktioniert nun mit Fhem, ich hatte alles richtig gemacht.
Es gab Seitens des RPi ein Netzwerkproblem (Verbindung) welches ich heute lösen konnte.
Ich bin ein wenig erleichtert.
Danke für die Hilfe ! ;D
Hallo Markus, kurze Frage.
Ich habe bei meinem Staubsauger event on change reading gesetzt, habe allerdings das Gefühl, das teilweise doch events erzeugt werden, ohne das es einen Wechsel gab.
Hier mal ein List.
Internals:
DEF xxxxxxxxxxxxxxx xxxxxxxxxxxx
FD 55
NAME Roberta
NR 160
STATE Cleaning
TYPE XiaomiDevice
device_type
mac LOCALNETWORK
model rockrobo.vacuum
READINGS:
2017-10-07 14:43:44 battery ok
2017-10-07 14:43:44 batteryLevel 69
2017-10-07 14:31:03 consumables_filter 74
2017-10-07 14:31:03 consumables_main_brush 87
2017-10-07 14:31:03 consumables_sensors 28
2017-10-07 14:31:03 consumables_side_brush 80
2017-06-15 17:36:50 device_firmware 3.3.6_003055
2017-06-15 17:36:50 device_lifetime 1.35
2017-10-07 14:43:44 dnd on
2017-10-07 14:31:03 dnd_enabled on
2017-10-07 14:31:03 dnd_end 05:30
2017-10-07 14:31:03 dnd_start 06:00
2017-10-07 14:43:44 error none
2017-10-07 14:43:44 error_code None
2017-10-07 14:43:44 fan_power 90
2017-10-07 14:31:03 history_0 2017-10-05 19:47:06: 0.00m² in 0.00h, not finished
2017-10-07 14:31:03 history_1 2017-10-05 19:46:17: 0.00m² in 0.00h, not finished
2017-10-07 14:31:03 history_2 2017-10-05 19:35:36: 0.00m² in 0.00h, not finished
2017-10-07 14:31:03 history_3 2017-10-05 17:21:20: 0.00m² in 0.00h, not finished
2017-10-07 14:31:03 history_4 2017-10-05 16:59:02: 1.37m² in 0.00h, not finished
2017-10-07 14:31:03 history_5 2017-10-05 09:30:17: 44.31m² in 0.83h, finished cleaning
2017-10-07 14:31:03 history_6 2017-10-03 11:24:02: 45.69m² in 0.83h, finished cleaning
2017-10-07 14:31:03 history_7 2017-09-29 15:57:07: 46.05m² in 0.88h, finished cleaning
2017-10-07 14:31:03 history_8 2017-09-23 14:23:27: 24.99m² in 0.44h, finished cleaning
2017-10-07 14:31:03 history_9 2017-09-23 10:39:54: 29.56m² in 0.50h, finished cleaning
2017-10-07 14:43:44 in_cleaning no
2017-10-07 14:43:44 last_clean_area 35.98
2017-10-07 14:43:44 last_clean_time 0.66
2017-10-07 14:31:03 last_timestamp 1507225626
2017-10-07 14:43:44 map_present yes
2017-10-06 23:31:00 serial_number 1387100331716
2017-10-07 14:43:44 state Cleaning
2017-10-06 23:31:00 timezone Europe/Berlin
2017-10-07 14:31:03 total_clean_area 1965.92
2017-10-07 14:31:03 total_clean_time 38.51
2017-10-07 14:31:03 total_cleans 56
2017-10-06 23:31:00 wifi_auth_fail_count 0
2017-10-06 23:31:00 wifi_conn_fail_count 0
2017-10-06 23:31:00 wifi_conn_success_count 1
2017-10-06 23:31:00 wifi_dhcp_fail_count 0
2017-06-15 17:36:50 wifi_rssi -54
2017-10-06 23:31:00 wifi_state connecting
helper:
ConnectionState connected
cleanrecord 10
crypt AES
dev xxx
historydays 4
id xxx
ip xxxxxxx
last_read xxxxxxxxxxx
packetid 392
port 54321
sequence xxxxxxxxxx
timers 0
token xxxxxxxxxx
day:
history:
packet:
2 device_info
252 get_status
295 get_status
312 get_status
335 get_status
341 get_status
352 get_status
42 get_status
52 device_info
Attributes:
event-on-change-reading .*
room Flur,Home
subType VacuumCleaner
verbose 0
Ich denke an folgenden readings sieht man es ganz gut. Er fährt gerade, und ist schon 0.66 Imin unterwegs.Die Aktualisierung von state kam aber zur selben Zeit.
2017-10-07 14:43:44 last_clean_area 35.98
2017-10-07 14:43:44 last_clean_time 0.66
2017-10-07 14:43:44 state Cleaning
Ich stelle mir auch gerade die Frage, ob das Reading "in cleaning" nicht eigentlich auf yes stehen müsste.
Grüße
Last... ändert sich auch während einem Reinigungsvorgang.
in cleaning ist nutzlos, keine Ahnung was das eigentlich anzeigen soll. Kommt so aus dem Sauger.
Zitat von: Markus M. am 07 Oktober 2017, 19:43:50
Last... ändert sich auch während einem Reinigungsvorgang.
in cleaning ist nutzlos, keine Ahnung was das eigentlich anzeigen soll. Kommt so aus dem Sauger.
Last.. macht ja auch Sinn,allerdings sollte doch state kein event bringen während er durch die Gegend fährt!?
Zitat von: Esjay am 08 Oktober 2017, 02:24:52Last.. macht ja auch Sinn,allerdings sollte doch state kein event bringen während er durch die Gegend fährt!?
Kann ich mir mal ansehen. Was kommt denn zwischendrin?
Zitat von: Markus M. am 08 Oktober 2017, 11:12:55
Kann ich mir mal ansehen. Was kommt denn zwischendrin?
Ok, vll nochmal anders erklärt.
Mein Staubsauger ist heute noch nicht gefahren. Zuletzt ist er gestern Mittag irgendwann gefahren.
Trotzdem wurde heute für das Reading state um 12:50:10 aktualisiert, und ein Event getriggert.
state Docked 2017-10-08 12:50:10
Das führt dazu, das ein Doif von mir getriggert wird. Das macht für mich aber keinen Sinn, da ich event-on-change-reading gesetzt habe.
Ich habe jetzt parallel ein Thema im DOIF unterforum aufgemacht, da habe ich das Ganze nochmal etwas umfangreicher beschrieben.
https://forum.fhem.de/index.php/topic,77718.0.html
Grüße
Edit:
Ich habe irgendwie das Gefühl, das sobald man die Saugstufe einstellt, das reading state ein Event des aktuellen Status ausgibt, es allerdings nicht im Device aktualisiert wird.
Und was stand vorher in state?
Vielleicht disconnected/connected oder Charging?
Zitat von: Markus M. am 08 Oktober 2017, 13:57:00
Und was stand vorher in state?
Vielleicht disconnected/connected oder Charging?
Das ist es ja!!Dauerhaft der state Cleaning.
Ich werde mal ein LogFile anlegen, welches state mitlogt und dann das Verhalten reproduzieren.
Also er ändert definitiv nicht den state. Ich vermute eher dieses VerhaltenZitatEdit:
Ich habe irgendwie das Gefühl, das sobald man die Saugstufe einstellt, das reading state ein Event des aktuellen Status ausgibt, es allerdings nicht im Device aktualisiert wird.
Hat sich geklärt.Danke
Den neuen Vacuum gibt es hier für 345
https://www.gearbest.com/robot-vacuum/pp_954639.html (https://www.gearbest.com/robot-vacuum/pp_954639.html)
Code: GBHALLOWEEN2017
Ich habe doch für den Alten noch nicht mal Ersatzfilter bestellt ;) ;D
Hiho,
hat es einer von euch es geschafft den Sauger mittels move gezielt entfernte Ziele anzufahren?
Gruß
Dennis
mehr oder weniger ::)
Es scheint auch so das die Max time bei move 5000ms beträgt.
Kannst Du das bestätigen?
Ich dachte ich habe 10000 erfolgreich probiert :o
Muss ich nochmal testen, 5000 geht auf alle Fälle.
Ich habe auch mit rum gespielt, aber die Feststellung gemacht das die Zeitangabe beim move überhaupt keine Rolle spielt.
Zitat von: ahlermi am 12 Oktober 2017, 08:29:43aber die Feststellung gemacht das die Zeitangabe beim move überhaupt keine Rolle spielt.
Also bei mir haben die doch schon ein Einfluss, bloß ich steige nicht so recht dahinter wie das immer alles interpretiert....
Selbst an diesem einfachen Script scheitert er...
set HA.Geraet.SaugRobot fan_power 1;
set HA.Geraet.SaugRobot remotecontrol start;
sleep 10;
set HA.Geraet.SaugRobot move 0 50 1000;
sleep 2;
set HA.Geraet.SaugRobot move 5 50 1000;
sleep 2;
set HA.Geraet.SaugRobot move 0 50 1000;
sleep 2;
set HA.Geraet.SaugRobot remotecontrol stop;
set HA.Geraet.SaugRobot fan_power 60;
Ich habe nochmal eine kurze Testreihe gemacht. Immer frisch mit start remotecontrol begonnen und einfach mit dem Zollstock gemessen: ;D
set MyRobot move 0 50 5000 bewegt ihn 72 cm
set MyRobot move 0 100 5000 bewegt ihn 144 cm
set MyRobot move 0 50 10000 bewegt ihn 143 cm
set MyRobot move 0 50 15000 bewegt ihn 143 cm
set MyRobot move 0 100 10000 bewegt ihn 268 cm
Also wie ich schon sagte: 10000 ist die längste Zeit die man angeben kann. Allerdings nur beim ersten Befehl nach dem start von remotecontrol, danach ist es wirklich egal was man angibt, er nimmt immer die Zeit aus dem ersten Befehl. Offenbar interessiert ihn dann nur noch Geschwindigkeit und Drehung.
Zumindest gibt mir diese Erkenntnis einen neuen Ansatz, Wege zu planen ohne immer remotecontrol stop einfügen zu müssen. Nur danach wird die Zeitangabe wieder akzeptiert. :D
Die Pausenzeiten müssen länger als die Fahr und Reaktionsdauer sein.
Gruß Otto
Zitat von: Otto123 am 12 Oktober 2017, 11:47:35
Ich habe nochmal eine kurze Testreihe gemacht. Immer frisch mit start remotecontrol begonnen und einfach mit dem Zollstock gemessen: ;D
Danke für deinen Test, mal sehen was man da mit umgesetzt bekommt ;)
Dein Script funktioniert bei mir:
defmod nty_RobotM4 notify nty_RobotM4 set MyRobot remotecontrol start;;sleep 10;;\
set MyRobot move 0 50 1000;;sleep 2;;\
set MyRobot move 5 50;;sleep 2;;\
set MyRobot move 0 50 ;;sleep 2;;\
set MyRobot remotecontrol stop
14 cm vor kurze 14 cm Kurve nach rechts und nochmal 14 cm vor. -> 42 cm leicht nach rechts vorn bewegt :)
Meine ist grade Fleißig, danach werde ich testen :D
PS:
Deine DOIF Automation läuft TOP!
([Bewohner] eq "absent")
(
set HA.Geraet.SaugRobot start
)
DOELSEIF ([Bewohner] eq "home" and [HA.Geraet.SaugRobot] eq "Cleaning")
(
set HA.Geraet.SaugRobot pause
)
DOELSEIF ([23:00])
(
set HA.Geraet.SaugRobot charge
)
So jetzt der letzte Test für heute:
set MyRobot move 41 0 5000 dreht ihn einmal um die eigene Achse(Mitte)
set MyRobot move 41 41 5000 dreht ihn einmal im Uhrzeigersinn um die eigene Achse (rechtes Rad)
set MyRobot move -41 41 5000 dreht ihn einmal gegen den Uhrzeigersinn um die eigene Achse (linkes Rad)
set MyRobot move 41 82 5000 dreht einen Kreis im Uhrzeigersinn mit der Mitte etwas neben der Außenkante
Habe Heute auch noch bissel bespielt....
So lauft er ohne ruckeln oder Stocken zu gewünschten Ziel, und macht erst einmal was er soll...
defmod HA.Notify.Geraet.SaugRobot.KatzenKlo.Flur notify HA.Notify.Geraet.SaugRobot.KatzenKlo.Flur\
set HA.Geraet.SaugRobot fan_power 1;;\
set HA.Geraet.SaugRobot remotecontrol start;;\
sleep 10;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 80 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 80 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 20 0 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 90 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 80 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 10 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 40 0 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;; \
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;; \
sleep 1;;\
set HA.Geraet.SaugRobot move -40 0 1200;; \
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 100 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 80 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot move 0 90 1200;;\
sleep 1;;\
set HA.Geraet.SaugRobot remotecontrol stop;;\
sleep 1;;\
set HA.Geraet.SaugRobot fan_power 60;;\
sleep 5;;\
set HA.Geraet.SaugRobot spot;;\
sleep 30;;\
set HA.Notify.Geraet.SaugRobot active;;
Und noch das Notify:
defmod HA.Notify.Geraet.SaugRobot notify HA.Geraet.SaugRobot \
{\
if ($EVENT eq "Waiting")\
{\
fhem "set HA.Geraet.SaugRobot charge";;\
fhem "set $SELF inactive";;\
}\
}
Hallo,
ich bekomm den Staubsauger einfach nicht verbunden:
Firmware ist 3.3.9_003077
Mit der Flole-App hab ich den unverschlüsselten Token jetzt schon ein paar mal ausgelesen und die WLAN-Verbindung zurück gesetzt.
Mi Home App hab ich die 4.2.5.
Wenn ich den Staubsauger so definiere
define vacuum XiaomiDevice 192.168.1.89 32425261316a37724349307551757052
bleibt er leider auf disconnected.
Kann mir hier jemand weiter helfen? Vielen Dank!
Im Log hab ich folgenden Meldungen:
2017.10.13 15:52:07 3: vacuum: disconnecting
2017.10.13 15:52:07 2: vacuum: connecting
2017.10.13 15:52:07 3: vacuum: initialized
2017.10.13 15:52:21 2: vacuum: connection timeout
Du kannst den Token nur aus einem App Backup auslesen.
Die Flole App ist bei neuer Firmware nutzlos.
Danke dir. Das hab ich vorher auch schon probiert gehabt, aber dann ist immer folgender Fehler gekommen: "Es scheint ein Fehler aufgetreten zu sein, das Backup ist viel zu klein"
Hab jetzt hier noch ein bißchen gegoogelt und bin auf folgenden Post gekommen: http://forum.iobroker.net/viewtopic.php?t=4898&start=940#p76091
Hab dann die drei Dateien im Odner adb vom MiToolkit ausgetauscht und dann hat es funktioniert.
Hab gerade gesehen, dass ich ab und zu folgende Ausgabe im Log habe:
"Staubsauger: invalid JSON: {"result":[[15079141..."
Kann hier jemand was mit dem Fehler anfangen oder an was könnte das liegen? Staubsauger funktioniert aber.
Code im Modul ist:
Log3 $name, 2, "$name: invalid JSON: $jsonstring" if( $jsonstring !~ m/^{.*}/ );
Danke euch!
Lösung in:
Antwort #502 am: 26 September 2017, 16:31:01
Denke ich
Ne, das war was anderes.
Hier schlägt schon der erste Check auf {.*} fehl.
Zitat von: Fischei am 18 Oktober 2017, 21:45:02
Hab gerade gesehen, dass ich ab und zu folgende Ausgabe im Log habe:
"Staubsauger: invalid JSON: {"result":[[15079141..."
Kannst du mal den kompletten String posten?
Hier der komplette String:
Staubsauger: invalid JSON: {"result":[[1507914139,1507914764,625,10750000,0,1],[1507912045,1507912045,0,0,0,0],[1507912038,1507912042,0,0,0,0],[1507911744,1507911750,0,0,0,0],[1507910273,1507910275,1,0,0,0],[1507909223,1507909226,3,0,0,0],[1507905554,1507905557,2,0,0,0],[1507905442,1507905444,2,0,0,0],[1507904671,1507904675,4,0,0,0],[1507901379,1507901382,3,0,0,0],[1507899319,1507899904,488,4577500,0,1],[1507897511,1507898191,680,10657500,0,1],[1507893856,1507894547,691,8177500,0,1],[1507893098,1507893797,699,10615000,0,1],[150787838
Sieht aus als wäre er abgeschnitten. Oder kann dies an einer Längenbegrenzung im Log liegen?
Zitat von: Fischei am 18 Oktober 2017, 22:13:29Sieht aus als wäre er abgeschnitten. Oder kann dies an einer Längenbegrenzung im Log liegen?
Ich glaube das lag am Modul.
Probier's nochmal mit der neuen Version.
Sieht gut aus. FHEM läuft seit einer Stunde mit dem neuen Modul und Fehler ist noch nicht aufgetreten.
An was lag es würde mich interessieren? Wollt eigentlich die Modulversionen vergleichen, hab aber leider das alte Modul überschrieben.
Aus irgendwelchen Gründen habe ich nur die ersten 1024 Zeichen des verschlüsselten Strings ausgewertet. Ergab dann 512 Zeichen JSON, was für alles außer lange Histories funktioniert hat.
Hallo zusammen,
als erstes möchte ich ein großes Lob aussprechen für das was ihr alles macht und umsetzt.
Echt Klasse, ich freue mich immer wieder wenn ich bei euch "rumstöbere" und Neuigkeiten lesen kann.
Letzte Woche ist meine neuer Xiaomi Vacuum Robot (3.3.6_003062) gekommen und habe mich gleich daran gemacht in in Betrieb zu nehmen. Mit original APP angebunden, IP von Fritzbox erhalten, mit iBackupviewer das Token ausgelesen, die Pakete und 72_XiaomiDevices wie im Post 1 beschrieben installiert, in Fhem wie folgt einebunden:
define Mi_Vacuum XiaomiDevice 192.168.188.47 c8321e3b5b942e37be87644f6d831b8bafea58354aedc7f80825e24976ce1e170143db63ee66b0cdff9f69917680151e
attr Mi_Vacuum room 6.1 Sauger
attr Mi_Vacuum subType VacuumCleaner
Sobald Fhem zum Sauger "kontakt" aufnimmt wird dieses Attribut automatisch gesetzt:
attr Mi_Vacuum disable 1
in Fhem erscheint folgende Meldung:
Encryption cipher error
und im Log folendes zu lesen:2017.10.25 22:27:49 3: Mi_Vacuum: disconnecting
2017.10.25 22:27:49 2: Mi_Vacuum: connecting
2017.10.25 22:27:49 3: Mi_Vacuum: initialized
2017.10.25 22:27:49 1: Mi_Vacuum: Token could not be retrieved automatically from already cloud-connected device!
2017.10.25 22:27:53 3: XiaomiDevice Mi_Vacuum is disabled, communication cancelled.
2017.10.25 22:27:53 3: XiaomiDevice Mi_Vacuum is disabled, communication cancelled.
2017.10.25 22:27:53 3: XiaomiDevice Mi_Vacuum is disabled, communication cancelled.
2017.10.25 22:27:53 3: XiaomiDevice Mi_Vacuum is disabled, communication cancelled.
2017.10.25 22:27:56 3: XiaomiDevice Mi_Vacuum is disabled, communication cancelled.
2017.10.25 22:27:56 3: XiaomiDevice Mi_Vacuum is disabled, communication cancelled.
2017.10.25 22:27:56 3: XiaomiDevice Mi_Vacuum is disabled, communication cancelled.
2017.10.25 22:27:56 3: XiaomiDevice Mi_Vacuum is disabled, communication cancelled.
2017.10.25 22:27:59 3: XiaomiDevice Mi_Vacuum is disabled, communication cancelled.
Nach mehreren Versuchen den Roboter neu an die Mi APP anzulernen, nach Reset auf Werkseinstellung (Home Button und Reset knopf) und wieder neu in Fhem einzubinden gebe ich jetzt auf.
Der Sauger funktioniert pima über die APP nur mit Fhem bekomme ich nicht hin.
Kann mir jemand von euch helfen?
was mache ich falsch?
schon mal vielen Dank für eure Antworten
Zitat von: wertz am 25 Oktober 2017, 16:51:43
in Fhem erscheint folgende Meldung:
Encryption cipher error
Wenn du Glück hast funktioniert nur ECB nicht:
define Mi_Vacuum XiaomiDevice 192.168.188.47 32337a357434644476476d6552657649
Hi Markus M,
erst mal vielen Dank für die schnelle Antwort. Den Token den du mir gegeben hast ist bestpmmt von 96 auf 32 Stellen decodiert?
Jedenfalls habe ich in so in mei Fhem eingetragen und der Fehler "Encryption cipher error" ist nicht mehr da.
Dafür "disconnect" und im Log folgender Eintrag
2017.10.26 15:37:56 3: Mi_Vacuum: disconnecting
2017.10.26 15:37:56 2: Mi_Vacuum: connecting
2017.10.26 15:37:56 3: Mi_Vacuum: initialized
2017.10.26 15:38:10 2: Mi_Vacuum: connection timeout.
Noch ne Idee was ich noch ändern muss/kann damit ich den Sauger angebunden bekomme?
und woran liegt es dass ich mit dem 96 stelligen Token die Fehlermeldung "Encryption cipher error" bekomme?
Lieber Gruß und vielen Dank
Tom
Ja, das ist der entschlüsselte Token. Irgendwas funktioniert bei dir nicht mit dem Modul das dafür zuständig ist. Wird aber nur einmalig gebraucht.
Ist der Sauger denn erreichbar?
Mach mal ein list.
Hi,
hier der List:
Internals:
DEF 192.168.188.47 32337a357434644476476d6552657649
FD 78
NAME Mi_Vacuum
NR 472
STATE disconnected
TYPE XiaomiDevice
device_type unknown
READINGS:
2017-10-26 18:04:54 state disconnected
helper:
ConnectionState disconnected
crypt AES
delay 300
dev 046c
id 754c
ip 192.168.188.47
last_read 1509012280
packetid 1319
port 54321
sequence 1
token 32337a357434644476476d6552657649
packet:
1 wifi_stats
10 get_status
100 get_status
1000 get_status
1001 wifi_stats
1002 device_info
1003 get_serial_number
1004 get_timezone
1005 get_consumable
1006 get_clean_summary
1007 get_dnd_timer
1008 get_timer
1009 get_status
101 wifi_stats
1010 get_status
1011 wifi_stats
1012 device_info
1013 get_serial_number
1014 get_timezone
1015 get_consumable
1016 get_clean_summary
1017 get_dnd_timer
1018 get_timer
1019 get_status
102 device_info
1020 get_status
1021 wifi_stats
1022 device_info
1023 get_serial_number
1024 get_timezone
1025 get_consumable
1026 get_clean_summary
1027 get_dnd_timer
1028 get_timer
1029 get_status
103 get_serial_number
1030 wifi_stats
1031 device_info
1032 get_serial_number
1033 get_timezone
1034 get_consumable
1035 get_clean_summary
1036 get_dnd_timer
1037 get_timer
1038 get_status
1039 get_status
104 get_timezone
1040 wifi_stats
1041 device_info
1042 get_serial_number
1043 get_timezone
1044 get_consumable
1045 get_clean_summary
1046 get_dnd_timer
1047 get_timer
1048 get_status
1049 get_status
105 get_consumable
1050 wifi_stats
1051 device_info
1052 get_serial_number
1053 get_timezone
1054 get_consumable
1055 get_clean_summary
1056 get_dnd_timer
1057 get_timer
1058 get_status
1059 get_status
106 get_clean_summary
1060 wifi_stats
1061 device_info
1062 get_serial_number
1063 get_timezone
1064 get_consumable
1065 get_clean_summary
1066 get_dnd_timer
1067 get_timer
1068 get_status
1069 get_status
107 get_dnd_timer
1070 wifi_stats
1071 device_info
1072 get_serial_number
1073 get_timezone
1074 get_consumable
1075 get_clean_summary
1076 get_dnd_timer
1077 get_timer
1078 get_status
1079 get_status
108 get_timer
1080 wifi_stats
1081 device_info
1082 get_serial_number
1083 get_timezone
1084 get_consumable
1085 get_clean_summary
1086 get_dnd_timer
1087 get_timer
1088 get_status
1089 get_status
109 get_status
1090 wifi_stats
1091 device_info
1092 get_serial_number
1093 get_timezone
1094 get_consumable
1095 get_clean_summary
1096 get_dnd_timer
1097 get_timer
1098 get_status
1099 get_status
11 wifi_stats
110 get_status
1100 wifi_stats
1101 device_info
1102 get_serial_number
1103 get_timezone
1104 get_consumable
1105 get_clean_summary
1106 get_dnd_timer
1107 get_timer
1108 get_status
1109 get_status
111 wifi_stats
1110 wifi_stats
1111 device_info
1112 get_serial_number
1113 get_timezone
1114 get_consumable
1115 get_clean_summary
1116 get_dnd_timer
1117 get_timer
1118 get_status
1119 get_status
112 device_info
1120 wifi_stats
1121 device_info
1122 get_serial_number
1123 get_timezone
1124 get_consumable
1125 get_clean_summary
1126 get_dnd_timer
1127 get_timer
1128 get_status
1129 get_status
113 get_serial_number
1130 wifi_stats
1131 device_info
1132 get_serial_number
1133 get_timezone
1134 get_consumable
1135 get_clean_summary
1136 get_dnd_timer
1137 get_timer
1138 get_status
1139 get_status
114 get_timezone
1140 wifi_stats
1141 device_info
1142 get_serial_number
1143 get_timezone
1144 get_consumable
1145 get_clean_summary
1146 get_dnd_timer
1147 get_timer
1148 get_status
1149 get_status
115 get_consumable
1150 wifi_stats
1151 device_info
1152 get_serial_number
1153 get_timezone
1154 get_consumable
1155 get_clean_summary
1156 get_dnd_timer
1157 get_timer
1158 get_status
1159 get_status
116 get_clean_summary
1160 wifi_stats
1161 device_info
1162 get_serial_number
1163 get_timezone
1164 get_consumable
1165 get_clean_summary
1166 get_dnd_timer
1167 get_timer
1168 get_status
1169 get_status
117 get_dnd_timer
1170 wifi_stats
1171 device_info
1172 get_serial_number
1173 get_timezone
1174 get_consumable
1175 get_clean_summary
1176 get_dnd_timer
1177 get_timer
1178 get_status
1179 get_status
118 get_timer
1180 wifi_stats
1181 device_info
1182 get_serial_number
1183 get_timezone
1184 get_consumable
1185 get_clean_summary
1186 get_dnd_timer
1187 get_timer
1188 get_status
1189 get_status
119 get_status
1190 wifi_stats
1191 device_info
1192 get_serial_number
1193 get_timezone
1194 get_consumable
1195 get_clean_summary
1196 get_dnd_timer
1197 get_timer
1198 get_status
1199 get_status
12 device_info
120 get_status
1200 wifi_stats
1201 device_info
1202 get_serial_number
1203 get_timezone
1204 get_consumable
1205 get_clean_summary
1206 get_dnd_timer
1207 get_timer
1208 get_status
1209 get_status
121 wifi_stats
1210 wifi_stats
1211 device_info
1212 get_serial_number
1213 get_timezone
1214 get_consumable
1215 get_clean_summary
1216 get_dnd_timer
1217 get_timer
1218 get_status
1219 get_status
122 device_info
1220 wifi_stats
1221 device_info
1222 get_serial_number
1223 get_timezone
1224 get_consumable
1225 get_clean_summary
1226 get_dnd_timer
1227 get_timer
1228 get_status
1229 get_status
123 get_serial_number
1230 wifi_stats
1231 device_info
1232 get_serial_number
1233 get_timezone
1234 get_consumable
1235 get_clean_summary
1236 get_dnd_timer
1237 get_timer
1238 get_status
1239 get_status
124 get_timezone
1240 wifi_stats
1241 device_info
1242 get_serial_number
1243 get_timezone
1244 get_consumable
1245 get_clean_summary
1246 get_dnd_timer
1247 get_timer
1248 get_status
1249 get_status
125 get_consumable
1250 wifi_stats
1251 device_info
1252 get_serial_number
1253 get_timezone
1254 get_consumable
1255 get_clean_summary
1256 get_dnd_timer
1257 get_timer
1258 get_status
1259 get_status
126 get_clean_summary
1260 wifi_stats
1261 device_info
1262 get_serial_number
1263 get_timezone
1264 get_consumable
1265 get_clean_summary
1266 get_dnd_timer
1267 get_timer
1268 get_status
1269 get_status
127 get_dnd_timer
1270 wifi_stats
1271 device_info
1272 get_serial_number
1273 get_timezone
1274 get_consumable
1275 get_clean_summary
1276 get_dnd_timer
1277 get_timer
1278 get_status
1279 get_status
128 get_timer
1280 wifi_stats
1281 device_info
1282 get_serial_number
1283 get_timezone
1284 get_consumable
1285 get_clean_summary
1286 get_dnd_timer
1287 get_timer
1288 get_status
1289 get_status
129 get_status
1290 wifi_stats
1291 device_info
1292 get_serial_number
1293 get_timezone
1294 get_consumable
1295 get_clean_summary
1296 get_dnd_timer
1297 get_timer
1298 get_status
1299 get_status
13 get_serial_number
130 get_status
1300 wifi_stats
1301 device_info
1302 get_serial_number
1303 get_timezone
1304 get_consumable
1305 get_clean_summary
1306 get_dnd_timer
1307 get_timer
1308 get_status
1309 get_status
131 wifi_stats
1310 wifi_stats
1311 device_info
1312 get_serial_number
1313 get_timezone
1314 get_consumable
1315 get_clean_summary
1316 get_dnd_timer
1317 get_timer
1318 get_status
132 device_info
133 get_serial_number
134 get_timezone
135 get_consumable
136 get_clean_summary
137 get_dnd_timer
138 get_timer
139 get_status
14 get_timezone
140 get_status
141 wifi_stats
142 device_info
143 get_serial_number
144 get_timezone
145 get_consumable
146 get_clean_summary
147 get_dnd_timer
148 get_timer
149 get_status
15 get_consumable
150 get_status
151 wifi_stats
152 device_info
153 get_serial_number
154 get_timezone
155 get_consumable
156 get_clean_summary
157 get_dnd_timer
158 get_timer
159 get_status
16 get_clean_summary
160 get_status
161 wifi_stats
162 device_info
163 get_serial_number
164 get_timezone
165 get_consumable
166 get_clean_summary
167 get_dnd_timer
168 get_timer
169 get_status
17 get_dnd_timer
170 get_status
171 wifi_stats
172 device_info
173 get_serial_number
174 get_timezone
175 get_consumable
176 get_clean_summary
177 get_dnd_timer
178 get_timer
179 get_status
18 get_timer
180 get_status
181 wifi_stats
182 device_info
183 get_serial_number
184 get_timezone
185 get_consumable
186 get_clean_summary
187 get_dnd_timer
188 get_timer
189 get_status
19 get_status
190 get_status
191 wifi_stats
192 device_info
193 get_serial_number
194 get_timezone
195 get_consumable
196 get_clean_summary
197 get_dnd_timer
198 get_timer
199 get_status
2 device_info
20 get_status
200 get_status
201 wifi_stats
202 device_info
203 get_serial_number
204 get_timezone
205 get_consumable
206 get_clean_summary
207 get_dnd_timer
208 get_timer
209 get_status
21 wifi_stats
210 get_status
211 wifi_stats
212 device_info
213 get_serial_number
214 get_timezone
215 get_consumable
216 get_clean_summary
217 get_dnd_timer
218 get_timer
219 get_status
22 device_info
220 get_status
221 wifi_stats
222 device_info
223 get_serial_number
224 get_timezone
225 get_consumable
226 get_clean_summary
227 get_dnd_timer
228 get_timer
229 get_status
23 get_serial_number
230 get_status
231 wifi_stats
232 device_info
233 get_serial_number
234 get_timezone
235 get_consumable
236 get_clean_summary
237 get_dnd_timer
238 get_timer
239 get_status
24 get_timezone
240 get_status
241 wifi_stats
242 device_info
243 get_serial_number
244 get_timezone
245 get_consumable
246 get_clean_summary
247 get_dnd_timer
248 get_timer
249 get_status
25 get_consumable
250 get_status
251 wifi_stats
252 device_info
253 get_serial_number
254 get_timezone
255 get_consumable
256 get_clean_summary
257 get_dnd_timer
258 get_timer
259 get_status
26 get_clean_summary
260 get_status
261 wifi_stats
262 device_info
263 get_serial_number
264 get_timezone
265 get_consumable
266 get_clean_summary
267 get_dnd_timer
268 get_timer
269 get_status
27 get_dnd_timer
270 get_status
271 wifi_stats
272 device_info
273 get_serial_number
274 get_timezone
275 get_consumable
276 get_clean_summary
277 get_dnd_timer
278 get_timer
279 get_status
28 get_timer
280 get_status
281 wifi_stats
282 device_info
283 get_serial_number
284 get_timezone
285 get_consumable
286 get_clean_summary
287 get_dnd_timer
288 get_timer
289 get_status
29 get_status
290 get_status
291 wifi_stats
292 device_info
293 get_serial_number
294 get_timezone
295 get_consumable
296 get_clean_summary
297 get_dnd_timer
298 get_timer
299 get_status
3 get_serial_number
30 get_status
300 get_status
301 wifi_stats
302 device_info
303 get_serial_number
304 get_timezone
305 get_consumable
306 get_clean_summary
307 get_dnd_timer
308 get_timer
309 get_status
31 wifi_stats
310 get_status
311 wifi_stats
312 device_info
313 get_serial_number
314 get_timezone
315 get_consumable
316 get_clean_summary
317 get_dnd_timer
318 get_timer
319 get_status
32 device_info
320 get_status
321 wifi_stats
322 device_info
323 get_serial_number
324 get_timezone
325 get_consumable
326 get_clean_summary
327 get_dnd_timer
328 get_timer
329 get_status
33 get_serial_number
330 get_status
331 wifi_stats
332 device_info
333 get_serial_number
334 get_timezone
335 get_consumable
336 get_clean_summary
337 get_dnd_timer
338 get_timer
339 get_status
34 get_timezone
340 get_status
341 wifi_stats
342 device_info
343 get_serial_number
344 get_timezone
345 get_consumable
346 get_clean_summary
347 get_dnd_timer
348 get_timer
349 get_status
35 get_consumable
350 get_status
351 wifi_stats
352 device_info
353 get_serial_number
354 get_timezone
355 get_consumable
356 get_clean_summary
357 get_dnd_timer
358 get_timer
359 get_status
36 get_clean_summary
360 get_status
361 wifi_stats
362 device_info
363 get_serial_number
364 get_timezone
365 get_consumable
366 get_clean_summary
367 get_dnd_timer
368 get_timer
369 get_status
37 get_dnd_timer
370 get_status
371 wifi_stats
372 device_info
373 get_serial_number
374 get_timezone
375 get_consumable
376 get_clean_summary
377 get_dnd_timer
378 get_timer
379 get_status
38 get_timer
380 get_status
381 wifi_stats
382 device_info
383 get_serial_number
384 get_timezone
385 get_consumable
386 get_clean_summary
387 get_dnd_timer
388 get_timer
389 get_status
39 get_status
390 get_status
391 wifi_stats
392 device_info
393 get_serial_number
394 get_timezone
395 get_consumable
396 get_clean_summary
397 get_dnd_timer
398 get_timer
399 get_status
4 get_timezone
40 get_status
400 get_status
401 wifi_stats
402 device_info
403 get_serial_number
404 get_timezone
405 get_consumable
406 get_clean_summary
407 get_dnd_timer
408 get_timer
409 get_status
41 wifi_stats
410 get_status
411 wifi_stats
412 device_info
413 get_serial_number
414 get_timezone
415 get_consumable
416 get_clean_summary
417 get_dnd_timer
418 get_timer
419 get_status
42 device_info
420 get_status
421 wifi_stats
422 device_info
423 get_serial_number
424 get_timezone
425 get_consumable
426 get_clean_summary
427 get_dnd_timer
428 get_timer
429 get_status
43 get_serial_number
430 get_status
431 wifi_stats
432 device_info
433 get_serial_number
434 get_timezone
435 get_consumable
436 get_clean_summary
437 get_dnd_timer
438 get_timer
439 get_status
44 get_timezone
440 get_status
441 wifi_stats
442 device_info
443 get_serial_number
444 get_timezone
445 get_consumable
446 get_clean_summary
447 get_dnd_timer
448 get_timer
449 get_status
45 get_consumable
450 get_status
451 wifi_stats
452 device_info
453 get_serial_number
454 get_timezone
455 get_consumable
456 get_clean_summary
457 get_dnd_timer
458 get_timer
459 get_status
46 get_clean_summary
460 get_status
461 wifi_stats
462 device_info
463 get_serial_number
464 get_timezone
465 get_consumable
466 get_clean_summary
467 get_dnd_timer
468 get_timer
469 get_status
47 get_dnd_timer
470 get_status
471 wifi_stats
472 device_info
473 get_serial_number
474 get_timezone
475 get_consumable
476 get_clean_summary
477 get_dnd_timer
478 get_timer
479 get_status
48 get_timer
480 get_status
481 wifi_stats
482 device_info
483 get_serial_number
484 get_timezone
485 get_consumable
486 get_clean_summary
487 get_dnd_timer
488 get_timer
489 get_status
49 get_status
490 get_status
491 wifi_stats
492 device_info
493 get_serial_number
494 get_timezone
495 get_consumable
496 get_clean_summary
497 get_dnd_timer
498 get_timer
499 get_status
5 get_consumable
50 get_status
500 get_status
501 wifi_stats
502 device_info
503 get_serial_number
504 get_timezone
505 get_consumable
506 get_clean_summary
507 get_dnd_timer
508 get_timer
509 get_status
51 wifi_stats
510 get_status
511 wifi_stats
512 device_info
513 get_serial_number
514 get_timezone
515 get_consumable
516 get_clean_summary
517 get_dnd_timer
518 get_timer
519 get_status
52 device_info
520 get_status
521 wifi_stats
522 device_info
523 get_serial_number
524 get_timezone
525 get_consumable
526 get_clean_summary
527 get_dnd_timer
528 get_timer
529 get_status
53 get_serial_number
530 get_status
531 wifi_stats
532 device_info
533 get_serial_number
534 get_timezone
535 get_consumable
536 get_clean_summary
537 get_dnd_timer
538 get_timer
539 get_status
54 get_timezone
540 get_status
541 wifi_stats
542 device_info
543 get_serial_number
544 get_timezone
545 get_consumable
546 get_clean_summary
547 get_dnd_timer
548 get_timer
549 get_status
55 get_consumable
550 get_status
551 wifi_stats
552 device_info
553 get_serial_number
554 get_timezone
555 get_consumable
556 get_clean_summary
557 get_dnd_timer
558 get_timer
559 get_status
56 get_clean_summary
560 get_status
561 wifi_stats
562 device_info
563 get_serial_number
564 get_timezone
565 get_consumable
566 get_clean_summary
567 get_dnd_timer
568 get_timer
569 get_status
57 get_dnd_timer
570 get_status
571 wifi_stats
572 device_info
573 get_serial_number
574 get_timezone
575 get_consumable
576 get_clean_summary
577 get_dnd_timer
578 get_timer
579 get_status
58 get_timer
580 get_status
581 wifi_stats
582 device_info
583 get_serial_number
584 get_timezone
585 get_consumable
586 get_clean_summary
587 get_dnd_timer
588 get_timer
589 get_status
59 get_status
590 get_status
591 wifi_stats
592 device_info
593 get_serial_number
594 get_timezone
595 get_consumable
596 get_clean_summary
597 get_dnd_timer
598 get_timer
599 get_status
6 get_clean_summary
60 get_status
600 get_status
601 wifi_stats
602 device_info
603 get_serial_number
604 get_timezone
605 get_consumable
606 get_clean_summary
607 get_dnd_timer
608 get_timer
609 get_status
61 wifi_stats
610 get_status
611 wifi_stats
612 device_info
613 get_serial_number
614 get_timezone
615 get_consumable
616 get_clean_summary
617 get_dnd_timer
618 get_timer
619 get_status
62 device_info
620 get_status
621 wifi_stats
622 device_info
623 get_serial_number
624 get_timezone
625 get_consumable
626 get_clean_summary
627 get_dnd_timer
628 get_timer
629 get_status
63 get_serial_number
630 get_status
631 wifi_stats
632
Argh! Bitte Code Tags verwenden :)
Hast du das hier drin?
attr Mi_Vacuum subType VacuumCleaner
Zitat von: wertz am 26 Oktober 2017, 12:08:20
Hi,
hier der List:
...
UPS, sorry :( soll nicht wieder vorkommen.
attr Mi_Vacuum subType VacuumCleaner
hab ich drin.
Kann es daran liegen dass ich das Modul 72_XiaomiDevice (aus dem ersten Post) auf meinen Win Rechner runtergeladen habe und dann mit WinSCP auf den RPI geschoben habe?
Gibt es eine vorgegebene Vorgehensweise um das modul auf RPI zu kopieren?
Nochmals vielen Dank
Gruß
Tom
Eigentlich nicht. Der Teil sollte passen.
Mach doch mal ein Firmware Update, WiFi Reset und fang nochmal von vorne an, mit neuem Token.
Ich lade heute Abend noch ein Perl Script zur Entschlüsselung des Tokens hoch. Das darfst du dann mal ausprobieren.
Hi Markus,
also:
72_XiaomiDevice.pm nochmal runtergeladen und auf RPI kopiert,
Sauger FW Update auf 3.3.9_003077 gemacht,
Sauger aus der APP gelöscht,
WLan reset gemacht,
Sauger wieder mit APP angelernt,
neues Token ausgelesen,
Sauger neu in Fhem angelegt (mit 96 stelligem Token),
und freu mich wie ein kleines Kind dass es jetzt funktioniert!! :) :) :) :) :)
SUPER!!!, bist echt klasse, Danke, Danke, Danke!!
Nur schade, dass man jetzt die Ursache nicht genau lokalisieren konnte....
Zitat von: wertz am 26 Oktober 2017, 17:45:38
Sauger neu in Fhem angelegt (mit 96 stelligem Token),
Nur schade, dass man jetzt die Ursache nicht genau lokalisieren konnte....
Der erste Teil irritiert mich (hast du was am System geändert?) beim zweiten habe ich die Vermutung dass der Cookie nicht (mehr) gepasst hat.
Schön dass es jetzt klappt!
Hallo Markus,
ich habe in Fhem mit
"Delete this device (Mi_Vacuum)"
den Sauger aus der Config herausgenommen
und dann
define Mi_Vacuum XiaomiDevice 192.168.188.47 75312864253169a8f552559d6868bb27f4529afa45fa4f3a5cf7cea0b043783f0143db63ee66b0cdff9f69917680151e (neuer Token)
attr Mi_Vacuum room 6.1 Sauger
attr Mi_Vacuum stateFormat state
attr Mi_Vacuum subType VacuumCleaner
in Eingabemaske eingetragen und freue mich riesig!!
[Gelöst: Token bei neuer Firmware des Xiaomi Roboters mittels iPhone und MAC/PC auslesen] siehe update unten
Hallo Zusammen
Ich bin gerade etwas verwirrt. Mein Roboter ist angekommen und ich habe ihn mit der originalen App in mein WLAN eingebunden. Danach habe ich ein Update der Firmware gemacht.
Dann wollte ich den Token auslesen. Ich habe es über meiben Raspi probiert aber der Token scheint nicht zu funktionieren. Der Token, der mir angezeigt wird ist auch nur 32 Stellen. Wenn ich es richtig verstanden habe ist der Token aber inzwischen länger?!?
Nun habe ich gelesen, dass man den Token nur über ein itunes Backup erhalten kann. Ist das richtig?
Ich habe mac und iphone zu hause.
Was muss ich jetzt tun:
- Im jetzigen Zustand Backup vom iPhone ziehen?
- Roboter zurücksetzen?
- WLAN reset am Roboter
- Mit der App verbinden?
- Wieder Backup ziehen? Welches Backup braucht man?
- aus dem backup den 96 stelligen Token extrahieren
- diesen 96 stelligen umrechnen auf 32?
- disen umgerechneten 32 Token verwenden
Wann binde ich den Roboter wieder in das Heimnetz WLAN ein?
Danke für eure Hilfe
Update: Habe es jetzt durch ausprobieren herausgefunden:
- Roboter eingerichtet lassen im Heimnetzwerk
- Backup vom iphone machen
- Roboter nicht zurücksetzen und auch kein WLAN reset
- 96 Token aus Backup auslesen
- 96 Token in 32 umrechnen
- 32 Token verwenden - fertig
Ich habe ein Mischung aus diesen beiden Anleitungen verfolgen müssen. Allein mit einer hätte ich nicht verstanden was ich tun soll.
https://forum.smartapfel.de/forum/thread/370-saugroboter-xiaomi-mi-robot-vacuum-token-auslesen/ (hauptsächlich gefolgt)
https://github.com/jghaanstra/com.xiaomi-miio/blob/master/docs/obtain_token_mirobot_new.md (unterstützend bei Fragen)
Gruß.
Mein Roboter kam nun auch an. Ich musste meinen verschlüsseltes Token auch manuell umwandeln, da es automatisch nicht klappte.
Da ich es bisher nicht gefunden habe hier mal mein bisheriges Homebridgemapping:
attr Staubsauger genericDeviceType switch
attr Staubsauger homebridgeMapping On=state,valueOn=/Cleaning/,valueOff=/Docked|Charging/,cmdOn=start,cmdOff=charge
StatusLowBattery=battery,values=ok:BATTERY_LEVEL_NORMAL;;/^.*/:BATTERY_LEVEL_LOW BatteryLevel=batteryLevel
ChargingState=state, values=Charging:1;;/^.*/:0
RotationSpeed=fan_power
Damit wird folgendes dargestellt:
- an (Cleaning)/aus(Docked oder Charging)
- Batterie [Niedrig Warnung & Batterielevel]
- Ladestatus [Ladend/nicht ladend]
- Saugleistung
Die Saugleistung wird aktuell nur angezeigt, kann aber nicht gesetzt werden. Ich bin mir nicht 100% sicher wie das Mapping Homebdrige -> Fhem funktioniert.
Hallo,
ich bekomme demnächst den water purifier 2 der per WLAN angebunden ist. Besteht die Möglichkeit die Hardware auch in dein Modul zu integrieren?
Gruß
Christoph
Sag mir einfach Bescheid wenn du ihn eingerichtet hast, dann geb ich dir meinen Xiaomi Account für die Freigabe und seh mir an was die App lädt.
Hallo,
seit einiger Zeit spammt mir mein Vacuum das Log voll...
2017.11.01 22:09:28 3: Xiaomi.sauger: disconnecting
2017.11.01 22:09:28 2: Xiaomi.sauger: connecting
2017.11.01 22:09:28 3: Xiaomi.sauger: initialized
2017.11.01 22:09:42 2: Xiaomi.sauger: connection timeout
Die Einträge kommen alle 5 Min. Lässt sich das unterbinden, ohne den Verbose-Level anzupassen? Verbindung zum Internet habe ich ihm abgedreht.
LG
Holger
Hallo zusammen,
heute ist mein Roboter angekommen.
Für alle Interessierten:
13.10. Bestellung
20.10. Hermes Meldung "nicht eingetroffen"
30.10. Verteilzentrum Hermes
01.11. Zustellung
Ich habe den Roboter bereits in meinem WLAN.
Nun habe ich zwei Fragen:
1. Wie komme ich unter einem normalen Android an den Token? Die Anleitung im 3. Post hilft mir leider nicht wirklich weiter ...
2. Gibt es ein svg-Icon, das ich direkt in FTUI für den Roboter nutzen kann? Ich habe in den Schriften nichts gefunden ...
Vielen Dank für eure Tipps vorab
Stephan
Hallo Stephan,
warum hilft Dir das nicht wirklich weiter?
Zitat- Aus Android Backup mit MiToolkit, zu finden unter https://github.com/ultrara1n/MiToolkit
Funktioniert bei mir gut, bei normalem Android
Gruß Otto
Hallo Otto,
ja, aber wie hast du das Backup erstellt?
Viele Grüße
Stephan
Ok, ich habe das Geheimnis gefunden. Die Treiber für mein Samsung S7 waren fehlerhaft. Nach der Installation von "ADB-Treiber für Windows" konnte ich das MI Toolkit problemlos nutzen.
Habe mal eine Anfängerfrage zu Raspian / Perl:
Wie installiere / lade ich die benötigten Module??
- JSON libjson-perl
- Digest::MD5 libdigest-md5-perl
- Crypt::CBC libcrypt-cbc-perl
- Crypt::Cipher::AES oder Crypt::Rijndael_PP CPAN
- Crypt::ECB libcrypt-ecb-perl (bei verschlüsseltem Token)
Den Token habe ich jetzt ermittelt mit: 306c4f36386766354c7a653451637752
LG
Wolfgang
Hallo Wolfgang,
im Terminal (putty)
sudo cpan install Crypt::Cipher::AES
sudo apt-get update
sudo apt-get install libjson-perl libdigest-md5-perl libcrypt-cbc-perl libcrypt-ecb-perl
Gruß Otto
Hallo Otto!
Komplett wäre es dann wie folgt ?
sudo cpan install JSON
sudo cpan install Digest::MD5
sudo cpan install Crypt::CBC
sudo cpan install Crypt::Cipher::AES
sudo cpan install Crypt::ECB
sudo apt-get update
sudo apt-get install libjson-perl libdigest-md5-perl libcrypt-cbc-perl libcrypt-ecb-perl
Muss für "CPAN" nichts an den letzten Installstring angehängt werden?
Die Datei "72_XiaomiDevice.pm" dann ins Verzeichnis mit den restlichen *.pm
Dann evtl. den Raspi einmal neu starten?
und folgende zwei Zeilen in meinem Fall in fhem eingeben:
define vacuum XiaomiDevice 192.168.178.57 306c4f36386766354c7a653451637752
attr vacuum subType VacuumCleaner
LG
Wolfgang
Nein, mein Code war komplett. Man installiert entweder per apt-get das debian Paket oder per cpan das Perl Modul.
Ich bevorzuge apt-get, aber manchmal gibt es die Perl Module nicht als debian Paket.
Die Modul Datei kommt nach /opt/fhem/FHEM
Gruß Otto
So wie Otto es erklärt hat.
ECB brauchst du nur bei verschlüsseltem Token.
CPAN nur wenn es kein Paket gibt.
Damit gibt es kein uninstall.
Also irgendwie ist das komisch!!
Zitat von: vonvogel am 05 November 2017, 16:16:25
Also irgendwie ist das komisch!!
Was?
Und warum?
Gruß, Joachim
Na, erster Versuch und sofort läuft alles wie geplant! ;D
Ich sollte heute Lotto spielen oder sonst ein Glücksspiel 8)
Super Arbeit! Vielen Dank für die Infos!
Gibt es irgendwo eine Doku was sich hinter den einzelnen Optionen bei Set verbirgt?
Funktionieren die Get-Optionen schon? Was müsste z.B. bei map angezeigt werden?
LG
Wolfgang
Die Modulhilfe sollte teilweise Aufschluss geben.
map tut allerdings nichts sinnvolles, da wir an die Maps aus der Xiaomi Cloud nicht rankommen.
Hallo,
kann sein, dass es noch nie da war ;), aber irgendwie vermisse ich im FHEM-Webinterface beim Device die Möglichkeit nach Auswahl von
set XIAOMI_VACUUM reset_consumable
entweder
filter/mainbrush/sidebrush/sensors
in einem Auswahlfeld auswählen oder zumindest in einem Textfeld eingeben zu können.
Bei mir sieht es aus wie im Anhang.
Nur bei mir?
;)
Viele Grüße,
Andreas
Nein ist generell so..Ich denke die schnittstelle gibt nicht mehr her,aber Marcus kann da bestimmt mehr zu sagen.
Gruß
Hallo Zusammen,
ich hab gestern zwei Bedside Lampen mit Wifi bekommen.
Nun frage ich mich ob ich das Modul hier benutzen soll oder doch das Yeelight Modul.
Auf den ersten Anschein macht das YeeLight Modul mehr Sinn, da die Bedside ja RGB kann und bei dem Modul hier scheint es zu fehlen.
Sehen ich das richtig?
Den Vacuum Staubsauger bekomm ich hoffentlich die Tage auch noch geliefert.
Wird das Modul hier auch bald offiziell verfügbar sein?
Gruß Robert
Hallo Markus,
wie angedeutet habe ich mir den water Purifier 2 geholt. Da ich beruflich in China unterwegs war auch den neuen vacuum cleaner 2. Einfach genial der neue Sauger.
Kannst du mir bitte deinen Account freigeben damit du drauf gucken kannst?
Gruß
Christoph
Hallo Forum,
habe Token ausgelesen und Device angelegt. Der Staubsauger ist und bleibt auf Status disconnect.
Ich weiß leider nicht mehr weiter und wäre über weitere Tipps dankbar.
Firmware: 7077
Internals:
DEF 192.168.178.87 375768385557325244747930536c3338
FD 5
NAME Mi_Vacuum
NR 129
STATE disconnected
TYPE XiaomiDevice
device_type unknown
READINGS:
2017-11-24 22:45:45 state disconnected
helper:
ConnectionState disconnected
crypt AES
delay 300
dev 03d9
id e383
ip 192.168.178.87
last_read 1511559931
packetid 170
port 54321
sequence 0
token 375768385557325244747930536c3338
packet:
1 wifi_stats
10 get_status
100 get_status
101 wifi_stats
102 device_info
103 get_serial_number
104 get_timezone
105 get_consumable
106 get_clean_summary
107 get_dnd_timer
108 get_timer
109 get_status
11 wifi_stats
110 get_status
111 wifi_stats
112 device_info
113 get_serial_number
114 get_timezone
115 get_consumable
116 get_clean_summary
117 get_dnd_timer
118 get_timer
119 get_status
12 device_info
120 get_status
121 wifi_stats
122 device_info
123 get_serial_number
124 get_timezone
125 get_consumable
126 get_clean_summary
127 get_dnd_timer
128 get_timer
129 get_status
13 get_serial_number
130 get_status
131 wifi_stats
132 device_info
133 get_serial_number
134 get_timezone
135 get_consumable
136 get_clean_summary
137 get_dnd_timer
138 get_timer
139 get_status
14 get_timezone
140 get_status
141 wifi_stats
142 device_info
143 get_serial_number
144 get_timezone
145 get_consumable
146 get_clean_summary
147 get_dnd_timer
148 get_timer
149 get_status
15 get_consumable
150 get_status
151 wifi_stats
152 device_info
153 get_serial_number
154 get_timezone
155 get_consumable
156 get_clean_summary
157 get_dnd_timer
158 get_timer
159 get_status
16 get_clean_summary
160 get_status
161 wifi_stats
162 device_info
163 get_serial_number
164 get_timezone
165 get_consumable
166 get_clean_summary
167 get_dnd_timer
168 get_timer
169 get_status
17 get_dnd_timer
170 get_status
171 wifi_stats
172 device_info
173 get_serial_number
174 get_timezone
175 get_consumable
176 get_clean_summary
177 get_dnd_timer
178 get_timer
179 get_status
18 get_timer
180 get_status
181 wifi_stats
182 device_info
183 get_serial_number
184 get_timezone
185 get_consumable
186 get_clean_summary
187 get_dnd_timer
188 get_timer
189 get_status
19 get_status
190 get_status
191 wifi_stats
192 device_info
193 get_serial_number
194 get_timezone
195 get_consumable
196 get_clean_summary
197 get_dnd_timer
198 get_timer
199 get_status
2 device_info
20 get_status
200 get_status
201 wifi_stats
202 device_info
203 get_serial_number
204 get_timezone
205 get_consumable
206 get_clean_summary
207 get_dnd_timer
208 get_timer
209 get_status
21 wifi_stats
210 get_status
211 wifi_stats
212 device_info
213 get_serial_number
214 get_timezone
215 get_consumable
216 get_clean_summary
217 get_dnd_timer
218 get_timer
219 get_status
22 device_info
220 get_status
221 wifi_stats
222 device_info
223 get_serial_number
224 get_timezone
225 get_consumable
226 get_clean_summary
227 get_dnd_timer
228 get_timer
229 get_status
23 get_serial_number
24 get_timezone
25 get_consumable
26 get_clean_summary
27 get_dnd_timer
28 get_timer
29 get_status
3 get_serial_number
30 get_status
31 wifi_stats
32 device_info
33 get_serial_number
34 get_timezone
35 get_consumable
36 get_clean_summary
37 get_dnd_timer
38 get_timer
39 get_status
4 get_timezone
40 get_status
41 wifi_stats
42 device_info
43 get_serial_number
44 get_timezone
45 get_consumable
46 get_clean_summary
47 get_dnd_timer
48 get_timer
49 get_status
5 get_consumable
50 get_status
51 wifi_stats
52 device_info
53 get_serial_number
54 get_timezone
55 get_consumable
56 get_clean_summary
57 get_dnd_timer
58 get_timer
59 get_status
6 get_clean_summary
60 get_status
61 wifi_stats
62 device_info
63 get_serial_number
64 get_timezone
65 get_consumable
66 get_clean_summary
67 get_dnd_timer
68 get_timer
69 get_status
7 get_dnd_timer
70 get_status
71 wifi_stats
72 device_info
73 get_serial_number
74 get_timezone
75 get_consumable
76 get_clean_summary
77 get_dnd_timer
78 get_timer
79 get_status
8 get_timer
80 get_status
81 wifi_stats
82 device_info
83 get_serial_number
84 get_timezone
85 get_consumable
86 get_clean_summary
87 get_dnd_timer
88 get_timer
89 get_status
9 get_status
90 get_status
91 wifi_stats
92 device_info
93 get_serial_number
94 get_timezone
95 get_consumable
96 get_clean_summary
97 get_dnd_timer
98 get_timer
99 get_status
Attributes:
stateFormat state
subType VacuumCleaner
Zitat von: 8PABenny am 24 November 2017, 22:47:36
Hallo Forum,
habe Token ausgelesen und Device angelegt. Der Staubsauger ist und bleibt auf Status disconnect.
Ich weiß leider nicht mehr weiter und wäre über weitere Tipps dankbar.
Firmware: 7077
Genau dieses Problem hatte ich bis gerade eben auch, konnte es lösen.
In Fhem gehst du mal zu deinem Staubsauger,
dann öffne die Mi App und gib per App den Befehl , dass der Roboter saugen soll.
Sobald er anfängt machst du mal einen
get data
.
So konnte ich ihn eben von disconnect auf einen anderen Status bringen.
Leider keinen Erfolg.
Gesendet von meinem MI 5 mit Tapatalk
Zitat von: Markus M. am 24 Juli 2017, 15:39:52
Noch nicht.
Ich will den Code noch ein wenig überarbeiten, danach kommt das Modul ins FHEM SVN.
Gibt es hierzu schon Neuigkeiten? Ich fände beides gut, Update per FHEM-SVN oder ins github/gitlab.
PS: Danke für das coole Modul!
Hallo Markus,
auch von meiner Seite vielen Dank für das tolle Modul. Klappt bei mir soweit einwandfrei.
Ich habe an dieser Stelle jedoch nochmals die Frage (wurde zuvor schon von zwei Vorrednern gestellt - siehe Zitat),
wie du deinen Sauger auch ohne Internetverbindung per FHEM (also udp/54321) steuerst?
Das funktioniert bei mir zumindest nicht...
Sobald man dem Teil die China-Cloud wegnimmt, wechselt er auf Status "disconnected" und lässt sich nur noch per Knopfdruck steuern.
Firmware: 3.3.9_003077
Zitat:
Zitat von: MadMax-FHEM am 06 Juni 2017, 22:03:18
Hi,
hat der Roboter Verbindung zum Internet?
Ich habe das Gefühl, dass wenn ich den Roboter vom Internet "fern halte", habe ich auch ab und an disconnected...
...kann aber auch an meinem Router liegen (morgen kommt der neue Router :) ), hatte ja auch Probleme mit dem FW-Update (aber noch von "ganz alter" auf "alte" ;) )...
Hab dann einen Testrouter (mit DD-WRT) mal ans Internetmodem und damit ging der FW-Update dann...
Solange ich ihn dann auch mit dem eigentlichen Router am Internet gelassen habe war er eigentlich immer "connected" und sofort erreichbar...
...seit ich ihn nicht mehr am Internet habe, habe ich (gefühlt) auch ab und an mal disconnected...
Aber wie gesagt mit dem aktuellen Router gebe ich da mal nichts drauf...
Aber ich werde den Update auf die neueste FW erst mal lassen...
...bzw. wie gesagt ohne Internet eh schwer und mit dem jetzigen Router vermutlich eh wieder problematisch/unmöglich...
Gruß, Joachim
Zitat von: Markus M. am 30 Oktober 2017, 20:49:50
Sag mir einfach Bescheid wenn du ihn eingerichtet hast, dann geb ich dir meinen Xiaomi Account für die Freigabe und seh mir an was die App lädt.
Hallo Markus ,
bin bereit, alles eingerichtet.
Gruß Christoph
Zitat von: Willtho am 29 Oktober 2017, 11:41:56
Mein Roboter kam nun auch an. Ich musste meinen verschlüsseltes Token auch manuell umwandeln, da es automatisch nicht klappte.
Da ich es bisher nicht gefunden habe hier mal mein bisheriges Homebridgemapping:
attr Staubsauger genericDeviceType switch
attr Staubsauger homebridgeMapping On=state,valueOn=/Cleaning/,valueOff=/Docked|Charging/,cmdOn=start,cmdOff=charge
StatusLowBattery=battery,values=ok:BATTERY_LEVEL_NORMAL;;/^.*/:BATTERY_LEVEL_LOW BatteryLevel=batteryLevel
ChargingState=state, values=Charging:1;;/^.*/:0
RotationSpeed=fan_power
Vll direkt?
https://www.npmjs.com/package/homebridge-xiaomi-mi-robot-vacuum
Damit wird folgendes dargestellt:
- an (Cleaning)/aus(Docked oder Charging)
- Batterie [Niedrig Warnung & Batterielevel]
- Ladestatus [Ladend/nicht ladend]
- Saugleistung
Die Saugleistung wird aktuell nur angezeigt, kann aber nicht gesetzt werden. Ich bin mir nicht 100% sicher wie das Mapping Homebdrige -> Fhem funktioniert.
Zitat von: ambiman am 27 November 2017, 21:00:04Sobald man dem Teil die China-Cloud wegnimmt, wechselt er auf Status "disconnected" und lässt sich nur noch per Knopfdruck steuern.
Das lässt sich leider nicht ändern. Der Staubsauger nimmt erst lokale Verbindungen entgegen nachdem er mit der Cloud verbunden wurde.
Zitat von: slawekking am 27 November 2017, 22:28:01
bin bereit, alles eingerichtet.
Du hast ne PM
Zitat von: Markus M. am 01 Dezember 2017, 23:54:48
Das lässt sich leider nicht ändern. Der Staubsauger nimmt erst lokale Verbindungen entgegen nachdem er mit der Cloud verbunden wurde.
Das kann ich so nicht bestätigen. Ich habe den Sauger, als er ankam gleich mit dem Python-Script in mein Gast WLAN eingebunden, welchem ich zuvor den Inet Zugang gesperrt habe. Der Sauger nimmt Befehle durch FHEM entgegen (sprich, ich kann starten, stoppen zum Dock schicken), zeigt aber trotzdem disconnected an (da er ja kein Inet hat).
Zitat von: Franzl am 03 Dezember 2017, 10:31:57
Das kann ich so nicht bestätigen. Ich habe den Sauger, als er ankam gleich mit dem Python-Script in mein Gast WLAN eingebunden, welchem ich zuvor den Inet Zugang gesperrt habe. Der Sauger nimmt Befehle durch FHEM entgegen (sprich, ich kann starten, stoppen zum Dock schicken), zeigt aber trotzdem disconnected an (da er ja kein Inet hat).
Dito
hmm :(
Bei mir klappts irgendwie nicht.
"Encryption cipher error"
im log:
Block doesn't look standard padded.
2017.12.03 18:06:05 1: vacuum: token decryption failed
2017.12.03 18:06:05 3: vacuum: token decryption using Crypt::Cipher::AES
2017.12.03 18:06:05 3: vacuum: initialized, using AES
list vacuum Internals:
DEF 192.168.178.40 a8adc186c8e03c68a53394d9f425271434ace083cad67abf3e13afb79c7216970143db63ee66b0cdff9f69917680151e
NAME vacuum
NR 830
STATE Encryption cipher error
TYPE XiaomiDevice
Helper:
crypt AES
delay 0
ip 192.168.178.40
packetid 1
port 54321
Powermap:
Readingsdesc:
Pm_consumption:
rtype w
Pm_energy:
rtype whr
Attributes:
disable 1
room xiaomi
stateFormat state
subType VacuumCleaner
jmd eine Idee oder (m)einen entschlüsselten token? ggf tips how to decode?
die notwendigen module sind installiert. mac Os-X
merci, Alex
Probier mal
4943506d4c56324636315978746a4844
Xiaomi verschlüsselt mittlerweile übrigens auch die Plugin Pakete.
Es gibt also wohl keine Chance mehr, neue Gerätetypen hinzuzufügen oder bestehende zu erweitern :(
Ich hab in einem YouTube Video gehört das xiaomi sich mehr öffnen will.
Ich glaub das war drin https://youtu.be/I9x7O6biwg8
Gesendet von iPhone mit Tapatalk Pro
Danke Markus,
hat geklappt! Freu ;D
dann wird der kleine roborock demnächst sehr fleissig sein wenn wir aus dem haus sind...
Zitat von: Omega am 01 November 2017, 22:16:59
Hallo,
seit einiger Zeit spammt mir mein Vacuum das Log voll...
2017.11.01 22:09:28 3: Xiaomi.sauger: disconnecting
2017.11.01 22:09:28 2: Xiaomi.sauger: connecting
2017.11.01 22:09:28 3: Xiaomi.sauger: initialized
2017.11.01 22:09:42 2: Xiaomi.sauger: connection timeout
Die Einträge kommen alle 5 Min. Lässt sich das unterbinden, ohne den Verbose-Level anzupassen? Verbindung zum Internet habe ich ihm abgedreht.
LG
Holger
Hallo,
habe das selbe Problem. Bei mir ist es allerdings alle 10Minuten mit folgenden Einträgen:
2017.12.09 23:27:14 2: Saugroboter: connection timeout
2017.12.09 23:32:14 3: Saugroboter: disconnecting
2017.12.09 23:32:14 2: Saugroboter: connecting
2017.12.09 23:32:14 3: Saugroboter: initialized
2017.12.09 23:32:18 3: Saugroboter: Internet access is blocked, no device info available
Auch bei mir ist das Internet abgedreht. Wie kann ich verhindern das es weiter das Log zumüllt?
Vielen Dank!
Viele Grüße
Philipp
attr verbose 1
Zumindest so lange, bis es bessere Lösungen gibt.
LG
Holger
Habe am Montag auch einen Mi Robot bekommen. Richtig gutes Gerät! Freundin meinte, sie hat mich noch nie mit so einer Begeisterung staubsaugen gesehen ;)
Auf jeden Fall, Modul installiert, Token mit dem MiToolkit ausgelesen und in FHEM definiert. Hat alles einwandfrei geklappt (Firmware 3.3.9_003077). Gerät hat inzwischen keine Verbindung ins Internet mehr, funktioniert aber bisher immer noch problemlos.
Danke Markus für das Modul!
Wie macht ihr das eigentlich? Hängt der bei euch dauernd am Strom oder nur, wenn er laden soll?
Ich klemme meinen nur automatisch ab wenn wir im Urlaub sind. Ansonsten hängt er dauerhaft an Strom und Netz.
Meiner hängt auch dauerhaft am Netz, ich hatte mal getestet ihn abzuschalten, aber er entlädt sich recht schnell...
Wenn er am Netz hängt, braucht er ca. 60W/24H, also 2,5W/h...
Finde ich jetzt in Ordnung, wenn man bedenkt das manch ein elektronisches Gerät im Standby ca 5-10W/h braucht...
Grüße Marcel
Zitat von: drhirn am 13 Dezember 2017, 12:59:21Gerät hat inzwischen keine Verbindung ins Internet mehr, funktioniert aber bisher immer noch problemlos.
Bisher ist inzwischen leider vorbei ;). Status "disconnected" und lässt sich nur noch sporadisch via FHEM steuern. Schade irgendwie.
Zitat von: drhirn am 15 Dezember 2017, 11:45:36
Bisher ist inzwischen leider vorbei ;). Status "disconnected" und lässt sich nur noch sporadisch via FHEM steuern. Schade irgendwie.
Ja, habe ich ebenfalls festgestellt. Meiner hat mittlerweile auch keinen nativen Internetaccess mehr - lediglich DNS.
IM FHEM Log sieht man über eine ganze Weile folgendes:
2017.12.15 06:17:10.131 3: mo_robot: Internet access is blocked, no device info available
2017.12.15 06:22:25.974 2: mo_robot: connection timeout
2017.12.15 06:27:25.978 2: mo_robot: connection timeout
2017.12.15 06:27:26.001 3: mo_robot: disconnecting
2017.12.15 06:27:26.002 2: mo_robot: connecting
2017.12.15 06:27:26.007 3: mo_robot: initialized
2017.12.15 06:27:40.036 2: mo_robot: connection timeout
2017.12.15 06:32:46.040 2: mo_robot: connection timeout
2017.12.15 06:37:46.047 2: mo_robot: connection timeout
2017.12.15 06:42:40.068 3: mo_robot: disconnecting
2017.12.15 06:42:40.070 2: mo_robot: connecting
2017.12.15 06:42:40.075 3: mo_robot: initialized
2017.12.15 06:42:54.103 2: mo_robot: connection timeout
2017.12.15 06:48:00.108 2: mo_robot: connection timeout
2017.12.15 06:53:00.135 3: mo_robot: disconnecting
2017.12.15 06:53:00.137 2: mo_robot: connecting
2017.12.15 06:53:00.142 3: mo_robot: initialized
2017.12.15 06:53:14.165 2: mo_robot: connection timeout
2017.12.15 06:58:14.207 3: mo_robot: disconnecting
2017.12.15 06:58:14.209 2: mo_robot: connecting
2017.12.15 06:58:14.213 3: mo_robot: initialized
2017.12.15 06:58:28.239 2: mo_robot: connection timeout
2017.12.15 07:03:34.620 2: mo_robot: connection timeout
2017.12.15 07:08:28.269 3: mo_robot: disconnecting
2017.12.15 07:08:28.270 2: mo_robot: connecting
2017.12.15 07:08:28.275 3: mo_robot: initialized
2017.12.15 07:08:32.699 3: mo_robot: Internet access is blocked, no device info available
2017.12.15 07:13:48.308 2: mo_robot: connection timeout
2017.12.15 07:18:48.338 3: mo_robot: disconnecting
2017.12.15 07:18:48.339 2: mo_robot: connecting
2017.12.15 07:18:48.344 3: mo_robot: initialized
2017.12.15 07:18:52.522 3: mo_robot: Internet access is blocked, no device info available
2017.12.15 07:24:08.374 2: mo_robot: connection timeout
2017.12.15 07:29:08.402 3: mo_robot: disconnecting
2017.12.15 07:29:08.403 2: mo_robot: connecting
2017.12.15 07:29:08.408 3: mo_robot: initialized
2017.12.15 07:29:12.529 3: mo_robot: Internet access is blocked, no device info available
2017.12.15 07:34:28.440 2: mo_robot: connection timeout
2017.12.15 07:39:28.445 2: mo_robot: connection timeout
2017.12.15 07:39:28.467 3: mo_robot: disconnecting
2017.12.15 07:39:28.468 2: mo_robot: connecting
2017.12.15 07:39:28.473 3: mo_robot: initialized
2017.12.15 07:39:42.505 2: mo_robot: connection timeout
2017.12.15 07:49:48.511 2: mo_robot: connection timeout
2017.12.15 07:54:42.537 3: mo_robot: disconnecting
2017.12.15 07:54:42.538 2: mo_robot: connecting
2017.12.15 07:54:42.543 3: mo_robot: initialized
2017.12.15 07:54:56.574 2: mo_robot: connection timeout
2017.12.15 08:00:02.578 2: mo_robot: connection timeout
2017.12.15 08:04:56.605 3: mo_robot: disconnecting
2017.12.15 08:04:56.607 2: mo_robot: connecting
2017.12.15 08:04:56.612 3: mo_robot: initialized
2017.12.15 08:05:10.649 2: mo_robot: connection timeout
2017.12.15 08:10:10.677 3: mo_robot: disconnecting
2017.12.15 08:10:10.679 2: mo_robot: connecting
2017.12.15 08:10:10.684 3: mo_robot: initialized
2017.12.15 08:10:14.893 3: mo_robot: Internet access is blocked, no device info available
2017.12.15 08:15:30.716 2: mo_robot: connection timeout
2017.12.15 08:20:30.745 3: mo_robot: disconnecting
2017.12.15 08:20:30.746 2: mo_robot: connecting
2017.12.15 08:20:30.751 3: mo_robot: initialized
2017.12.15 08:20:34.930 3: mo_robot: Internet access is blocked, no device info available
2017.12.15 08:25:50.782 2: mo_robot: connection timeout
2017.12.15 08:30:50.810 3: mo_robot: disconnecting
2017.12.15 08:30:50.811 2: mo_robot: connecting
2017.12.15 08:30:50.816 3: mo_robot: initialized
2017.12.15 08:31:04.841 2: mo_robot: connection timeout
2017.12.15 08:36:04.872 3: mo_robot: disconnecting
2017.12.15 08:36:04.873 2: mo_robot: connecting
2017.12.15 08:36:04.878 3: mo_robot: initialized
2017.12.15 08:36:18.905 2: mo_robot: connection timeout
2017.12.15 08:41:24.909 2: mo_robot: connection timeout
2017.12.15 08:46:18.932 3: mo_robot: disconnecting
2017.12.15 08:46:18.933 2: mo_robot: connecting
2017.12.15 08:46:18.938 3: mo_robot: initialized
2017.12.15 08:46:23.132 3: mo_robot: Internet access is blocked, no device info available
2017.12.15 08:51:38.975 2: mo_robot: connection timeout
2017.12.15 08:56:38.981 2: mo_robot: connection timeout
2017.12.15 08:56:39.003 3: mo_robot: disconnecting
2017.12.15 08:56:39.005 2: mo_robot: connecting
2017.12.15 08:56:39.009 3: mo_robot: initialized
2017.12.15 08:56:53.038 2: mo_robot: connection timeout
2017.12.15 09:06:59.056 2: mo_robot: connection timeout
2017.12.15 09:11:53.087 3: mo_robot: disconnecting
2017.12.15 09:11:53.088 2: mo_robot: connecting
2017.12.15 09:11:53.093 3: mo_robot: initialized
2017.12.15 09:11:57.302 3: mo_robot: Internet access is blocked, no device info available
2017.12.15 09:17:13.122 2: mo_robot: connection timeout
2017.12.15 09:22:13.149 3: mo_robot: disconnecting
2017.12.15 09:22:13.151 2: mo_robot: connecting
2017.12.15 09:22:13.156 3: mo_robot: initialized
2017.12.15 09:22:17.344 3: mo_robot: Internet access is blocked, no device info available
2017.12.15 09:27:33.187 2: mo_robot: connection timeout
2017.12.15 09:32:33.192 2: mo_robot: connection timeout
2017.12.15 09:32:33.216 3: mo_robot: disconnecting
2017.12.15 09:32:33.217 2: mo_robot: connecting
Steuern (Start, stop, charging etc.) konnte ich ihn bislang noch - vielleicht war es auch nur gutes Timing !?
Ich hab dasselbe Problem wie Alex ein paar Threads vorher. Mit dem einzigen Unterschied, dass es eigentlich bei mir mal lief, leider seit dem 3.10., als ich das WLAN mal neu eingerichtet habe, nicht mehr.
Ich habe eigentlich ein frisches, unverschlüsseltes Backup von meinem iPad gezogen und den Code auf http://aes.online-domain-tools.com/ dechiffriert. Und ständig bis 32 oder 96 gezählt :-/.
Meine Internals sagen folgendes:
Internals:
DEF 10.103.247.25 3538455739716b63434576644f4d4563
NAME Erika
NR 488
STATE Encryption cipher error
TYPE XiaomiDevice
Readings:
2017-10-03 13:23:40 battery ok
2017-10-03 13:23:40 batteryLevel 70
2017-10-03 13:15:21 consumables_filter 81
2017-10-03 13:15:21 consumables_main_brush 90
2017-10-03 13:15:21 consumables_sensors 7
2017-10-03 13:15:21 consumables_side_brush 86
2017-10-02 06:27:31 device_firmware 3.3.9_003077
2017-10-02 06:27:31 device_uptime 3.35
2017-10-03 13:23:40 dnd off
2017-10-03 13:15:21 dnd_enabled on
2017-10-03 13:15:21 dnd_end 08:00
2017-10-03 13:15:21 dnd_start 22:00
2017-10-03 13:23:40 error none
2017-10-03 13:23:40 error_code None
2017-10-03 13:23:40 fan_power 60
2017-10-03 13:15:21 history_0 2017-10-03 12:16:21: 11.73m² in 0.37h, finished cleaning
2017-10-03 13:15:21 history_1 2017-10-03 09:49:37: 26.19m² in 0.68h, finished cleaning
2017-10-03 13:15:21 history_2 2017-10-03 09:45:26: 1.55m² in 0.05h, finished cleaning
2017-10-03 13:15:21 history_3 2017-10-03 08:27:16: 24.29m² in 0.44h, finished cleaning
2017-10-03 13:15:21 history_4 2017-10-02 18:11:16: 11.37m² in 0.33h, finished cleaning
2017-10-03 13:15:21 history_5 2017-10-01 17:15:49: 60.22m² in 1.47h, finished cleaning
2017-10-03 13:15:21 history_6 2017-10-01 09:45:20: 4.27m² in 0.04h, not finished
2017-10-03 13:15:21 history_7 2017-10-01 07:25:09: 39.03m² in 0.80h, not finished
2017-10-03 13:15:21 history_8 2017-09-30 10:58:25: 20.21m² in 0.36h, not finished
2017-10-03 13:15:21 history_9 2017-09-30 10:00:30: 36.95m² in 0.65h, finished cleaning
2017-10-03 13:23:40 in_cleaning no
2017-10-03 13:23:40 last_clean_area 12.06
2017-10-03 13:23:40 last_clean_time 0.34
2017-10-03 13:15:21 last_timestamp 1507025781
2017-10-03 13:23:40 map_present yes
2017-10-03 13:15:19 serial_number 1387100554767
2017-11-11 15:20:21 state disconnected
2017-10-03 13:15:19 timezone Europe/Berlin
2017-10-03 13:15:21 total_clean_area 1237.61
2017-10-03 13:15:21 total_clean_time 27.69
2017-10-03 13:15:21 total_cleans 50
2017-10-03 13:23:40 wifi_auth_fail_count 0
2017-10-03 13:23:40 wifi_conn_fail_count 0
2017-10-03 13:23:40 wifi_conn_success_count 1
2017-10-03 13:23:40 wifi_dhcp_fail_count 0
2017-10-02 06:27:31 wifi_rssi -64
2017-10-03 13:23:40 wifi_state connecting
Helper:
crypt AES
delay 0
ip 10.103.247.25
packetid 1
port 54321
token 3538455739716b63434576644f4d4563
Attributes:
disable 1
genericDeviceType switch
homebridgeMapping On=state,valueOn=/Cleaning/,valueOff=/Docked|Charging/,cmdOn=start,cmdOff=charge
StatusLowBattery=battery,values=ok:BATTERY_LEVEL_NORMAL;;/^.*/:BATTERY_LEVEL_LOW BatteryLevel=batteryLevel
ChargingState=state, values=Charging:1;;/^.*/:0
RotationSpeed=fan_power
room Homekit,Wohnzimmer
stateFormat state
subType VacuumCleaner
Der chiffrierte Code ist eigentlich: 749ca78cf366ac92d0a47770f665fcfb1fd653df23b3cec847c709a523597f720143db63ee66b0cdff9f69917680151e
Über jede Hilfe freue ich mich. "Erika" ist ganz normal über das Internet verbunden und auf Version 3.3.9_003077. Das letzte Update (_3094) hab ich extra noch nicht gemacht, kann ja nur schlechter werden ;D
Habe gestern den Vacuum1 bekommen.
Heute bin ich dazu gekommen, den Token auszulesen und auf die neuste Firmware aufzuspielen.
Bei mir scheint alles wie gewünscht zu funktionieren.
Eine Frage habe ich dennoch, hat jemand schon ein passende homebridge mapping?
Danke und Gruß Robert
Achtung, an alle die bei Gearbeast bestellt haben:
https://www.android-hilfe.de/news/achtung-gearbest-e-mails-und-passwoerter-unverschluesselt-online.859552.html?utm_content=buffer0ddc8&utm_medium=social&utm_source=facebook.com&utm_campaign=buffer
Info erhalten durch den Telegram FHEM Chat
Tapatalk iPhone, daher kurz gehalten.
Zitat von: ambiman am 15 Dezember 2017, 12:39:22
Steuern (Start, stop, charging etc.) konnte ich ihn bislang noch - vielleicht war es auch nur gutes Timing !?
War in der Tat nur gutes Timing, ohne funktionierende Internetverbindung (DNS nicht ausreichend) kann FHEM nur sporadisch im lokalen LAN per udp/54321 mit dem Roboter kommunizieren.
Hat zufällig jemand einen Xiaomi Vacuum Gen2, den ich mir mal *ausleihen* könnte? Meiner ist leider noch unterwegs, aber ich möchte in den nächsten Tagen was cooles damit machen. Am liebsten wäre mir das Ausleihen in Leipzig am Ende des Jahres...
Zitat von: Willtho am 29 Oktober 2017, 11:41:56
Mein Roboter kam nun auch an. Ich musste meinen verschlüsseltes Token auch manuell umwandeln, da es automatisch nicht klappte.
Da ich es bisher nicht gefunden habe hier mal mein bisheriges Homebridgemapping:
attr Staubsauger genericDeviceType switch
attr Staubsauger homebridgeMapping On=state,valueOn=/Cleaning/,valueOff=/Docked|Charging/,cmdOn=start,cmdOff=charge
StatusLowBattery=battery,values=ok:BATTERY_LEVEL_NORMAL;;/^.*/:BATTERY_LEVEL_LOW BatteryLevel=batteryLevel
ChargingState=state, values=Charging:1;;/^.*/:0
RotationSpeed=fan_power
Damit wird folgendes dargestellt:
- an (Cleaning)/aus(Docked oder Charging)
- Batterie [Niedrig Warnung & Batterielevel]
- Ladestatus [Ladend/nicht ladend]
- Saugleistung
Die Saugleistung wird aktuell nur angezeigt, kann aber nicht gesetzt werden. Ich bin mir nicht 100% sicher wie das Mapping Homebdrige -> Fhem funktioniert.
Hallo Willtho,
danke für dein Homebridge Mapping.
Hast du dazu noch etwas raus bekommen?
Danke und Gruß Robert
Zitat von: Fhemschorsch am 15 Dezember 2017, 21:08:51
Ich hab dasselbe Problem wie Alex ein paar Threads vorher. Mit dem einzigen Unterschied, dass es eigentlich bei mir mal lief, leider seit dem 3.10., als ich das WLAN mal neu eingerichtet habe, nicht mehr.
Ich habe eigentlich ein frisches, unverschlüsseltes Backup von meinem iPad gezogen und den Code auf http://aes.online-domain-tools.com/ dechiffriert. Und ständig bis 32 oder 96 gezählt :-/.
Meine Internals sagen folgendes:
Internals:
DEF 10.103.247.25 3538455739716b63434576644f4d4563
NAME Erika
NR 488
STATE Encryption cipher error
TYPE XiaomiDevice
Readings:
2017-10-03 13:23:40 battery ok
2017-10-03 13:23:40 batteryLevel 70
2017-10-03 13:15:21 consumables_filter 81
2017-10-03 13:15:21 consumables_main_brush 90
2017-10-03 13:15:21 consumables_sensors 7
2017-10-03 13:15:21 consumables_side_brush 86
2017-10-02 06:27:31 device_firmware 3.3.9_003077
2017-10-02 06:27:31 device_uptime 3.35
2017-10-03 13:23:40 dnd off
2017-10-03 13:15:21 dnd_enabled on
2017-10-03 13:15:21 dnd_end 08:00
2017-10-03 13:15:21 dnd_start 22:00
2017-10-03 13:23:40 error none
2017-10-03 13:23:40 error_code None
2017-10-03 13:23:40 fan_power 60
2017-10-03 13:15:21 history_0 2017-10-03 12:16:21: 11.73m² in 0.37h, finished cleaning
2017-10-03 13:15:21 history_1 2017-10-03 09:49:37: 26.19m² in 0.68h, finished cleaning
2017-10-03 13:15:21 history_2 2017-10-03 09:45:26: 1.55m² in 0.05h, finished cleaning
2017-10-03 13:15:21 history_3 2017-10-03 08:27:16: 24.29m² in 0.44h, finished cleaning
2017-10-03 13:15:21 history_4 2017-10-02 18:11:16: 11.37m² in 0.33h, finished cleaning
2017-10-03 13:15:21 history_5 2017-10-01 17:15:49: 60.22m² in 1.47h, finished cleaning
2017-10-03 13:15:21 history_6 2017-10-01 09:45:20: 4.27m² in 0.04h, not finished
2017-10-03 13:15:21 history_7 2017-10-01 07:25:09: 39.03m² in 0.80h, not finished
2017-10-03 13:15:21 history_8 2017-09-30 10:58:25: 20.21m² in 0.36h, not finished
2017-10-03 13:15:21 history_9 2017-09-30 10:00:30: 36.95m² in 0.65h, finished cleaning
2017-10-03 13:23:40 in_cleaning no
2017-10-03 13:23:40 last_clean_area 12.06
2017-10-03 13:23:40 last_clean_time 0.34
2017-10-03 13:15:21 last_timestamp 1507025781
2017-10-03 13:23:40 map_present yes
2017-10-03 13:15:19 serial_number 1387100554767
2017-11-11 15:20:21 state disconnected
2017-10-03 13:15:19 timezone Europe/Berlin
2017-10-03 13:15:21 total_clean_area 1237.61
2017-10-03 13:15:21 total_clean_time 27.69
2017-10-03 13:15:21 total_cleans 50
2017-10-03 13:23:40 wifi_auth_fail_count 0
2017-10-03 13:23:40 wifi_conn_fail_count 0
2017-10-03 13:23:40 wifi_conn_success_count 1
2017-10-03 13:23:40 wifi_dhcp_fail_count 0
2017-10-02 06:27:31 wifi_rssi -64
2017-10-03 13:23:40 wifi_state connecting
Helper:
crypt AES
delay 0
ip 10.103.247.25
packetid 1
port 54321
token 3538455739716b63434576644f4d4563
Attributes:
disable 1
genericDeviceType switch
homebridgeMapping On=state,valueOn=/Cleaning/,valueOff=/Docked|Charging/,cmdOn=start,cmdOff=charge
StatusLowBattery=battery,values=ok:BATTERY_LEVEL_NORMAL;;/^.*/:BATTERY_LEVEL_LOW BatteryLevel=batteryLevel
ChargingState=state, values=Charging:1;;/^.*/:0
RotationSpeed=fan_power
room Homekit,Wohnzimmer
stateFormat state
subType VacuumCleaner
Der chiffrierte Code ist eigentlich: 749ca78cf366ac92d0a47770f665fcfb1fd653df23b3cec847c709a523597f720143db63ee66b0cdff9f69917680151e
Über jede Hilfe freue ich mich. "Erika" ist ganz normal über das Internet verbunden und auf Version 3.3.9_003077. Das letzte Update (_3094) hab ich extra noch nicht gemacht, kann ja nur schlechter werden ;D
Komisch, ich habe heute den Staubsauger noch einmal resettet und den Token ganz frisch ausgelesen.
Aus:
ÅM∑@JflG‡ia√@#ˇëÍxØE8:8D:28:5E:CF:89Fully charged646993973.3.9_003077010.103.247.2534:CE:00:EA:E9:83rockrobo.vacuum.v1Mi Robot Vacuum5678a21e8f1c7220fd24dd9941d54d793cd9e7080b09206f7af979ca8591a52f0143db63ee66b0cdff9f69917680151eÅ}Å#
habe ich :
5678a21e8f1c7220fd24dd9941d54d793cd9e7080b09206f7af979ca8591a52f0143db63ee66b0cdff9f69917680151e
ausgelesen und daraus wiederum:
775431515353664c65714a48497a325a
ermittelt.
Aber das Modul liefert immer noch den Encryption cipher error. Ich verstehe es nicht ???
Ich würde mal prophezeihen das sich das Problem mit dem Token in ein paar Tagen sowieso erledigt hat.
Eine andere Frage: gibt es ein neues Update nach dem 3077?? Mit wird noch nichts angezeigt...
token und fhem und flole
ich schreibe auch mal kurz meine erfahrung mit dem mi robot, im internet habe ich die lösung meines problems nicht gefunden und bin selbst drauf gekommen:
ich habe vor knapp zwei wochen meinen mi robot mit flole ins fhem bekommen und als alles lief ein firmareupdate auf den robot gemacht -> alles gut.
dann bekam ich einen zweiten und bin beim einrichten durcheinander gekommen, schlussendlich hatten beide die aktuelle firmware, aber ich bekam sie nicht mehr in fhem.
ihr seht, worauf es hinausläuft...
bei beiden robots die firmware wieder auf auslieferzustand gesetzt (home taste gedrückt halten und dabei kurz die resettaste drücken, dann sagt ein stimme es wird zurückgesetzt).
dann ordentlich mit flole, fhem und mi home einrichten (flole zwischendurch alle app daten löschen und drauf achten, den richtigen robot anzusprechen).
danach geht auch das firmwareupdate wieder und sie laufen noch mit fhem.
d.h. mit der firmware, die ursprünglich auf den kisten ist läuft alles prima, nach einrichtung geht auch das firmwareupdate, aber mit der aktuellen firmware bekommt man die teile nicht mit flole initial eingerichtet.
ich hoffe die infos helfen dem einen oder anderen...
Moin,
Mein Sauger ist noch unter fw3061 eingebunden und funktioniert tadellos.
Kann ich gefahrlos ein Update auf fw3094 machen ohne den token zu verlieren? Es soll sich bei diesem Update die Navigation in einigen Fällen verbessert haben.
MfG
Zitat von: Shadow3561 am 25 Dezember 2017, 16:43:20
Moin,
Mein Sauger ist noch unter fw3061 eingebunden und funktioniert tadellos.
Kann ich gefahrlos ein Update auf fw3094 machen ohne den token zu verlieren? Es soll sich bei diesem Update die Navigation in einigen Fällen verbessert haben.
MfG
Der Token ändert sich wohl nur wenn du ihn zurücksetzt und neu mit dem Wlan verbindest..Ich habe schon mehrere Updates gemacht,und musste nie den Token neu machen.
Seltsamerweise bekomme ich für meinen Staubsauger noch das 3094 update nicht angezeigt, aber du kannst ja immer downgraden über die recovery.
Ansonsten wird das Token erst bei einer Unprovisionierung (Wifi Knopf gedrückt) gelöscht und neu erzeugt.
Für Besitzer eines Staubsaugers dürfte das hier interessant sein:
https://events.ccc.de/congress/2017/Fahrplan/events/9147.html
Um auf Nummer sicher zu gehen kannst du natürlich die nächsten paar Tage noch abwarten vor dem Update. Da ich mir die 3094 noch nicht genauer ansehen konnte, kann ich noch keine absolute Aussage treffen, inwieweit es das Thema im Vortrag gefährdet.
Wenn jemand seinen Staubsauger mitbringt, können wir uns ja mal gemütlich irgendwo in eine Ecke setzen und ein wenig rumspielen.
@dgi: War ein guter Talk :)
Danke, es kam aber nicht bei allen an, dass nur ich den Staubsauger aufmachen musste. Alle können jetzt davon profitieren und müssen ihr Staubsauger nicht aufschrauben. Garantiesiegel und so bleibt intakt.
Ich muss mal gerade die Firmware von Gen1 und Gen2 vergleichen. Und schauen ob Updates gerade irgendwas böses machen. Kann also etwas dauern bis das Repo sichtbar ist.
Ich fand das auch sehr interessant und ich fand es lustig, das du Fhem auf dem Robi installiert hast! :D
Und das kommt genau zur richtigen Zeit.. Ich habe mir vor zwei Tagen auch ein Xiaomi Robi v1 aus dem GB-EU Lager bestellt und freue mich schon drauf. :)
Ich war ja leider nicht dabei aber der "Teaser" verspricht ja viel :)
Und leider ist auch noch nicht hinterlegt was nun war, also hier: http://dontvacuum.me/
Wenn ich wüsste was geht und wie, wäre ich ja fast versucht mir einen weiteren zu bestellen, damit ich da ein wenig "rumspielen" kann :)
Gruß, Joachim
Kompleter Rootzugriff auf Staubsauger, ohne den Staubsauger aufzuschrauben.
SSH-> Geheimer Cloudkey+Token+lokale Software auf dem Ubuntu 14.04 installieren.
Ich würde fast behaupten, dass es nicht viel gibt was schiefgehen (ohne Gewähr, ohne Garantie)
10/10 Staubsaugern sind zufrieden ;)
Die Folien lade ich mal demnächst hoch.
Zitat von: MadMax-FHEM am 27 Dezember 2017, 20:27:27
Ich war ja leider nicht dabei aber der "Teaser" verspricht ja viel :)
Und leider ist auch noch nicht hinterlegt was nun war, also hier: http://dontvacuum.me/
Wenn ich wüsste was geht und wie, wäre ich ja fast versucht mir einen weiteren zu bestellen, damit ich da ein wenig "rumspielen" kann :)
Gruß, Joachim
Hier gibt es die Wiederholung: http://cdn.c3voc.de/relive//34c3/9147/muxed.mp4
dontvacuum.me zeigt jetzt auf das Repo.
Hallo zusammen,
habe mir nun auch mal einen Vacuum Sauger bestellt von XIAOMI :-D
Sehe ich das richtig das ich zum einbinden in FHEM das Gateway gar nicht benötige?
Habe mir trotzdem noch ein Gateway sowie ein Fenster-/Türkontakt bestellt zum test, lässt sich dann das Gateway in FHEM mit diesem Modul auch einbinden?
Zitat von: dgi am 27 Dezember 2017, 20:31:41
Kompleter Rootzugriff auf Staubsauger, ohne den Staubsauger aufzuschrauben.
SSH-> Geheimer Cloudkey+Token+lokale Software auf dem Ubuntu 14.04 installieren.
Ich würde fast behaupten, dass es nicht viel gibt was schiefgehen (ohne Gewähr, ohne Garantie)
10/10 Staubsaugern sind zufrieden ;)
Die Folien lade ich mal demnächst hoch.
Gibts dazu mehr Infos? ;D Denn so sollten sich vermutlich auch die Sprachansagen ändern lassen, oder? 8)
Zitat von: Fillip am 27 Dezember 2017, 23:48:20
Hallo zusammen,
habe mir nun auch mal einen Vacuum Sauger bestellt von XIAOMI :-D
Sehe ich das richtig das ich zum einbinden in FHEM das Gateway gar nicht benötige?
Habe mir trotzdem noch ein Gateway sowie ein Fenster-/Türkontakt bestellt zum test, lässt sich dann das Gateway in FHEM mit diesem Modul auch einbinden?
Gateway brauchst du für den Sauger nicht...
...einfach Token auslesen und mittels diesem Modul hier einbinden...
...aber wohl für die anderen Sensoren.
Die gehen dann wohl mit diesem Modul:
https://forum.fhem.de/index.php/topic,63212.msg544487.html#msg544487
Gruß, Joachim
Zitat von: MadMax-FHEM am 28 Dezember 2017, 00:19:53
Die gehen dann wohl mit diesem Modul:
https://forum.fhem.de/index.php/topic,63212.msg544487.html#msg544487
Gruß, Joachim
Hallo Joachim,
Genau das Modul hab ich mir auch schon angeschaut. Das Benötige ich dann wohl für die anderen Sensoren welche mit dem Gateway arbeiten
Moin zusammen,
da ja schon die Infos zum "Hack" hier mit drin stehen gibt es vielleicht die Möglichkeit, die praktischen Dinge mit in das Modul zu implementieren?!
Ich dachte da an so Dinge wie die Map (https://github.com/dgiese/dustcloud/blob/master/xiaomi.vacuum.gen1/app-proxy-commands.txt)
Gibts da schon Vorstellungen oder so?
Viele Grüße Alex
Hallo zusammen,
ich habe heute meinen Sauger in FHEM integriert mit Token und allem drum und dran.
Leider bekomme ich nicht die Infos der Filter etc, oder antworten auf die Get Befehle.
NAME Sauger
NR 69
STATE disconnected
TYPE XiaomiDevice
device_type unknown
Readings:
2017-12-29 20:15:12 state disconnected
Helper:
ConnectionState disconnected
crypt AES
delay 300
dev 03db
id c361
ip 192.168.178.58
last_read 1514574898
packetid 22
port 54321
sequence 1
token 53616a51696c7376484f4e424e493168
Packet:
1 wifi_stats
10 get_current_sound
11 get_status
12 get_status
13 wifi_stats
14 device_info
15 get_serial_number
16 get_timezone
17 get_consumable
18 get_clean_summary
19 get_dnd_timer
2 device_info
20 get_timer
21 get_status
3 get_serial_number
4 get_timezone
5 get_consumable
6 get_clean_summary
7 get_dnd_timer
8 get_timer
9 get_status
Attributes:
disable 0
event-on-change-reading .*
group VacuumCleaner,
room 01-Wohnzimmer
sortby 1
stateFormat state
subType VacuumCleaner
Hat da jemand einen Rat?
Bei mir ist bereits Version 3.3.9_003077 installiert.
In der Fritzbox ist der Internetzugriff gesperrt.
Laut list steht dein Sauger auf disconnected..Geht er denn ab und zu in connected?Ansonsten ihm einfach mal das I-net gewähren. Hier haben viele Probleme,wenn sie ihm das I-Net abdrehen.
Grüße
Zitat von: Esjay am 29 Dezember 2017, 20:35:02
Laut list steht dein Sauger auf disconnected..Geht er denn ab und zu in connected?Ansonsten ihm einfach mal das I-net gewähren. Hier haben viele Probleme,wenn sie ihm das I-Net abdrehen.
Grüße
Auch das hilft leider nicht. Im Log sehe ich nur folgendes:
2017.12.29 22:27:04 3: Sauger: disconnecting
2017.12.29 22:27:04 2: Sauger: connecting
2017.12.29 22:27:04 3: Sauger: initialized
2017.12.29 22:27:18 2: Sauger: connection timeout
2017.12.29 22:28:53 2: Sauger: connection timeout
2017.12.29 22:29:19 3: Sauger: disconnecting
2017.12.29 22:29:19 2: Sauger: connecting
2017.12.29 22:29:19 3: Sauger: initialized
2017.12.29 22:29:33 2: Sauger: connection timeout
2017.12.29 22:30:24 2: Sauger: connection timeout
2017.12.29 22:30:34 3: Sauger: disconnecting
2017.12.29 22:30:34 2: Sauger: connecting
2017.12.29 22:30:34 3: Sauger: initialized
2017.12.29 22:30:48 2: Sauger: connection timeout
Ich denke der war noch nie connected. Wahrscheinlich ist der Token falsch....
Gruß Otto
Zitat von: razer35 am 29 Dezember 2017, 20:17:58
Hallo zusammen,
ich habe heute meinen Sauger in FHEM integriert mit Token und allem drum und dran.
Leider bekomme ich nicht die Infos der Filter etc, oder antworten auf die Get Befehle.
NAME Sauger
NR 69
STATE disconnected
TYPE XiaomiDevice
device_type unknown
Readings:
2017-12-29 20:15:12 state disconnected
Helper:
ConnectionState disconnected
crypt AES
delay 300
dev 03db
id c361
ip 192.168.178.58
last_read 1514574898
packetid 22
port 54321
sequence 1
token 53616a51696c7376484f4e424e493168
Packet:
1 wifi_stats
10 get_current_sound
11 get_status
12 get_status
13 wifi_stats
14 device_info
15 get_serial_number
16 get_timezone
17 get_consumable
18 get_clean_summary
19 get_dnd_timer
2 device_info
20 get_timer
21 get_status
3 get_serial_number
4 get_timezone
5 get_consumable
6 get_clean_summary
7 get_dnd_timer
8 get_timer
9 get_status
Attributes:
disable 0
event-on-change-reading .*
group VacuumCleaner,
room 01-Wohnzimmer
sortby 1
stateFormat state
subType VacuumCleaner
Hat da jemand einen Rat?
Bei mir ist bereits Version 3.3.9_003077 installiert.
In der Fritzbox ist der Internetzugriff gesperrt.
ist die 3.3.9 schon vorinstalliert gewesen oder hast du die per app aufgespielt?
falls sie nicht vorinstalliert war, versuch mal den auslieferzustand wieder herzustellen:
https://forum.fhem.de/index.php/topic,73052.msg736562.html#msg736562
Zitat von: Otto123 am 29 Dezember 2017, 23:12:15
Ich denke der war noch nie connected. Wahrscheinlich ist der Token falsch....
Gruß Otto
Ich hab das Wifi einmal zurückgesetzt und das Token via Flole Xiaomi erneut ausgelesen.
Danach den Roboter wieder mit der Mi App ins Wlan eingebunden.
Und wieder in FHEM eingebunden. Status direkt auf disconnected und Timeouts in den Logs.
Token sieht so aus: 4a616f62634933674952797a4b424c67
Die 3.3.9 war schon vorinstalliert.
Moin,
Ich denke mit der Flole App liest Du nur Blödsinn aus.
https://forum.fhem.de/index.php/topic,73052.msg646649.html#msg646649
Meines Wissen geht es am Besten mit dem MiToolkit. Das funktioniert aber super.
Gruß Otto
Probier mal mit dem Mi Toolkit. Im Android Gerät USB debug in den Entwicklereinstellungen aktivieren und das Android Gerät mit dem PC verbinden.
Token auslesen, warten, fertig. Hat bei mir auch mit dem neuesten Update bestens funktioniert.
Zitat von: RappaSan am 30 Dezember 2017, 10:04:00
Probier mal mit dem Mi Toolkit. Im Android Gerät USB debug in den Entwicklereinstellungen aktivieren und das Android Gerät mit dem PC verbinden.
Token auslesen, warten, fertig. Hat bei mir auch mit dem neuesten Update bestens funktioniert.
Das hat in der Tat kurz funktioniert, der Roboter war connected und war docked. Danach ist er wieder auf disconnected gesprungen.
Internetzugriff hat er noch.
Zitat von: razer35 am 30 Dezember 2017, 11:04:32
Das hat in der Tat kurz funktioniert, der Roboter war connected und war docked. Danach ist er wieder auf disconnected gesprungen.
Internetzugriff hat er noch.
Das passiert manchmal, sollte aber nicht dauerhaft sein. Welchen Server hast Du in der Verbindung der App angegeben? China oder US?
Zitat von: razer35 am 30 Dezember 2017, 11:04:32
Das hat in der Tat kurz funktioniert, der Roboter war connected und war docked. Danach ist er wieder auf disconnected gesprungen.
Internetzugriff hat er noch.
Token lässt sich nur noch über Backup auslesen, daran lag's beim ersten Mal.
Jetzt mal bitte
verbose 5, alles neu starten und das Log der Verbindungsversuche sowie anschliessend ein
list posten.
Zitat von: Otto123 am 30 Dezember 2017, 11:08:20
Das passiert manchmal, sollte aber nicht dauerhaft sein. Welchen Server hast Du in der Verbindung der App angegeben? China oder US?
Mainland China habe ich angegeben.
Eigentlich wollte ich den Roboter noch komplett das Internet verbieten.
Ich werde das mal beobachten und hoffe es funktioniert nun.
Vielen Dank für eure Hilfe!
Hier das Log mit verbose 5 und alles neugestartet:
2017.12.30 11:11:17 5: Sauger < 213100200000000003dbc3615a476640ffffffffffffffffffffffffffffffff (32)
2017.12.30 11:11:18 4: Sauger: write {"id":1,"method":"get_consumable","params":[""]} (48)
2017.12.30 11:11:18 5: Sauger: send 213100600000000003dbc3615a47664126ccac644acceeaaa3d742f0d98173824aed10fdf29e67012ade3f35f25c9a540259cc91772327eb95a48044954e8bfd3fbdeb5a8f2b5290b44d27a6027ff01fbb74c917fa76ccef76a630a2b826d660
2017.12.30 11:11:18 5: Sauger Send SUCCESS
2017.12.30 11:11:18 5: Sauger > 213100600000000003dbc3615a47664126ccac644acceeaaa3d742f0d98173824aed10fdf29e67012ade3f35f25c9a540259cc91772327eb95a48044954e8bfd3fbdeb5a8f2b5290b44d27a6027ff01fbb74c917fa76ccef76a630a2b826d660
2017.12.30 11:11:18 4: Sauger: write {"id":2,"method":"get_clean_summary","params":[""]} (51)
2017.12.30 11:11:18 5: Sauger: send 213100600000000003dbc3615a4766414e81f4af33612a304b503d31ff3edfd5f575b369e06a73a11a961c12a69f5b43177000f278ca5d566d332fdded7739e4a100ac8c2edd7495e87a1328c6cb5bb9f121a1d36a3a232b6f5f992af51453b1
2017.12.30 11:11:18 5: Sauger Send SUCCESS
2017.12.30 11:11:18 5: Sauger > 213100600000000003dbc3615a4766414e81f4af33612a304b503d31ff3edfd5f575b369e06a73a11a961c12a69f5b43177000f278ca5d566d332fdded7739e4a100ac8c2edd7495e87a1328c6cb5bb9f121a1d36a3a232b6f5f992af51453b1
2017.12.30 11:11:18 4: Sauger: write {"id":3,"method":"get_dnd_timer","params":[""]} (47)
2017.12.30 11:11:18 5: Sauger: send 213100500000000003dbc3615a4766414e7ea455d0c6de3a389189a41dc973fc19634db3a5327a9d9f82a60d1f8b25cb0101aed671c652fad2666f739f19501ccd541c0c646f554890a353d05df68244
2017.12.30 11:11:18 5: Sauger Send SUCCESS
2017.12.30 11:11:18 5: Sauger > 213100500000000003dbc3615a4766414e7ea455d0c6de3a389189a41dc973fc19634db3a5327a9d9f82a60d1f8b25cb0101aed671c652fad2666f739f19501ccd541c0c646f554890a353d05df68244
2017.12.30 11:11:18 4: Sauger: write {"id":4,"method":"get_timer","params":[""]} (43)
2017.12.30 11:11:18 5: Sauger: send 213100500000000003dbc3615a4766419c3dc3ae42d32082d0cece834f4834445e87b37d8591d7254bc2737ae40b5d1391cc66061ed482138ac6703939791e3184ebf786c9de8047878c21ef36c1b0fb
2017.12.30 11:11:18 5: Sauger Send SUCCESS
2017.12.30 11:11:18 5: Sauger > 213100500000000003dbc3615a4766419c3dc3ae42d32082d0cece834f4834445e87b37d8591d7254bc2737ae40b5d1391cc66061ed482138ac6703939791e3184ebf786c9de8047878c21ef36c1b0fb
2017.12.30 11:11:21 4: Sauger: write {"id":5,"method":"get_status","params":[""]} (44)
2017.12.30 11:11:21 5: Sauger: send 213100500000000003dbc3615a4766443c9d9d95ce7921095eea61fc2d9e005006b256eb17fada4e64abce98ac4b89e16d428d4ed23d5a784dec4ed8916ee5a98295c6684e717682a4b36f7073181c65
2017.12.30 11:11:21 5: Sauger Send SUCCESS
2017.12.30 11:11:21 5: Sauger > 213100500000000003dbc3615a4766443c9d9d95ce7921095eea61fc2d9e005006b256eb17fada4e64abce98ac4b89e16d428d4ed23d5a784dec4ed8916ee5a98295c6684e717682a4b36f7073181c65
2017.12.30 11:11:28 2: Sauger: connection timeout
EDIT:
Es scheint nun zu funktionieren.
Hallo zusammen.
Wo finde ich eigentlich das Modul 72_XiaomiDevice.pm zum runterladen? Google meint hier im Fred.
Habs bis jetzt nicht gefunden.
Danke für Eure Hilfe.
Gruss
Andi
Auf Seite 1
Danke
Hab die erste Seite bestimmt 20 mal durchgelesen. Wie kann ich nur so Blind sein - den Wald vor lauter Bäumen nicht gesehen.. :-\ :o
Gruss
Andi
Und im Post #3 steht die Sache mit dem Token - bevor Dir Google was falsches sagt ;)
Hallo zusammen,
kann ich den Xiaomi Vacuum über FHEM auch in Homebridge einbinden? Habe im Netz leider nichts hierzu gefunden? Falls ja wie?
Vielen Dank.
Gruß, M@ik
Hi M@ik,
also Integration in alexa-fhem geht (habe ich zumindest schon mal gelesen irgendwo / vielleicht sogar hier!?)
Laut Andre (Entwickler von homebridge und alexa-fhem) ist die Basis gleich und soll/sollte auch irgendwann zusammengeführt werden.
Daher würde ich mal bzgl. Integration Xiaomi Sauger und alexa-fhem suchen.
Das dort zu findende homeBridgeMapping sollte ja identisch passen und dann halt noch den Xiaomi entsprechend in den richtigen Raum etc. (je nach Filter in der homebridge-Config)...
Gruß, Joachim
Zitat von: M@ik am 30 Dezember 2017, 21:30:32
Hallo zusammen,
kann ich den Xiaomi Vacuum über FHEM auch in Homebridge einbinden? Habe im Netz leider nichts hierzu gefunden? Falls ja wie?
Vielen Dank.
Gruß, M@ik
Das homebridgemapping ist glaub ich nur ein oder zwei seiten zurück aufgeführt!
Grüße
Ah ok, danke ich habe es ein paar Seiten vorher gefunden. Leider funktioniert es bei mir nicht. Er wird zwar in der Home-App angezeigt und wenn ich Siri sage er soll ihn starten, dann bekomme ich auch die Rückmeldung, dass er gestartet wird, aber beim Sauger kommt nicht an. Das ich ihn als "Schalter" eingerichtet habe ist richtig?
attr MiRobot homebridgeMapping On=in_cleaning,valueOff=no,cmdOn=start,cmdOff=charge\
RotationSpeed=fan_power,minValue=0,maxValue=90,cmd=fan_power,delay=1\
BatteryLevel=batteryLevel,maxValue=100,minValue=0,minStep=1\
StatusLowBattery=battery,values=ok:BATTERY_LEVEL_NORMAL;;low:BATTERY_LEVEL_LOW\
ChargingState=state,values=Docked:NOT_CHARGING;;Charging:CHARGING;;/Cleaning|Returning.to.base/:NOT_CHARGEABLE\
OccupancyDetected=state,values=/Docked|Charging/:OCCUPANCY_DETECTED\
FilterLifeLevel=consumables_filter,minValue=0,maxValue=100\
FilterChangeIndication=consumables_filter,values=0:CHANGE_FILTER
Gruß
Dan
@Dan
Danke für das Mapping, damit funktioniert es. genericDeviceType switch ist korrekt? Per Siri kann ich den Xiaomi nun starten, aber nicht stoppen. Hast du noch eine Idee? Muss ich auf der Hombidge-Seite oder in der Home-App noch etwas einstellen?
Vielen Dank schon einmal und einen guten Rutsch.
Gruß, M@ik
Zitat von: M@ik am 31 Dezember 2017, 18:58:18
@Dan
Danke für das Mapping, damit funktioniert es. genericDeviceType switch ist korrekt? Per Siri kann ich den Xiaomi nun starten, aber nicht stoppen. Hast du noch eine Idee? Muss ich auf der Hombidge-Seite oder in der Home-App noch etwas einstellen?
Vielen Dank schon einmal und einen guten Rutsch.
Gruß, M@ik
Das sollte mit ,,Schalte Roberta ein/aus" funktionieren.
Frohes Neues.
Gruß
Dan
Roberta?
Zitat von: M@ik am 01 Januar 2018, 21:15:00
Roberta?
Meine Staubsauggehilfin heißt so.
Gruß
Dan
Zitat von: DeeSPe am 01 Januar 2018, 21:17:52
Meine Staubsauggehilfin heißt so.
Gruß
Dan
;D ;D Dito.
Ok. :P
Ausschalten funktioniert über Homekit nicht. Finde den Fehler auch nicht. Der volle Funktionsumfang von fhem steht im Homebridge aber nicht zur Verfürgung oder?
Gruß, M@ik
Zitat von: M@ik am 01 Januar 2018, 21:25:32
Ok. :P
Ausschalten funktioniert über Homekit nicht. Finde den Fehler auch nicht. Der volle Funktionsumfang von fhem steht im Homebridge aber nicht zur Verfürgung oder?
Gruß, M@ik
Probier mal statt:
cmdOff=charge
ob es damit geht:
cmdOff=stop
Gruß
Dan
Moin, auch das funktioniert nicht. [emoji52]
Was soll dann über Homebridge mit dem Xiaomi möglich sein? Ich habe das Prinzip glaube ich noch nicht ganz verstanden.
Gesendet von iPhone mit Tapatalk
Zitat von: M@ik am 02 Januar 2018, 11:30:03
Moin, auch das funktioniert nicht. [emoji52]
Was soll dann über Homebridge mit dem Xiaomi möglich sein? Ich habe das Prinzip glaube ich noch nicht ganz verstanden.
Gesendet von iPhone mit Tapatalk
Mein Mapping ist wie folgt:
On=state,valueOn=/Cleaning/,valueOff=/Docked|Charging/,cmdOn=start,cmdOff=charge
StatusLowBattery=battery,values=ok:BATTERY_LEVEL_NORMAL;;/^.*/:BATTERY_LEVEL_LOW BatteryLevel=batteryLevel
ChargingState=state, values=Charging:1;;/^.*/:0
RotationSpeed=fan_power
Hab das Mapping überarbeitet:
On=state,valueOn=/Cleaning|Paused|Sleeping/,valueOff=/Docked|Charging/,cmdOn=start,cmdOff=charge
RotationSpeed=fan_power,minValue=0,maxValue=90,cmd=fan_power,delay=1
BatteryLevel=batteryLevel,maxValue=100,minValue=0,minStep=1
StatusLowBattery=battery,values=ok:BATTERY_LEVEL_NORMAL;;low:BATTERY_LEVEL_LOW
ChargingState=state,values=Docked:NOT_CHARGING;;Charging:CHARGING;;/Cleaning|Returning.to.base/:NOT_CHARGEABLE
OccupancyDetected=state,values=/Docked|Charging/:OCCUPANCY_DETECTED
FilterLifeLevel=consumables_filter,minValue=0,maxValue=100
FilterChangeIndication=consumables_filter,values=0:CHANGE_FILTER
Selbst getestet und funktioniert!
Gesendet von iPad mit Tapatalk Pro
Guten Morgen, super damit hat es geklappt. wo nun aber der Fehler war konnte ich nicht erkennen. Dazu fehlen mir wohl die Kenntnisse. Ich habe das Gerät in FHEM als genericDeviceType=Switch konfiguriert. Ist das richtig? Ich kann dann über HomeKit aber auch nur an und aus schalten oder? Die Leistung erhöhen oder verringern geht nicht? Wie sieht das mit den Zusatndsmeldungen für die Bürsten usw. aus. Das geht nur in FHEM oder auch über das mapping in Homebridge?
Vielen Dank schon einmal für eure Bemühungen.
Gruß, M@ik
Zitat von: M@ik am 07 Januar 2018, 10:27:26
Guten Morgen, super damit hat es geklappt. wo nun aber der Fehler war konnte ich nicht erkennen. Dazu fehlen mir wohl die Kenntnisse. Ich habe das Gerät in FHEM als genericDeviceType=Switch konfiguriert. Ist das richtig? Ich kann dann über HomeKit aber auch nur an und aus schalten oder? Die Leistung erhöhen oder verringern geht nicht? Wie sieht das mit den Zusatndsmeldungen für die Bürsten usw. aus. Das geht nur in FHEM oder auch über das mapping in Homebridge?
Vielen Dank schon einmal für eure Bemühungen.
Gruß, M@ik
In der Home App ist es nur ein Schalter.
Schau mal in die Eve App, dort siehst Du auch die anderen Characteristics.
RotationSpeed lässt sich aber auch dort nur anzeigen, einstellen geht (noch) nicht.
Gruß
Dan
OK super d.h. also alles was in FHEM geht, das geht in HomeKit zumindest aktuell noch nicht. Ich habe das mapping noch mal von cmdoff=charge auf cmdoff=pause gesetzt. Das funktioniert auch, dann will er nicht immer gleich zurück zur Dock.
Vielen Dank für eure Bemühungen und eure Geduld.
Gruß, M@ik
Zitat von: M@ik am 07 Januar 2018, 10:53:18
OK super d.h. also alles was in FHEM geht, das geht in HomeKit zumindest aktuell noch nicht.
Wie gesagt, mal die Eve App nehmen, dort siehst Du alle anderen Mappings auch.
Gruß
Dan
Die Eve App gibt's aber nur für iOs, oder?
Ja, weil es HomeKit auch nur für iOS gibt.
Gruß
Dan
Zitat von: M@ik am 07 Januar 2018, 10:27:26
Guten Morgen, super damit hat es geklappt. wo nun aber der Fehler war konnte ich nicht erkennen. Dazu fehlen mir wohl die Kenntnisse. Ich habe das Gerät in FHEM als genericDeviceType=Switch konfiguriert. Ist das richtig? Ich kann dann über HomeKit aber auch nur an und aus schalten oder? Die Leistung erhöhen oder verringern geht nicht? Wie sieht das mit den Zusatndsmeldungen für die Bürsten usw. aus. Das geht nur in FHEM oder auch über das mapping in Homebridge?
Vielen Dank schon einmal für eure Bemühungen.
Gruß, M@ik
Der Fehler mit dem Ausschalten war auf das letzt "/" zurück zuführen.
Da DeeSPe das Mapping aus seiner FHEM Config Datei genommen hatte.
Die ganzen Funktionen sind nur mit EVE App richtig einstellbar.
Getestet hab ich mit iOS 11.2.5 Beta 3
So ich habe mal das Mapping in die Wiki eingepflegt.
https://wiki.fhem.de/wiki/Homebridge_User_Configs
Habe auch noch etwas dran gearbeitet.
Sleeping ist nun auch als Zustand aus, und die Anwesenheit wird nun auch richtig dargestellt.
Danke @DeeSPe für deinen Vorarbeit.
Was ich bisher nicht nicht sinnvoll drin habe ist, wenn der Staubsauger hängen bleibt und wenn er zurück in die Basis fährt.
@DeeSPe Wie geht das Mapping mit Spaces um?
@ALL
Noch ein Aufruf in eigener Sache.
Das wühlen in diesen Übermächtigen Threads um ein Funktionierendes Mapping zu finden, ist schon sehr zeit intensive.
Um es noch gehoben auszudrücken.
Hier noch mal die bitte, wer will kann diese Mappings für die Allgemeinheit gerne im Wiki eintragen.
Dazu kann man einfach einen User im Wiki beantragen.
Wem es zu viel ist, kann sein Mapping mit kurzer Beschreibung und Screenshot auch gerne an mich per PN schicken.
Pflege es dann gerne wenn zeit ist ein.
@Markus M. kannst du diesen Aufruf bitte in deinen Startpost aufnehmen?Gruß Robert
Das wird hier alles ganz schön homebridge-lastig und sollte hier nicht weiter diskutiert werden.
Zitat von: no_Legend am 07 Januar 2018, 12:24:27
Danke @DeeSPe für deinen Vorarbeit.
Was ich bisher nicht nicht sinnvoll drin habe ist, wenn der Staubsauger hängen bleibt und wenn er zurück in die Basis fährt.
Was zeigt er an wenn er hängen bleibt? Dann baue ich dafür noch was.
Zitat von: no_Legend am 07 Januar 2018, 12:24:27
@DeeSPe Wie geht das Mapping mit Spaces um?
Einfach durch Punkte ersetzen im RegEx.
Hab das Mapping im Wiki nochmal leicht angepasst.
Gruß
Dan
Zitat von: DeeSPe am 07 Januar 2018, 12:56:50
Das wird hier alles ganz schön homebridge-lastig und sollte hier nicht weiter diskutiert werden.
Was zeigt er an wenn er hängen bleibt? Dann baue ich dafür noch was.
Einfach durch Punkte ersetzen im RegEx.
Hab das Mapping im Wiki nochmal leicht angepasst.
Gruß
Dan
Das mit dem hängenbleiben kann ich momentan nicht nachschauen, mache auch kein Log beim Sauger.
Hab den Fall grad leider nicht. Sobald es wieder soweit ist, werde ich es posten.
Danke für den Tip mit .
Hab deine Änderung übernommen, funktioniert so weit bisher alles.
Ich habe mir die Informationen auf http://dontvacuum.me bzw. https://github.com/dgiese/dustcloud inzwischen genauer angesehen und wäre mental bereit, meinen Staubsauger zu rooten.
Was mir aber bisher nicht ganz klar wurde: Was hab ich dann genau davon? Um den Kontakt mit China abzubrechen müsste ich ja noch - wenn ich das richtig verstanden habe - eine "Dustcloud" installieren, oder? Aber in den Papers sieht das irgendwie so aus, als ob der trotzdem noch nach China funkt. Ist das richtig?
Hat das jemand von euch schon gemacht?
Zitat von: drhirn am 09 Januar 2018, 09:37:44
Ich habe mir die Informationen auf http://dontvacuum.me bzw. https://github.com/dgiese/dustcloud inzwischen genauer angesehen und wäre mental bereit, meinen Staubsauger zu rooten.
Was mir aber bisher nicht ganz klar wurde: Was hab ich dann genau davon? Um den Kontakt mit China abzubrechen müsste ich ja noch - wenn ich das richtig verstanden habe - eine "Dustcloud" installieren, oder? Aber in den Papers sieht das irgendwie so aus, als ob der trotzdem noch nach China funkt. Ist das richtig?
Hat das jemand von euch schon gemacht?
Hab es selber noch nicht probiert, aber vll findest du hier mehr Informationen --> http://www.roboter-forum.com/forumdisplay.php?147-Root-Bereich-(1-amp-2-Generation)
Grüße
Zitat von: Esjay am 09 Januar 2018, 10:42:35
Hab es selber noch nicht probiert, aber vll findest du hier mehr Informationen --> http://www.roboter-forum.com/forumdisplay.php?147-Root-Bereich-(1-amp-2-Generation)
Grüße
Wenn du auf die App-Bedingung verzichten kannst, so kannst du auch die Kommunikation mit Hilfe der /etc/hosts Datei unterbinden. Per SSH lässt sich die Karte (mMn die einzig fehlende Info ohne App) auch direk auslesen.
Das große Problem ist immer noch, dass das Gerät ohne Kommunikation zu Xiaomi offline geht und dann nicht mehr über FHEM zu steuern ist. Da hoffe ich noch auf eine funktionierende Implementation der "Dustcloud". Oder auf eine andere Lösung.
Ich bekomme mit dem Modul leider keine Verbindung, jedoch muss ich direkt dazu sagen, dass ich das Gerät gerootet habe und die Verbindung nach China gekappt habe.
Benötigt das Modul irgend eine Verbindung zu den Mi-Servern? Den Token habe ich direkt aus dem Gerät ausgelesen. Dieser funktioniert auch wunderbar für die Python-Api, jedoch bleibt das Modul im disconnected state. Das Modul scheint den Token auch korrekt in HEX-Darstellung überführt zu haben, zumindest ist es der selbe, den ich händisch auf der Konsole erzeugt habe. Die Clientports (54321-54323) sind auf dem Gerät auch offen. Jedoch finden sich in der Logfile Fehler bzgl. der MD5-Summe. Hat sich da eventuell etwas geändert?
Firmware-Version: v11_003094
/opt/fhem/log/miio.log
...
[20180111 19:38:57] [INFO] OT protocol diagrams come...
[20180111 19:38:57] [WARNING] OT MD5 not match.
0x21 0x31 0x00 0x50 0x00 0x00 0x00 0x00 0x04 0xea 0x8b 0x19 0x00 0x00 0x28 0xba 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
...
FHEM-Log
2018.01.11 12:28:30 2: vacuum: connecting
2018.01.11 12:28:30 3: vacuum: initialized
2018.01.11 12:28:30 5: vacuum: initSend
2018.01.11 12:28:30 5: vacuum Send SUCCESS
2018.01.11 12:28:30 5: vacuum > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2018.01.11 12:28:30 5: vacuum < 213100200000000004ea8b190000263fffffffffffffffffffffffffffffffff (32)
2018.01.11 12:28:34 4: vacuum: write {"id":81,"method":"miIO.wifi_assoc_state","params":[""]} (56)
2018.01.11 12:28:34 5: vacuum: send 213100600000000004ea8b1900002643d12d255945482cbb606a966c9325b72643308e1c3fba3f490861232d3c7e048337c76de5f6cfd398ca6dbde540b97f22a58e2ae3f6137992aa1edf17133b0bb3eebf0e9940fb42a06a4d580cedb70158
2018.01.11 12:28:34 5: vacuum Send SUCCESS
2018.01.11 12:28:34 5: vacuum > 213100600000000004ea8b1900002643d12d255945482cbb606a966c9325b72643308e1c3fba3f490861232d3c7e048337c76de5f6cfd398ca6dbde540b97f22a58e2ae3f6137992aa1edf17133b0bb3eebf0e9940fb42a06a4d580cedb70158
2018.01.11 12:28:34 4: vacuum: write {"id":82,"method":"miIO.info","params":[""]} (44)
2018.01.11 12:28:34 5: vacuum: send 213100500000000004ea8b19000026432426fa6c3109133349e6320b86e9eb94421cfb6d23faac32b3a23727a7ce095240c97fe010ac6c74f2dd40a9584a02a9237431b367f9caff0d5a6333fe9f2812
2018.01.11 12:28:34 5: vacuum Send SUCCESS
2018.01.11 12:28:34 5: vacuum > 213100500000000004ea8b19000026432426fa6c3109133349e6320b86e9eb94421cfb6d23faac32b3a23727a7ce095240c97fe010ac6c74f2dd40a9584a02a9237431b367f9caff0d5a6333fe9f2812
2018.01.11 12:28:34 4: vacuum: write {"id":83,"method":"get_serial_number","params":[""]} (52)
2018.01.11 12:28:34 5: vacuum: send 213100600000000004ea8b1900002643336e9548ccf887d7e32d8feaead1e9f29eab7fddca85bea00526b1b660fd590e68eb56f86091dad32a59dca19026838a51ef9b8ff6f93590432e1b9661c964b9dc7df617a509236564d9158e933ba1f8
2018.01.11 12:28:34 5: vacuum Send SUCCESS
2018.01.11 12:28:34 5: vacuum > 213100600000000004ea8b1900002643336e9548ccf887d7e32d8feaead1e9f29eab7fddca85bea00526b1b660fd590e68eb56f86091dad32a59dca19026838a51ef9b8ff6f93590432e1b9661c964b9dc7df617a509236564d9158e933ba1f8
2018.01.11 12:28:34 4: vacuum: write {"id":84,"method":"get_timezone","params":[""]} (47)
2018.01.11 12:28:34 5: vacuum: send 213100500000000004ea8b19000026436c365f4c0326d449a4937f17b4a47b6b2dce6ce3d2305ec6f5f79d416f42b34824bd55102b1cb73fc7c94eb876a7ddf12051f4ef88e1641a2686742177ed72c0
2018.01.11 12:28:34 5: vacuum Send SUCCESS
2018.01.11 12:28:34 5: vacuum > 213100500000000004ea8b19000026436c365f4c0326d449a4937f17b4a47b6b2dce6ce3d2305ec6f5f79d416f42b34824bd55102b1cb73fc7c94eb876a7ddf12051f4ef88e1641a2686742177ed72c0
2018.01.11 12:28:37 4: vacuum: write {"id":85,"method":"get_consumable","params":[""]} (49)
2018.01.11 12:28:37 5: vacuum: send 213100600000000004ea8b1900002646f4495c98e7f252392789e135520c7a64ab8d8f44f47faf88347d4e08b12886bdb37ab3a269a8e977638e838575dc8791c2e24ce6ea03b673badd46c7058cb2bbb104b12e5bbc415fa36829352bcd1d51
2018.01.11 12:28:37 5: vacuum Send SUCCESS
2018.01.11 12:28:37 5: vacuum > 213100600000000004ea8b1900002646f4495c98e7f252392789e135520c7a64ab8d8f44f47faf88347d4e08b12886bdb37ab3a269a8e977638e838575dc8791c2e24ce6ea03b673badd46c7058cb2bbb104b12e5bbc415fa36829352bcd1d51
2018.01.11 12:28:37 4: vacuum: write {"id":86,"method":"get_clean_summary","params":[""]} (52)
2018.01.11 12:28:37 5: vacuum: send 213100600000000004ea8b19000026464b3f98c493a4a5746070a0154b9a38431aba773151f0cb823046275db2887c581b35df80d06fd57f276b0a6c8994889a4de829d8ed9441b77e1d467750cfddb396c007cf3af6657a3cd49439c45836c6
2018.01.11 12:28:37 5: vacuum Send SUCCESS
2018.01.11 12:28:37 5: vacuum > 213100600000000004ea8b19000026464b3f98c493a4a5746070a0154b9a38431aba773151f0cb823046275db2887c581b35df80d06fd57f276b0a6c8994889a4de829d8ed9441b77e1d467750cfddb396c007cf3af6657a3cd49439c45836c6
2018.01.11 12:28:37 4: vacuum: write {"id":87,"method":"get_dnd_timer","params":[""]} (48)
2018.01.11 12:28:37 5: vacuum: send 213100600000000004ea8b1900002646aea95f02b0e373a97f5d156ee8c76156460434e179cd0adb8a32089b6a795d6c95701e09706bcca5729fca7d6f2887007d145e2d4c8826d852566bee1ef09209505c240358cb0704067dd5d442176aac
2018.01.11 12:28:37 5: vacuum Send SUCCESS
2018.01.11 12:28:37 5: vacuum > 213100600000000004ea8b1900002646aea95f02b0e373a97f5d156ee8c76156460434e179cd0adb8a32089b6a795d6c95701e09706bcca5729fca7d6f2887007d145e2d4c8826d852566bee1ef09209505c240358cb0704067dd5d442176aac
2018.01.11 12:28:37 4: vacuum: write {"id":88,"method":"get_timer","params":[""]} (44)
2018.01.11 12:28:37 5: vacuum: send 213100500000000004ea8b1900002646dac00036136ec66364ad9aaeb7b7d549001a399ceb99cb869fe04a185e2023567e8252bd6bed8d5c209f864f8c101a47cdd0310b20e6c58a6a34361ab54dac95
2018.01.11 12:28:37 5: vacuum Send SUCCESS
2018.01.11 12:28:37 5: vacuum > 213100500000000004ea8b1900002646dac00036136ec66364ad9aaeb7b7d549001a399ceb99cb869fe04a185e2023567e8252bd6bed8d5c209f864f8c101a47cdd0310b20e6c58a6a34361ab54dac95
Genau das Problem, dass ich oben erwähnt habe. Ich habe in der Firewall derzeit folgende Konfiguration:
- ALLOW:Port 443:54.222.0.0/15
- ALLOW:Port 80:58.83.128.0/18
- ALLOW:Port 442:52.80.0.0/16
Alles andere ist geblockt.
Mit der Konfiguration (die sicher noch zu optimieren ist, die Ranges sind groß), geht der Roboter ca. 8x am Tag ganz kurz offline, ist danach aber gleich wieder da.
Ich habe meinen auch gerootet und im Router die Verbindung vom Robi nach außen hin geblockt (Fritzbox Internetzugang > gesperrt).
Das steuern über Fhem klappt trotzdem noch bei mir, ohne irgendwelche Freigaben.
Was nur nicht ging, als ich mit der Doustcloud herumgespielt habe, bzw. versucht habe diese einzurichten und im Robi die /etc/hosts Datei geändert hatte:
192.168.2.41 ot.io.mi.com
192.168.2.41 ott.io.mi.com
Danach stand der Robi die ganze Zeit über auf disconnected in Fhem und lies sich nicht mehr Verbinden.
Nachdem ich die Einträge in der /etc/hosts wieder entfernt hatte, ging es wieder.
Zitat von: mark79 am 11 Januar 2018, 13:53:40
Was nur nicht ging, als ich mit der Doustcloud herumgespielt habe, bzw. versucht habe diese einzurichten und im Robi die /etc/hosts Datei geändert hatte:
192.168.2.41 ot.io.mi.com
192.168.2.41 ott.io.mi.com
Danach stand der Robi die ganze Zeit über auf disconnected in Fhem und lies nicht mehr Verbinden.
Nachdem ich die Einträge in der /etc/hosts wieder entfernt hatte, ging es wieder.
Ja, bei mir leider auch. Aber ich hab auch genau den selben Effekt, wenn ich den Roboter in der Firewall komplett blocke.
Wobei witzigerweise ot.io.mi.com und ott.io.mi.com nicht in meinen Allow-Regeln vorkommen. Also irgendwie komisch, dass es bei mir funktioniert.
Zitat von: drhirn am 11 Januar 2018, 13:58:45
Ja, bei mir leider auch. Aber ich hab auch genau den selben Effekt, wenn ich den Roboter in der Firewall komplett blocke.
Wobei witzigerweise ot.io.mi.com und ott.io.mi.com nicht in meinen Allow-Regeln vorkommen. Also irgendwie komisch, dass es bei mir funktioniert.
Das habe ich auch schon von anderen gelesen, aus dem roboter-forum, das bei denen dann python-miio nicht mehr funktioniert.
Keine Ahnung warum das bei mir geht... Hast du eine Fritzbox und hast es so wie ich gesperrt?
Wenn ich vom Robo aus z.B. Google anpinge, dann krieg ich das hier:
root@rockrobo:/opt/rockrobo/logs# ping google.de
PING google.de (216.58.206.3) 56(84) bytes of data.
From xxx.dip0.t-ipconnect.de (93.203.xxx.xxx) icmp_seq=1 Packet filtered
From xxx.dip0.t-ipconnect.de (93.203.xxx.xxx) icmp_seq=2 Packet filtered
From xxx.dip0.t-ipconnect.de (93.203.xxx.xxx) icmp_seq=3 Packet filtered
Wenn du es bei dir machst, was kriegst du da als Antwort? Ein Timeout?
Zitat von: mark79 am 11 Januar 2018, 14:05:46
Wenn du es bei dir machst, was kriegst du da als Antwort? Ein Timeout?
Ähhhhm ... ich bekomm da eine funktionierende Antwort ...
Das ist jetzt schräg! Ich geh nochmal meine Einstellungen durch.
Zitat von: drhirn am 11 Januar 2018, 13:58:45
Ja, bei mir leider auch. Aber ich hab auch genau den selben Effekt, wenn ich den Roboter in der Firewall komplett blocke.
Wobei witzigerweise ot.io.mi.com und ott.io.mi.com nicht in meinen Allow-Regeln vorkommen. Also irgendwie komisch, dass es bei mir funktioniert.
App/FHEM + Offline scheint derzeit nicht zu gehen, sobald das WLAN eingerichtet ist. Ein Github-User bastelt gerade an einem Ersatz für den Client auf dem Roboter -> https://github.com/dgiese/dustcloud/issues/15 (https://github.com/dgiese/dustcloud/issues/15) . Hoffe mal ich kann das die Tage mal testen :)
Zitat von: timmmmmey am 11 Januar 2018, 14:21:59
App/FHEM + Offline scheint derzeit nicht zu gehen, sobald das WLAN eingerichtet ist. Ein Github-User bastelt gerade an einem Ersatz für den Client auf dem Roboter -> https://github.com/dgiese/dustcloud/issues/15 (https://github.com/dgiese/dustcloud/issues/15) . Hoffe mal ich kann das die Tage mal testen :)
Das ist nicht ganz richtig, bei mir geht es: https://www.awesomescreenshot.com/image/3092851/a0478efdcdf0c1fa70b442fdedca9a78
Wie habt ihr den Robi ins Wlan gebracht? Per Hand mit editieren von device.conf und wpa_supplicant.conf?
Ich habe es mit der Mi Home APP gemacht und den Robi danach im Router geblockt.
Zitat von: mark79 am 11 Januar 2018, 20:25:50
Das ist nicht ganz richtig, bei mir geht es: https://www.awesomescreenshot.com/image/3092851/a0478efdcdf0c1fa70b442fdedca9a78
Wie habt ihr den Robi ins Wlan gebracht? Per Hand mit editieren von device.conf und wpa_supplicant.conf?
Ich habe es mit der Mi Home APP gemacht und den Robi danach im Router geblockt.
Bei mir funktioniert diese Methode auch.
Grüße Marcel
Wenn er bei mir
wifi_state = connecting hat (was passiert, wenn ich den Internetzugriff blocke), dann kann ich ihn nicht über FHEM steuern.
ZitatWie habt ihr den Robi ins Wlan gebracht? Per Hand mit editieren von device.conf und wpa_supplicant.conf?
Nein. Durch Editieren der
/mnt/data/miio/wifi.conf ;)
Bei mir steht er auch auf "wifi_state = connecting", das steuern über Fhem geht trotzdem und die Readings werden auch aktualisiert.
Vielleicht noch mal neu Verbinden mit der Mi Home APP. Der root bleibt erhalten.
Was vllt. noch sein könnte, das ihr python-mirobo verwendet, anstatt python-miio. Ist aber nur eine Vermutung.
https://github.com/dgiese/dustcloud/pull/31
Zitat von: mark79 am 11 Januar 2018, 21:39:48
Bei mir steht er auch auf "wifi_state = connecting", das steuern über Fhem geht trotzdem und die Readings werden auch aktualisiert.
Vielleicht noch mal neu Verbinden mit der Mi Home APP. Der root bleibt erhalten.
Was vllt. noch sein könnte, das ihr python-mirobo verwendet, anstatt python-miio. Ist aber nur eine Vermutung.
https://github.com/dgiese/dustcloud/pull/31
Hab ich jetzt auch geschafft. Hatte noch eine private IP in der Hostfile eingetragen. Dann macht der Robo anscheinend gar nichts. Über den Router geblocked, kann ich den auch einigermaßen erreichen, dennoch ist ca. alle zwei Minuten die Verbindung weg.
Werde also weiter auf den alternativen Client warten
Eine Frage am Rande:
Hat eine/r eine Übersicht aller (Fehler-)Meldungen die der Sauger an Fhem senden könnte?
Vorab vielen Dank.
Erdnar
Zitat von: erdnar am 13 Januar 2018, 12:46:17Hat eine/r eine Übersicht aller (Fehler-)Meldungen die der Sauger an Fhem senden könnte?
Der Code des Moduls hat die:
my %vacuum_states = ( '0' => "Unknown",
'1' => "Starting up",
'2' => "Sleeping",
'3' => "Waiting",
'4' => "Remote control",
'5' => "Cleaning",
'6' => "Returning to base",
'7' => "Manual mode",
'8' => "Charging",
'9' => "Charging problem",
'10' => "Paused",
'11' => "Spot cleaning",
'12' => "Malfunction",
'13' => "Shutting down",
'14' => "Software update" ,
'15' => "Docking" , );
my %vacuum_errors = ( '0' => "None",
'1' => "Laser sensor fault",
'2' => "Collision sensor fault",
'3' => "Wheel floating",
'4' => "Cliff sensor fault",
'5' => "Main brush blocked",
'6' => "Side brush blocked",
'7' => "Wheel blocked",
'8' => "Device stuck",
'9' => "Dust bin missing",
'10' => "Filter blocked",
'11' => "Magnetic field detected",
'12' => "Low battery",
'13' => "Charging problem",
'14' => "Battery failure",
'15' => "Wall sensor fault",
'16' => "Uneven surface",
'17' => "Side brush failure",
'18' => "Suction fan failure",
'19' => "Unpowered charging station",
'20' => "Unknown" , );
Zitat von: Markus M. am 14 Januar 2018, 01:28:46
Der Code des Moduls hat die:
...
Das zählt nicht, war zu einfach ::)
...
Danke.
Mahlzeit, ich versuche gerade mich per Telegram benachrichtigen zu lassen wenn der Roboter irgendwo fest steckt..
bisher habe ich das mit einem DOIF beispielhaft für das Laden gelößt. Das sieht aktuell so aus:
([Staubsauger:state] eq "Docked") (set Telegram send @xxxxxxxxx Staubsauger ist in der Ladestation angekommen)
DOELSEIF
([Staubsauger:state] eq "Returning to base") (set Telegram send @xxxxxxxxx Staubsauger fährt zur Ladestation zurück)
Jetzt müsste ich für jeden Status der eintreten kann eine Zeile im DOIF ergänzen...
Kann man nicht einfach bei Änderung von "state" den Wert von "state" per Telegram senden? Wenn ja, wie?
Zitat von: lenoxef am 15 Januar 2018, 15:10:26Jetzt müsste ich für jeden Status der eintreten kann eine Zeile im DOIF ergänzen...
Kann man nicht einfach bei Änderung von "state" den Wert von "state" per Telegram senden? Wenn ja, wie?
Hätte ich im DOIF-Bereich nachgefragt.
Aber sowas könnte z.B. funktionieren:
define diRoboterStatus doif ([Roboter])(set Telegram send @xxxxxxxxx Roboter-Status: $EVENT)
attr diRoboterStatus do always
Zitat von: lenoxef am 15 Januar 2018, 15:10:26
Mahlzeit, ich versuche gerade mich per Telegram benachrichtigen zu lassen wenn der Roboter irgendwo fest steckt..
bisher habe ich das mit einem DOIF beispielhaft für das Laden gelößt. Das sieht aktuell so aus:
([Staubsauger:state] eq "Docked") (set Telegram send @xxxxxxxxx Staubsauger ist in der Ladestation angekommen)
DOELSEIF
([Staubsauger:state] eq "Returning to base") (set Telegram send @xxxxxxxxx Staubsauger fährt zur Ladestation zurück)
Jetzt müsste ich für jeden Status der eintreten kann eine Zeile im DOIF ergänzen...
Kann man nicht einfach bei Änderung von "state" den Wert von "state" per Telegram senden? Wenn ja, wie?
wie wäre es so:
define Staubsauger_nachricht notify Staubsauger set Telegram send @xxxxxxxxx $NAME $EVENT
Hallo zusammen,
also das mit dem Miio_Client wird sich noch etwas hinziehen, habe gerade noch ein anderes Projekt laufen... geht aber auch um Xiaomi.
Das mit dem MD5 Fehler kommt wohl daher, dass die App Schnittstelle nicht komplett hoch kommt, wenn der Staubsauger keine Verbundung zur Cloud hatte. Habe zwar eine abgespeckte Dustcloud gebaut (ohne DB, ohne Webserver), die das emuliert, allerdings habe ich aktuell Probleme python-miio auf dem Staubi zu installieren. Außerdem ist auch die Frage, ob man eine komplette Python3 Distro da drauf haben will.
Langfristig kommen wir nicht um ein Modul herum, weil die Kartendaten in der SQLite DB liegen. Es gibt bereits ein Tool, was die ausliest, aber das muss man erstmal triggern.
Dennis
Zitat von: gt_im am 15 Januar 2018, 20:04:23
wie wäre es so:
define Staubsauger_nachricht notify Staubsauger set Telegram send @xxxxxxxxx $NAME $EVENT
Das war jetzt auch gar nicht so zweckmäßig. Hab es für meine Zwecke an Pushover angepasst. Wurde gerade ziemlich zugespammt.https://i.imgur.com/THQ576h.jpg (https://i.imgur.com/THQ576h.jpg)
Zitat von: nichdu am 18 Januar 2018, 10:00:33
Das war jetzt auch gar nicht so zweckmäßig. Hab es für meine Zwecke an Pushover angepasst. Wurde gerade ziemlich zugespammt.https://i.imgur.com/THQ576h.jpg (https://i.imgur.com/THQ576h.jpg)
Ein bischen genauer solltest du schon schreiben was du erwartest.
Was willst du denn für Nachrichten Überhaupt haben?
Zitat von: nichdu am 18 Januar 2018, 10:00:33
Das war jetzt auch gar nicht so zweckmäßig. Hab es für meine Zwecke an Pushover angepasst. Wurde gerade ziemlich zugespammt.https://i.imgur.com/THQ576h.jpg (https://i.imgur.com/THQ576h.jpg)
Dann würde ich empfehlen in der commadref zu Notify zu lesen: https://fhem.de/commandref_DE.html#notify
Denn dein Notify triggert auf alles was der Sauger an Events produziert.
Wie no_Legend schon geschrieben hat: genauer sagen was du willst...
...oder eben lesen und selber einschränken (regex), dass nur noch gemeldet wird was du willst.
Es geht auch den EventMonitor zu öffnen, warten bis die gewünschte "Nachricht" auftaucht, diese dann markieren und "create/modify" das Notify anlegen lassen...
Gruß, Joachim
Du kannst auch im Ausführungsteil auf Readings zugreifen mit der selben Notation, also
DOIF ([Staubsauger:state])
(set Telegram send @xxxxxxxxx Staubsauger-Status ist [Staubsauger:state])
Immer wenn Staubsauger das Readings state triggert, sende eine Nachricht.
Viele Grüße
ManOki
Zitat von: nichdu am 18 Januar 2018, 10:00:33
Das war jetzt auch gar nicht so zweckmäßig. Hab es für meine Zwecke an Pushover angepasst. Wurde gerade ziemlich zugespammt.https://i.imgur.com/THQ576h.jpg (https://i.imgur.com/THQ576h.jpg)
dann setze mal zusätzlich
attr Staubsauger event-on-change-reading state
dann werden nur statuswechsel gesendet
Hallo!
Vacuum gestern erhalten, "Mi Home" installiert (funktionierte nicht mit Region Europa sondern nur mit China), alle vorgeschlagenen Updates installiert und es funktioniert alles, bis auf
Token auslesen.
Warum nicht? "MiToolkit 1.6" kann den Token nur ohne Passwortvergabe beim backup auslesen. Mein Handy ist aber verschlüsselt (Android 8.1.0) und lässt ein backup nur mit Passwort zu. Das Problem wird auch auf git bereits diskutiert - der Entwickler sucht eine Lösung.
Gibt es noch eine andere Möglichkeit in meiner Situation den Token auszulesen?
MfG
Nimm Dein altes Smartphone aus der Kiste, oder borge Dir ein älteres. Du verheiratest ihn mit deinem WLAN und nicht mit deinem Handy.
Oder gib deinen Staubsauger kurzzeitig jemandem hier im Forum frei und lass dir den Token auslesen.
(Nicht mir, ich bin ab gleich im Urlaub) 8)
Danke!
Probiere ich morgen.
Also Mi Home App am alten Handy installieren, verbinden und dann dort auslesen.
Werde berichten.
MfG
nur an Mi Home anmelden, nicht neu verbinden.
Danke für den Tipp - hat mit altem Handy funktioniert!
rockrobo.vacuum.v1 - Mi Robot Vacuum - 555a6e48564d46774f31627259XXXXXX - 192.168.178.XX
Nun hänge ich noch bei:
Benötigte Perl Module:
- JSON libjson-perl
- Digest::MD5 libdigest-md5-perl
- Crypt::CBC libcrypt-cbc-perl
- Crypt::Cipher::AES oder Crypt::Rijndael_PP CPAN
- Crypt::ECB libcrypt-ecb-perl (bei verschlüsseltem Token)
Die "lib..." mit install installiert, aber wie installiere ich:
- Crypt::Cipher::AES oder Crypt::Rijndael_PP CPAN
Wahrscheinlich mit cpan, aber wie genau?
Danke und mfG
Moin,
schau dir mal diesen Link an. Hier ist es genau erklärt.
https://www.frombeyond.de/2017/xiaomi-mi-robot-saugroboter-fhem/
Gruß, M@ik
Gesendet von iPhone mit Tapatalk
Zitat von: M@ik am 21 Januar 2018, 09:25:30
Moin,
schau dir mal diesen Link an. Hier ist es genau erklärt.
https://www.frombeyond.de/2017/xiaomi-mi-robot-saugroboter-fhem/
Gruß, M@ik
Super, herzlichen Dank - funktioniert.
Tolle Beschreibung!!
MfG
Hallo!
Die Einbindung des XiaomiVacuum funktionierte mit eurer Hilfe tadellos.
Jedoch habe ich nun folgendes Problem:
Nach monatelangen problemlosen Betrieb antwortet Alexa auf einen Befehl (smarthome) seit heute mit "xxx reagiert gerade nicht" obwohl der Befehl ausgeführt wird, selten noch mit ok.
Meine Änderungen: "update" (Stretch und Fhem) und XiaomiVacuum installiert mit den notwendigen Modulen.
Nach "restore" von Version vor updates und Xiaomidevice - Alexa reagiert wieder normal mit ok.
Wodurch kann diese Reaktion ausgelöst werden?
MfG
P.S.: Habe diesen Post auch in das alexaForum gestellt.
Zitat von: raimundl am 22 Januar 2018, 15:16:36
Hallo!
Die Einbindung des XiaomiVacuum funktionierte mit eurer Hilfe tadellos.
Jedoch habe ich nun folgendes Problem:
Nach monatelangen problemlosen Betrieb antwortet Alexa auf einen Befehl (smarthome) seit heute mit "xxx reagiert gerade nicht" obwohl der Befehl ausgeführt wird, selten noch mit ok.
Meine Änderungen: "update" (Stretch und Fhem) und XiaomiVacuum installiert mit den notwendigen Modulen.
Nach "restore" von Version vor updates und Xiaomidevice - Alexa reagiert wieder normal mit ok.
Wodurch kann diese Reaktion ausgelöst werden?
MfG
P.S.: Habe diesen Post auch in das alexaForum gestellt.
Habe nun alle updates wieder eingespielt.
72_XiaomiDevice und die dazugehörigen Module nicht.
Alexa antwortet wie bisher wieder korrekt mit "ok".
Daher vermute ich, dass das Problem durch das XiaomiDevice bzw. die notwendigen Module entstanden ist.
MFG
Zitat von: raimundl am 22 Januar 2018, 16:51:57
Habe nun alle updates wieder eingespielt.
72_XiaomiDevice und die dazugehörigen Module nicht.
Alexa antwortet wie bisher wieder korrekt mit "ok".
Daher vermute ich, dass das Problem durch das XiaomiDevice bzw. die notwendigen Module entstanden ist.
MFG
Dann aber wohl (vorerst) nur bei dir.
Habe alexa-fhem und 3 Xiaomi Sauger inkl. Modul nat. am Laufen und Alexa sagt immer (bislang) schön brav "ok".
Smart Home Skill wie Custom Skill (da halt nicht nur "ok" ;) )...
Ich hatte das Verhalten mal (eine Zeit lang) als ich den Provider gewechselt habe bzw. wollte und eine Zeit lang mit einer "Krücke" und daher "Verzögerungen" auf dem "Netz" hatte...
Gruß, Joachim
Ja, der Grund für die Meldung (alexa:"xxx reagiert gerade nicht") ist sicher eine Verzögerung im Netz. Das lässt auch schon die lange Reaktionszeit vermuten.
Vielleicht noch ein Grund dafür - Logfile:
2018.01.21 09:42:23 3: robovac: Crypt::Rijndael_PP not found
2018.01.21 09:42:23 3: robovac: initialized, using AES
2018.01.21 09:42:33 3: robovac: disconnecting
2018.01.21 09:42:33 2: robovac: connecting
2018.01.21 09:42:33 3: robovac: initialized
Crypt::Rijndael_PP habe ich gem. Anleitung installiert (hat sehr lange gedauert).
MfG
Hey Leute,
habe gerade eben meinen Sauger mit einem deutschen Sprachpaket versehen.
Anleitung und den Download zur Windows Software findet ihr unter dem folgenden Video:
https://www.youtube.com/watch?v=wkv5osgMd-k
Grüße Marcel
#####Edit 1
Falls jemand den Fehler bekommt, dass die Datei VCRUNTIME140.DLL fehlt, kann man bei Microsoft direkt auf deren Homepage folgendes herunterladen und installieren:
https://www.microsoft.com/de-de/download/details.aspx?id=48145
Ich musste beide Dateien (vc_redist.x64.exe) (vc_redist.x86.exe) herunterladen und installieren, danach lief es.
#####Edit 2
Hier findet man noch weitere Sprachpakete, für einen Download muss man sich aber im Roboter-Forum anmelden:
http://www.roboter-forum.com/showthread.php?25361-Win-mirobo-Eigene-Sprachpakete-installieren
Verwendet eigentlich schon jemand einen Gen2 Staubsauger mit FHEM?
Falls ja, welche neuen Readings und Befehle fehlen im Modul?
Hi, ich nutze schon seit längerem den gen.2 Roboter.
Es ist von den readings her nichts besonderes hinzugekommen.
Ich denke das spot cleaninger fehlt. Lässt sich via fhem denke ich nicht realisieren.
Gruß
Christoph
Wenn du mit Spot die Bereiche meinst dann ja, aber neue Readings und Commands für die Wischfunktion sollte es doch geben?
Hallo zusammen,
ich habe kürzlich unseren vacuum cleaner V1 eingebunden und bin begeistert. Vielen Dank für das Modul!
Ist die Funktion "get <cleaner> map <id>" schon implementiert oder im Moment nur ein Platzhalter? Wie finde ich denn die ID heraus?
Gruss Sven
Map tut nichts, das funktioniert mangels Cloud Zugriff aus dem Modul nicht.
Hallo Markus,
zum Thema Wischfunktion kann ich so viel sagen, dass man in Bezug auf die readings in der Xiaomi App nichts zusätzlich hinzugekommen ist. Entweder der Sauger wischt mit Tank und Lappen oder bei Demontage nicht.
Hallo Zusammen,
gibt es eine Möglichkeit den Status des Staubbehälter abzugreifen?
Momentan läuft mein Saugroboter nur wenn niemand Zuhause ist und ich zähle mittels Dummy ob er z.B. heute gelaufen ist und generiere dadurch ggf. eine Info ob der Behälter geleert werden muss.
Schöner wäre es wenn man den Status des Behälters in Fhem abgreifen könnte um dadurch den Dummy zurückzusetzen. Der Saugrobotor gibt ja selbst eine Meldung sobald man diesen entfernt.
Yepe
Mir ist nichts bekannt. Die App gibt ja auch keine Meldung, oder?
Hallo Markus,
in der App konnte ich dazu auch nichts finden.
Trotzdem Danke für deine Antwort
Yepe
Zitat von: Markus M. am 06 Februar 2018, 11:57:26
Mir ist nichts bekannt. Die App gibt ja auch keine Meldung, oder?
Bei iOS bekommt man eine Pushnachricht, dass der Staubbehälter mal geleert werden sollte.
Eine Status direkt in der App in Prozent wie zum Beispiel bei den Sensoren bekommt man nicht.
Zumindet bei der Generation 1
Hab die Nachricht noch nie bekommen, keine Ahnung wie das gelöst ist.
Zitat von: Markus M. am 07 Februar 2018, 14:00:28
Hab die Nachricht noch nie bekommen, keine Ahnung wie das gelöst ist.
Ich kann es auch nicht genau sagen.
Ich erkläre mir das so:
Geht die Stromaufnahme hoch wenn der Motor schwerer Arbeiten muss?
Wenn ja wird hier wohl die Stromaufnahme gemessen.
So, seit gestern bin ich auch Besitzer eines Roborocks. Auslesen des Token und Einrichtung hat geklappt mit Firmware 001228.
Internet habe ich gesperrt.
Allerdings hatte ich, sobald der Roboter angeschaltet wurde, nach 10min ein disconnected, ein reconnect war nicht möglich.
Nach Neustart blieb die Verbindung wieder für 10min, dann disconnected...
Nach lesen der paar Seiten ::) fand ich den Beitrag von martin9959:
Zitat von: martin9959 am 07 September 2017, 11:57:50
Hallo an alle (gleichzeitig Vorstellung - mein erster Beitrag hier...),
eine Idee zum Thema Disconnects beim Saugroboter: Mir ist aufgefallen, dass ich sehr häufig in der Verbindung zwischen Robo und FHEM UDP Timeouts bekomme, wenn ich dem Robo per "DROP"-Befehl (iptables hier) das Internet abgestellt habe. Wenn ich dagegen "REJECT" nehme, so dass der Robo auf jeden Verbindungsversuch nach China prompt eine "ICMP port unreachable" Rückmeldung bekommt, scheint die Verbindung zu FHEM wesentlich stabiler zu sein. Mein Eindruck ist, dass er bei der Kontaktaufnahme durch FHEM manchmal versucht, an die Cloud zu antworten, und (wenn - wegen DROP - nichts zurückkommt) auf den Timeout wartet, bevor er per UDP an FHEM antwortet, was dann aber für die UDP-Verbindung viel zu spät ist.
Kann das jemand bestätigen?
Ja, kann ich teilweise bestätigen. Nach Änderung der Sperre von Drop auf Reject blieb der Roboter 25min erreichbar. Danach aber seitens des Moduls auch kein reconnect-Versuch mehr im Log und bei manuellem Versuch disconnected bis zum nächsten Neustart...
Beim nächsten Versuch (läuft gerade) steht er im Dock.
Jemand Erfahrungen damit?
Als nächstes wollte ich den Roboter mal rooten und etwas mit der dustcloud rumspielen. Eventuell gibt es dort auch eine Möglichkeit den Verbindungsverlust zu verhindern.
Außerdem mal schauen wie/ob die Karte exportierbar ist (ohne Xiaomi Cloud). Wer Lust hat sich mit mir ranzusetzen, bitte melden ;D
@Markus M.:
Laut roboter-forum.com (http://www.roboter-forum.com/showthread.php?25551-Neue-Mopping-Funktion-nach-Firmware-Update) hat die neue Firmware eine neue Funktion. Ist evtl. interessant für dich.
Stelle mich und den Roboter auch für Testzwecke zur Verfügung, sollte was anstehen.
Im Dock hielt er ca. 50min durch, mal schauen wie er sich mit Internetzugang verhält.
Danach geht's ans rooten.
Edit:
mit Anbindung an die Cloud hat er keine Probleme mit Verbindungsabbrüchen. Dann hoff ich mal das die dustcloud das auch so hinbekommt. Alternativ FHEM auf dem Teil mit FHEM2FHEM.
Edit2:
Ich führ meinen Monolog mal weiter ;D Mit gerooteter 001168 sowie 001228 und gesperrten Internet gibt es auch Verbindungsabbrüche. Die dustcloud läuft zwar, allerdings bekomme ich scheinbar keine Verbindung zum Roboter.
Gibt's hier jemanden der den Gen2 mit der dustcloud laufen hat?
Hallo,
Bitte um Hilfe zum Auslesen des Tokens von meinem Xiaomi Mi Staubsaugerroboter 1. Generation und damit Einbindung in FHEM.
Für das Resultat bzw. die Frage bitte ab dem letzten Punkt lesen.Folgendes habe ich gemacht:
- Roboter Token mit Flolevac App ausgelesen (Verbinden mit Robo WLAN)
- Neueste MiHome App (5.1.xxx) installiert und Roboter eingerichtet (Anmelden, Verbinden mit Robo WLAN, Flolevac App gekillt, MiHome App gekillt weil Roboter nicht gefunden, normales WLAN, Anmelden in MiHome, Robo WLAN, Roboter gefunden)
- Update auf Roboter FW 3.3.9.003094
- FHEM Einrichten laut Wiki https://wiki.fhem.de/wiki/Mi_vacuum (https://wiki.fhem.de/wiki/Mi_vacuum) . Ach ja, für den Download von 72_XiaomiDevice.pm (auf der 1. Seite) muss man angemeldet sein.
- Roboter immer disconnected. Bin dann später über andere und dieses Forum/Thread draufgekommen, dass das mit der Flolevac App keinen korrekten Token mehr ausgibt bzw. es von der FW Version abhängen kann
- Werksreset am Roboter (Hometaste halten und kurz auf Reset mit Kugelschreiber), 2 min warten bis der Roboter wieder ruhiger blinkt
- Jetzt habe ich FW 3.3.9.003088
- Trotzdem nochmal mit Flolevac App Token ausgelesen, klappt in FHEM wieder nicht
- Dann hab ich MiHome App deinstalliert und version MiHome 4.2.0 via apk auf meinem Samsung Galaxy S5 neo, Android 5.1.1
- /data/data/com.xiaomi.smarthome/databases/miio2.db finde ich nirgends
- MiToolkit 1.6 am Laptop installiert. USB Debugging eingeschaltet, USB Verbindungsmode auf Kamera (PTP) gestellt. Bringt aber immer nur leeres Backup
- Mein altes Samsung Galaxy S3 rausgekramt, Android 4.3, MiHome V5.0.1 über apk installiert. MiToolkit veruracht hier wenigstens, dass ich am Hany eine Abfrage bekomme, aber sonst wieder gleich leeres Backup.
- Die .dll's in den adb Foldern von MiToolkit ausgetauscht. (weiß nicht mehr, wo ich das in welchem Forum gefunden habe). Klappt auch nicht.
- Für App Backup Helium App am Handy installiert.
- Helium SW am Laptop installiert. ADB Treiber installiert.
- SW am Laptop gestartet. Helium App am S3 gestartet. USB Kabel verbunden. Rechts oben in App auf PC Download und dann auf dieser Homepage mit Laptop Browser backup datei .ab heruntergeladen.
- android-backup-extractor am Laptop installiert
- in cmd Fenster .ab in .tar entpacken. java -jar "C:\folder_wo_der_extractor_liegt\android-backup-tookit\android-backup-extractor\android-backup-extractor-20180203-bin\abe.jar" unpack "C:\folder_wo_die_ab_datei_liegt\com.xiaomi.smarthome.ab" "C:\zielverzeichnis_wo_tar_hin_soll\backup_xiaomi.tar"
- .tar entpacken.
- Somit hab ich nun für MiHome App 4.2.0 und 5.0.1 ein entpacktes Backup und Zugriff auf die Dateien. Roboter FW dazu war 3.3.9.003088
Jetzt meine große Frage: Wie komme ich zum Token aus dem Backup? MiToolkit bringe ich nicht zum Laufen.
Danke
bart
Hallo
Habe soeben erfolgreich den Xiaomi Humidifier eingerichtet mit den attr subType Humidifier, attr stateFormat state und erhalte bei den Internals STATE state und bei device_type unknown.
Somit erkennt man nicht ob er eingeschaltet ist und auch die eingegebenen Timer-Schaltzeiten werden nicht angezeigt.
Zudem zeigt das Log folgende Fehler:
Zitat2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Define redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 106.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Undefine redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 270.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Get redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 281.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Set redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 475.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Init redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1264.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_GetUpdate redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1286.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_GetSettings redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1359.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_GetDeviceDetails redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1442.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_GetSpeed redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1480.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_GetDnd redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1525.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_WriteJSON redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1540.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_ParseJSON redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 1593.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_connect redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2254.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_disconnect redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2303.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_initSend redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2323.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_connectFail redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2337.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Read redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2353.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Write redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2466.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_Attr redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2499.
2018.02.11 12:28:39 1: PERL WARNING: Subroutine XiaomiDevice_DbLog_splitFn redefined at /opt/fhem/FHEM/72_XiaomiDevice.pm line 2528.
Die Änderung von attr stateFormat state auf attr stateFormat power löst das Anzeigeproblem, aber device_type bleibt unknown und der Timer ist unerreichbar.
Zitat von: bart0190 am 11 Februar 2018, 08:08:59
Hallo,
Bitte um Hilfe zum Auslesen des Tokens von meinem Xiaomi Mi Staubsaugerroboter 1. Generation und damit Einbindung in FHEM.
Für das Resultat bzw. die Frage bitte ab dem letzten Punkt lesen.
Folgendes habe ich gemacht:
- Roboter Token mit Flolevac App ausgelesen (Verbinden mit Robo WLAN)
- Neueste MiHome App (5.1.xxx) installiert und Roboter eingerichtet (Anmelden, Verbinden mit Robo WLAN, Flolevac App gekillt, MiHome App gekillt weil Roboter nicht gefunden, normales WLAN, Anmelden in MiHome, Robo WLAN, Roboter gefunden)
- Update auf Roboter FW 3.3.9.003094
- FHEM Einrichten laut Wiki https://wiki.fhem.de/wiki/Mi_vacuum (https://wiki.fhem.de/wiki/Mi_vacuum) . Ach ja, für den Download von 72_XiaomiDevice.pm (auf der 1. Seite) muss man angemeldet sein.
- Roboter immer disconnected. Bin dann später über andere und dieses Forum/Thread draufgekommen, dass das mit der Flolevac App keinen korrekten Token mehr ausgibt bzw. es von der FW Version abhängen kann
- Werksreset am Roboter (Hometaste halten und kurz auf Reset mit Kugelschreiber), 2 min warten bis der Roboter wieder ruhiger blinkt
- Jetzt habe ich FW 3.3.9.003088
- Trotzdem nochmal mit Flolevac App Token ausgelesen, klappt in FHEM wieder nicht
- Dann hab ich MiHome App deinstalliert und version MiHome 4.2.0 via apk auf meinem Samsung Galaxy S5 neo, Android 5.1.1
- /data/data/com.xiaomi.smarthome/databases/miio2.db finde ich nirgends
- MiToolkit 1.6 am Laptop installiert. USB Debugging eingeschaltet, USB Verbindungsmode auf Kamera (PTP) gestellt. Bringt aber immer nur leeres Backup
- Mein altes Samsung Galaxy S3 rausgekramt, Android 4.3, MiHome V5.0.1 über apk installiert. MiToolkit veruracht hier wenigstens, dass ich am Hany eine Abfrage bekomme, aber sonst wieder gleich leeres Backup.
- Die .dll's in den adb Foldern von MiToolkit ausgetauscht. (weiß nicht mehr, wo ich das in welchem Forum gefunden habe). Klappt auch nicht.
- Für App Backup Helium App am Handy installiert.
- Helium SW am Laptop installiert. ADB Treiber installiert.
- SW am Laptop gestartet. Helium App am S3 gestartet. USB Kabel verbunden. Rechts oben in App auf PC Download und dann auf dieser Homepage mit Laptop Browser backup datei .ab heruntergeladen.
- android-backup-extractor am Laptop installiert
- in cmd Fenster .ab in .tar entpacken. java -jar "C:\folder_wo_der_extractor_liegt\android-backup-tookit\android-backup-extractor\android-backup-extractor-20180203-bin\abe.jar" unpack "C:\folder_wo_die_ab_datei_liegt\com.xiaomi.smarthome.ab" "C:\zielverzeichnis_wo_tar_hin_soll\backup_xiaomi.tar"
- .tar entpacken.
- Somit hab ich nun für MiHome App 4.2.0 und 5.0.1 ein entpacktes Backup und Zugriff auf die Dateien. Roboter FW dazu war 3.3.9.003088
Jetzt meine große Frage: Wie komme ich zum Token aus dem Backup? MiToolkit bringe ich nicht zum Laufen.
Danke
bart
Hab es nun geschafft. :D :D :D
Wahrscheinlich war das Schließen meines Laptops, sodass das Tool nun Zugriff hatte auf das Phone. Folgende Schritte hat mich nun zum Token geführt:
- MiHome App 4.2.0 auf Samsung Galaxy S3 installieren.
- Am Handy Entwicklermodus aktivieren und USB Debugging freischalten.
- In MiHome App anmelden und App schließen bzw. Homescreen.
- Handy mit Laptop verbinden.
- Am Handy erscheint, dass man akzeptieren soll, dass man Zugriff aufs Handy gewährt.
- MiToolkit v1.6 Starten
- ADB Version 39
- Token auslesen
- Am Handy startet die MiHome App mit der Info, dass Sicherung gestartet wird.
- Nach einer Weile erscheint in der MiHome App der Token.
:)
lg
bart
Zitat von: chaot4ever am 11 Februar 2018, 12:54:42
Hallo
Habe soeben erfolgreich den Xiaomi Humidifier eingerichtet mit den attr subType Humidifier, attr stateFormat state und erhalte bei den Internals STATE state und bei device_type unknown.
Somit erkennt man nicht ob er eingeschaltet ist und auch die eingegebenen Timer-Schaltzeiten werden nicht angezeigt.
Das im Log sind keine Fehler, das Modul wurde neu geladen. device_type darfst du ignorieren und ein Timer ist im Modul überhaupt nicht implementiert?!
Versuch doch mal
stateFormat=
mode und
webCmd=
limit_hum:mode
Das mit stateFormat=mode und webCmd=limit_hum:mode geht auch perfekt.
Trotzdem kann ich im iOS Menu von Xiaomi einen Timer eingeben, der auch schaltet, wenn mein iPhone abgeschaltet ist. Wo ist dann dieser Timer hinterlegt, wenn nicht im Xiaomi Gerät selbst? Ev. in der Cloud?, was dann eher beunruhigend wäre.
Wahrscheinlich im Device. Ist allerdings im Modul nicht implementiert.
Ist das neu in der Firmware?
Ich kann mal gucken ob ich an die Kommunikation noch rankomme oder ob es identisch zum Ventilator ist.
Zitat von: Markus M. am 12 Februar 2018, 10:35:11
Wahrscheinlich im Device. Ist allerdings im Modul nicht implementiert.
Ist das neu in der Firmware?
Ich kann mal gucken ob ich an die Kommunikation noch rankomme oder ob es identisch zum Ventilator ist.
Hi Markus,
mal ne frage, planst du auch einen Offizielles Checkin?
Danke Gruß Robert
@Markus
Nein, das war schon immer vorhanden, hier noch meine Firmware, welche ich nach Erhalt des Xiaomi-Teils vor 1,5 Monaten sogleich aktualisiert hatte: 1.2.9_5033
Die Möglichkeiten des Timers sind eine einmalige Start- sowie eine einmalige Stoppzeit plus eine Repeat-Funktion mit Once, Every Day, Weekdays, Weekends und Custom mit Aus- und Abwahl der Wochentage.
Mit den Hinweisen von @bart0190 habe ich nun geschafft, meinen Xiaomi Mi an FHEM anzuschliessen. Vielen Dank für das tolle Modul!
Zitat von: chaot4ever am 12 Februar 2018, 15:29:48Die Möglichkeiten des Timers sind eine einmalige Start- sowie eine einmalige Stoppzeit plus eine Repeat-Funktion mit Once, Every Day, Weekdays, Weekends und Custom mit Aus- und Abwahl der Wochentage.
Ahh ok! Diese Timer scheinen tatsächlich irgendwie über die Cloud zu laufen, nicht nur über die lokale Kommunikation zum Gerät.
Zumindest hab ich nicht auf Anhieb herausgefunden wie sie funktionieren und der Implementierungsaufwand war mir zu hoch.
Nimm doch einfach die FHEM Bordmittel dafür-
on-for-timer etc. sollten problemlos funktionieren.
OK, alles klar, mach ich, wollte nur wissen ob die Chinesen via Claud schon bei mir sind. ;D :-\
Zitat von: Fhemschorsch am 23 Dezember 2017, 13:25:55
Komisch, ich habe heute den Staubsauger noch einmal resettet und den Token ganz frisch ausgelesen.
Aus:
ÅM∑@JflG‡ia√@#ˇëÍxØE8:8D:28:5E:CF:89Fully charged646993973.3.9_003077010.103.247.2534:CE:00:EA:E9:83rockrobo.vacuum.v1Mi Robot Vacuum5678a21e8f1c7220fd24dd9941d54d793cd9e7080b09206f7af979ca8591a52f0143db63ee66b0cdff9f69917680151eÅ}Å#
habe ich :
5678a21e8f1c7220fd24dd9941d54d793cd9e7080b09206f7af979ca8591a52f0143db63ee66b0cdff9f69917680151e
ausgelesen und daraus wiederum:
775431515353664c65714a48497a325a
ermittelt.
Aber das Modul liefert immer noch den Encryption cipher error. Ich verstehe es nicht ???
Sorry, dass ich noch einmal so doof nachfrage, aber ändert es jetzt etwas, wenn ich meinen Vacuum roote? Dann brauche ich doch immer noch den Token, oder verstehe ich das falsch? Ich hab bei mir alle perl-Pakete noch einmal überprüft, habe aber alles aus dem ersten Post dieses Threads installiert.
Hallo, ich habe mal eine Frage ob jemand das Homebridgemapping, nicht als On/Off sondern als Dim Befehl hat, um die Geschwindigkeit damit gleich einzustellen. Möchte gern gleich entscheiden ob 60 oder 90% Leistung.
@Fhemschorsch:
Ohne Token wird alles schwierig bis unmöglich - soweit ich weiß.
Token wie in #632 beschrieben ausgelesen?
Den Sinn vom rooten konnte ich bisher noch nicht so richtig erkennen.
Hallo Markus,
wird es in deinem Modul auch eine Untersützung für die 2. Generation des Xiaomi Mi Vacuum geben ?
Ich haben meine erfolgreich verbunden und die meisten Readings gehen. Wenn der Vacuum aber einen Fehler hat wird dieser nicht übertragen. (Was ein Update so alles macht. Jetzt kommen die Fehler)
Bei den Internals ist device_type = unknown
Mit der neuen Firmware 3.3.9_001228 kann der Carped mode in de Mi-Home App aktiviert werden um auf dem Tepich die Saugleistung zu erhöhen
Grüße Tobi
Zitat von: RappaSan am 18 Februar 2018, 10:11:33
@Fhemschorsch:
Ohne Token wird alles schwierig bis unmöglich - soweit ich weiß.
Token wie in #632 beschrieben ausgelesen?
Den Sinn vom rooten konnte ich bisher noch nicht so richtig erkennen.
Den Token habe ich ausgelesen. Der ist auch korrekt, ich habe vor ein paar Tagen schon das deutsche Sprachpaket installiert, da braucht man ja auch den Token.
Ich glaube, das Problem ist eher, dass bei den PERL-Paketen etwas schief hängt. Ich habe aber alle nochmal mit
cpan install Paketname
installiert, war alles soweit aktuell. Ich weiß leider nicht, wo ich da jetzt ansetzen soll.
Hmmm.
Ein reboot tut immer gut. Aber das hast Du bestimmt auch schon versucht...
Dann können die Modul-Experten vielleicht den entscheidenden Tip geben. :D
Ja, das wäre super!
Kann es denn sein, dass ein Modul doppelt vorhanden ist, also einmal mit cpan und einmal mit apt-get installiert?
Bei mir ist ja die Besonderheit, dass es am 3.10.2017 noch funktioniert hat. apt-mark showmanual zeigt mir aber kein Paket, was irgendwie ins Auge fällt.
instmodsh schmeisst folgende installierte Module raus:
Installed modules are:
Crypt::CBC
Crypt::ECB
CryptX
Digest::MD5
ExtUtils::MakeMaker
JSON
Net::MQTT
Net::MQTT::Simple
Perl
local::lib
Ist das soweit richtig, dass er das Crypt::Cipher::AES nicht mit anzeigt? Das habe ich jetzt noch einmal mit cpan install Crypt::Cipher::AES installiert, aber er zeigt nix an.
Nachtrag: Ich hab jetzt nochmal das Rijandel-Zeugs installiert, er zeigt jetzt also auch Crypt::Rijndael_PP an.
Fehler ist aber noch derselbe
;D ;D ;D ;D ;D ;D ;D
Wer hat das Attribut disable=1 bei mir gesetzt?
:-X
Läuft jetzt!
Hallo scooty,
Dein Beispiel aus #84 finde ich prima. Wie sieht denn Deine Lösung für den Button "Leeren" in der Praxis aus?
Hast Du mal ein Beispiel für 2 Bewegungen vom Robbi hintereinander, z.B. 50 cm/steps nach vorne, dann 100 nach links?
Hallo RappaSan,
sorry, Fahrweg in die Nähe des Mülleimers habe ich ehrlich gesagt immer noch nicht implementiert, brauche es eigentlich auch nicht.
Irgendwo in den Tiefen dieses Threads waren die Fahrmanöver aber ganz gut erklärt.
Andreas
Zitat von: tobi_555 am 18 Februar 2018, 11:47:25
Bei den Internals ist device_type = unknown
Weiger schlimm, ist jetzt weg :)
ZitatMit der neuen Firmware 3.3.9_001228 kann der Carped mode in de Mi-Home App aktiviert werden um auf dem Tepich die Saugleistung zu erhöhen
Bitte mit der neuen Version mal die Settings abrufen und dann den Logeintrag zum Carpet Mode posten.
Zitat von: scooty am 18 Februar 2018, 15:55:49sorry, Fahrweg in die Nähe des Mülleimers habe ich ehrlich gesagt immer noch nicht implementiert, brauche es eigentlich auch nicht.
Irgendwo in den Tiefen dieses Threads waren die Fahrmanöver aber ganz gut erklärt.
Meiner parkt auch unter einem Schrank, ich fahre ihn hiermit 30cm nach vorne:
my $fanpower = ReadingsVal("vacuum","fan_power",77);
fhem"set vacuum fan_power 1;set vacuum remotecontrol start;sleep 8;set vacuum move 0 50 2000;sleep 2;set vacuum remotecontrol stop;sleep 5;set vacuum fan_power $fanpower;set vacuum locate";
fhem "set vacuum charge";
Zitat von: Markus M. am 18 Februar 2018, 16:42:06
Weiger schlimm, ist jetzt weg :)
Bitte mit der neuen Version mal die Settings abrufen und dann den Logeintrag zum Carpet Mode posten.
2018.02.19 07:43:19 1: robbi: carpet debug data: [
{
'current_low' => 400,
'stall_time' => 10,
'current_integral' => 450,
'enable' => 1,
'current_high' => 500
}
]
Passt das so?
Hallo,
finde die Funktion dieses Modul sehr gut und bin froh, endlich meine Xiaomi Sensoren einsetzen zu können.
Allerdings habe ich regelmässig Abstürze, die dann zum Halt von FHEM führen.
Aus dem Log:
2018.02.19 08:07:48 5: Xiaomi: Notify> NotifyStart
2018.02.19 08:07:48 5: Xiaomi: Notify> Starting Connect after global
2018.02.19 08:08:05 5: Xiaomi: connect> ConnectStart
2018.02.19 08:08:05 4: Xiaomi: connecting
send: Das Argument ist ungültig at ./FHEM/71_XiaomiSmartHome.pm line 286.
Das Verhalten im Fehlerfall ist, dass das Modul nach "ConnectStart" sehr lange zu "warten" scheint und dann den Fehler auswirft. FHEM ist danach nicht verfügbar, ich muss den noch vorhandenen FHEM Prozess killen und neu starten.
Internals:
CFGFN /opt/fhem/FHEM/99_xiaomi.cfg
DEF 192.168.2.100
FD 160
FHEMIP 192.168.2.22
GATEWAY 192.168.2.100
GATEWAY_IP 192.168.2.100
NAME Xiaomi
NOTIFYDEV global
NR 165
NTFY_ORDER 50-Xiaomi
SID 7811dcb236c9
STATE Connected
TYPE XiaomiSmartHome
VERSION 1.20
READINGS:
2018-02-19 07:42:52 RGB 0
2018-02-19 08:20:35 heartbeat 7811dcb236c9
2018-02-19 07:42:52 illumination 530
2018-02-12 11:24:12 password 75B2066FE16E4B38
2018-02-12 22:20:10 pct 100
2018-02-17 17:28:19 proto_version 1.0.9
2018-02-17 17:28:19 rgb 000000
2018-02-17 17:28:04 ringtone 8
2018-02-18 18:16:44 state Connected
2018-02-19 08:20:35 token EuwSV2fGM8Yl7QQm
2018-02-12 19:00:00 volume 95
helper:
ConnectionState Connected
host 192.168.2.100
Attributes:
devStateIcon {Color_devStateIcon(ReadingsVal($name,"rgb","000000"))}
group Gateway
room Xiaomi
verbose 5
webCmd pct:rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:on:off
Ich habe drei Magnetsensoren, 3 Bewegungsmelder, 1 Mi Staubsauger, 1 Purifier und 1 Gateway angeschlossen.
Bin dankbar für jegliche Hinweise.
Hi MarkusRobertAllen,
Du bist leider im falschen Film, in dem Thread geht es um das Modul 72_XiaomiDevice.pm
Du hast offenbar ein Problem mit dem Modul 71_XiaomiSmartHome.pm
Gruß Otto
Es kommt immerhin schon mal was raus :)
Kannst du in der App noch was einstellen oder kann man es nur de/aktivieren?
Zitat von: tobi_555 am 19 Februar 2018, 07:49:36
2018.02.19 07:43:19 1: robbi: carpet debug data: [
{
'current_low' => 400,
'stall_time' => 10,
'current_integral' => 450,
'enable' => 1,
'current_high' => 500
}
]
Passt das so?
Hey Markus,
kann in der App nur ein/aus
Das kommt beim ausschalten:
2018.02.19 10:03:26 1: robbi: carpet debug data: [
{
'enable' => 0,
'current_high' => 500,
'current_low' => 400,
'stall_time' => 10,
'current_integral' => 450
}
]
Kann jemand sagen ob das bei der 1. Generation auch geht?
Wenn ich in der App die verschiedenen Saugstufen umschalte bekomme ich bei "fan_power" Werte über 100.
Quiet = 101
Balanced =102
Turbo = 103
Max = 104
Mop = 105
Gruß Tobi
Hallo!
Danke, alles funktioniert. Da es aber auch weiterhin funktionieren soll ......
Von der App wird mir ein FWupdate (von 3.3.9_003094 auf 3.3.9._003096) vorgeschlagen. Da es mir ein großes Problem war, meinen token auszulesen, will ich nur dann updaten, wenn sich der token dadurch nicht ändert.
Daher meine Frage - ändert sich der token bei einem Firmwareupdate?
LG
Dann versuche ich mal zu raten :)
Carpet Mode über die App an, set carpet1/2 mit der Version aus dem Anhang, davor und danach bitte get settings.
Dann mal sehen was passiert und die Logeinträge posten.
Und noch ein list vom Device.
Was passiert wenn du die Saugstufen auf was kleineres setzt?
Hängt das vielleicht mit der Wischfunktion zusammen?
Zitat von: tobi_555 am 19 Februar 2018, 09:59:20
Hey Markus,
kann in der App nur ein/aus
Wenn ich in der App die verschiedenen Saugstufen umschalte bekomme ich bei "fan_power" Werte über 100.
Quiet = 101
Balanced =102
Turbo = 103
Max = 104
Mop = 105
@raimundl
bei mir hat sich der Token nicht geändert. Das sollte nur bei einem Reset des W-Lan Moduls passieren.
@Markus
capert1:
2018.02.19 11:01:24 3: robbi: type set_carpet_mode not implemented
{
'result' => [
'ok'
],
'id' => 36
}
capert2:
2018.02.19 11:02:38 3: robbi: type set_carpet_mode not implemented
{
'result' => [
'ok'
],
'id' => 52
}
carpet_enabled = HASH(0x604f8c8)
Internals:
DEF 192.168.XXX.XXX 717XXX4d4e6dXXXa62XXXf576XXX4XXX
FD 62
NAME robbi
NR 296
STATE Docked
TYPE XiaomiDevice
mac LOCALNETWORK
model rockrobo.vacuum
READINGS:
2018-02-19 11:04:48 battery ok
2018-02-19 11:04:48 batteryLevel 100
2018-02-19 11:04:47 carpet_enabled HASH(0x5c0bcf8)
2018-02-19 11:04:47 consumables_filter 98
2018-02-19 11:04:47 consumables_main_brush 99
2018-02-19 11:04:47 consumables_sensors 91
2018-02-19 11:04:47 consumables_side_brush 98
2018-02-19 07:44:50 current_sound chinese
2018-02-19 11:04:48 dnd off
2018-02-19 11:04:47 dnd_enabled on
2018-02-19 11:04:47 dnd_end 08:00
2018-02-19 11:04:47 dnd_start 22:00
2018-02-19 11:04:48 error none
2018-02-19 11:04:48 error_code None
2018-02-19 11:04:48 fan_power 60
2018-02-19 11:04:47 history_0 2018-02-19 08:37:18: 6.93m² in 0.09h, not finished
2018-02-19 11:04:47 history_1 2018-02-18 12:12:12: 0.00m² in 0.00h, not finished
2018-02-19 11:04:47 history_2 2018-02-18 11:19:39: 0.25m² in 0.01h, not finished
2018-02-19 11:04:47 history_3 2018-02-18 11:16:08: 2.90m² in 0.03h, not finished
2018-02-19 11:04:47 history_4 2018-02-18 11:13:19: 0.23m² in 0.02h, finished cleaning
2018-02-19 11:04:47 history_5 2018-02-18 10:17:45: 44.82m² in 0.81h, finished cleaning
2018-02-19 11:04:47 history_6 2018-02-17 22:25:11: 0.00m² in 0.00h, not finished
2018-02-19 11:04:47 history_7 2018-02-17 22:20:49: 0.00m² in 0.00h, not finished
2018-02-19 11:04:47 history_8 2018-02-17 22:14:02: 0.00m² in 0.00h, not finished
2018-02-19 11:04:47 history_9 2018-02-17 17:26:39: 0.00m² in 0.00h, not finished
2018-02-19 11:04:48 in_cleaning no
2018-02-19 11:04:48 last_clean_area 6.93
2018-02-19 11:04:48 last_clean_time 0.09
2018-02-19 11:04:47 last_timestamp 1519025838
2018-02-19 07:45:36 log_upload_status 7
2018-02-19 11:04:48 map_present yes
2018-02-19 09:52:34 serial_number RXXXXXXXXX
2018-02-19 11:04:48 state Docked
2018-02-19 09:52:34 timezone Europe/Berlin
2018-02-19 11:04:47 total_clean_area 136.14
2018-02-19 11:04:47 total_clean_time 2.43
2018-02-19 11:04:47 total_cleans 43
2018-02-19 10:59:42 wifi_auth_fail_count 0
2018-02-19 10:59:42 wifi_conn_fail_count 0
2018-02-19 10:59:42 wifi_conn_success_count 1
2018-02-19 10:59:42 wifi_dhcp_fail_count 0
2018-02-19 10:59:42 wifi_state connecting
helper:
ConnectionState connected
cleanrecord 10
crypt AES
delay 0
dev 0470
historydays 10
id d58f
ip 192.168.XXX.XXX
last_read 1519034688
packetid 123
port 54321
sequence 1519008543
timers 0
token 717XXX4d4e6dXXXa62XXXf576XXX4XXX
day:
history:
packet:
102 get_consumable
103 get_clean_summary
104 get_dnd_timer
105 get_timer
106 get_carpet_mode
2 device_info
3 get_serial_number
4 get_timezone
Attributes:
room robbi
subType VacuumCleaner
Mist. Dann leider erst mal keine Ahnung :(
Hat jemand seinen V2 gerootet und/oder kann die Kommunikation mitschneiden?
Wenn wir den Befehl irgendwie rausfinden kann ich es implementieren.
Gib mir doch mal deinen Sauger über die App frei: User ID 1580916876
Hallo scooty,
ich komme einfach nicht dahinter, wie ich in FTUI mehrere Befehle hintereinander absetzen kann.
sauger move 0 0 (aufwachen)
sauger move 0 200 (bewegen)
Damit würde der Sauger unter dem Schrank hervorkommen und ich könnte den Behälter entleeren.
Hast du nen Tip, wie ich das hinter den Button "Leeren" bekomme?
Zitat von: RappaSan am 19 Februar 2018, 14:26:02
sauger move 0 0 (aufwachen)
sauger move 0 200 (bewegen)
Damit würde der Sauger unter dem Schrank hervorkommen und ich könnte den Behälter entleeren.
Keine Ahnung von FTUI aber such mal hier im Thread nach sleep
Wie sieht es stumpf mit dummy+notify aus? An=Raus,aus=rein!
Grüße
Ich hätte das gern mit den FTUI Kommandos ausprobiert...
Wollte halt etwas dazulernen...
Mit welchen FTUI Kommandos?
Zitat von: RappaSan am 19 Februar 2018, 15:39:44
Ich hätte das gern mit den FTUI Kommandos ausprobiert...
Wollte halt etwas dazulernen...
Wieso sollte FTUI mehrere Befehle senden?
Du packst die Befehle einfach in doif die nach einander ausgeführt werden sollen.
Getriggert wird das ganze per Dummy OnOff device.
Sobald alle Befehle ausgeführt wurde, wird der dummy auf off gesetzt.
Diese device bekommt einen Schalter in FTUI
Gruß Robert
Gesendet von iPhone mit Tapatalk Pro
Zitat von: tobi_555 am 19 Februar 2018, 11:11:22
2018-02-19 11:04:48 fan_power 60
Und hat auch 60 als Power wenn du ihn losschickst? D.h 1-100 funktionieren trotzdem?
Setzt bitte nochmal alle möglichen und schau was jeweils rauskommt.
Wenn es immer das von 101 bis 105 ist muss ich basteln.
Und bitte nochmal den Carpet Test mit der Version im Anhang.
Theoretisch sollte nur eins davon den Modus schalten.
Sag Bescheid ob 1 oder 2 und ob die Readings funktionieren :)
Und probier mal cleaning_mode statt fan_power
Wieso sollte FTUI nicht mehrere Befehle senden?? ;)
Hier
https://forum.fhem.de/index.php/topic,68733.msg602719.html#msg602719
ist ein Beispiel aufgeführt, in dem mehrere Befehle im data-set-on und data-set-off ausgeführt werden sollen.
Ich bekomme es damit aber nicht hin.
Soll aber angeblich funktionieren.
Hey Markus,
fan_power nimmt er an und fährt mit der Vorgabe los. Auch ein neuer Wert bei der Reinigung Funktioniert.
Bei fan_power 0-100 ist kein Modus in der APP aktiv.
Cleaning_mode hab ich nicht.
Readings vom carpet_mode kommen und die Umschaltung aus der APP wird im Reading angezeigt.
Carped 1 und 2 keine Reaktion weder im reading noch in der APP.
Groß Tobi
Zitat von: RappaSan am 20 Februar 2018, 11:52:41
Wieso sollte FTUI nicht mehrere Befehle senden?? ;)
Das kann aber auch auf das verwendet Widget ankommen.
Ich finde es allerdings mehr als unnötig den Code der FHEM verwaltet an zwei getrennten stellen zu pflegen.
Einmal in FHEM und einmal in FTUI.
Dann viel Spaß bei der Fehlersuche.
Zitat von: tobi_555 am 20 Februar 2018, 12:27:04
Cleaning_mode hab ich nicht.
Readings vom carpet_mode kommen und die Umschaltung aus der APP wird im Reading angezeigt.
Carped 1 und 2 keine Reaktion weder im reading noch in der APP.
cleaning mode bekommst du wenn du wieder irgendwie über 100 Fan Power landest.
Setz mal Verbose 5 und schau im Log was bei carpet 1/2 gesendet wird und was ankommt.
Eigentlich sollte eins davon funktionieren.
Wer's brauchen kann (allerdings kein ovaler Button):
<div data-type="switch"
data-width="320"
data-height="60"
data-color="white"
data-background-color="blue"
data-device="SauBaer"
data-icon="fa-trash"
data-set-on='remotecontrol start; sleep 7; set SauBaer move 0 100 2000'
data-set-off='charge'
class="bigger top-space">
</div>
:)
Hey Markus,
Carpet1
2018.02.20 18:40:55 4: robbi: parse id 1150 / get_status
2018.02.20 18:40:55 4: robbi: msg ref is ARRAY
2018.02.20 18:41:43 4: robbi: write {"id":1151,"method":"set_carpet_mode","params":["1"]} (53)
2018.02.20 18:41:43 5: robbi: send 21310060000000000470d58f5a8c5dd6f85514da38e907f9be1c7c6a6d371212db8f387a002973f097a39124d9185c0e2e2a99ab992a7a5b71c2b0711dca1ec9673335a21ecaacc3f7455007520f82e36758ad07fae2248444a48a387d3cdb98
2018.02.20 18:41:43 5: robbi Send SUCCESS
2018.02.20 18:41:43 5: robbi > 21310060000000000470d58f5a8c5dd6f85514da38e907f9be1c7c6a6d371212db8f387a002973f097a39124d9185c0e2e2a99ab992a7a5b71c2b0711dca1ec9673335a21ecaacc3f7455007520f82e36758ad07fae2248444a48a387d3cdb98
2018.02.20 18:41:43 5: robbi < 21310040000000000470d58f5a8c5dd6c7f313c7160936ce4ccb098eb48eb6ae2ff854dcb44312150b5ea0f127d316d8a1da139f87621db7823cda35fe82594c (64)
2018.02.20 18:41:43 5: robbi: decrypted
{"result":["ok"],"id":1151}
2018.02.20 18:41:43 5: robbi: parse id 1151
{
'result' => [
'ok'
],
'id' => 1151
}
2018.02.20 18:41:43 4: robbi: parse id 1151 / set_carpet_mode
2018.02.20 18:41:43 4: robbi: msg ref is ARRAY
2018.02.20 18:41:43 5: robbi: parse result for 1151 is ARRAY(0x417e370)
Carpet2
2018.02.20 18:43:17 4: robbi: write {"id":1167,"method":"set_carpet_mode","params":[1]} (51)
2018.02.20 18:43:17 5: robbi: send 21310060000000000470d58f5a8c5e3419d0ce86bc7621ceb43e721b91af794388615496b895e6b88a98920c15b7044b50fed28a45aa50c2b311b3915ca2d03a71873b42dae2f1e81b89a8c4107ac6c0c14712e05bc3dc1e515e6eda1dcd7c83
2018.02.20 18:43:17 5: robbi Send SUCCESS
2018.02.20 18:43:17 5: robbi > 21310060000000000470d58f5a8c5e3419d0ce86bc7621ceb43e721b91af794388615496b895e6b88a98920c15b7044b50fed28a45aa50c2b311b3915ca2d03a71873b42dae2f1e81b89a8c4107ac6c0c14712e05bc3dc1e515e6eda1dcd7c83
2018.02.20 18:43:17 5: robbi < 21310040000000000470d58f5a8c5e358fc92292843337bc83c57bdc9e494d842ff854dcb44312150b5ea0f127d316d8c712fcf8b192c0c4c7c0197303b851a2 (64)
2018.02.20 18:43:17 5: robbi: decrypted
{"result":["ok"],"id":1167}
2018.02.20 18:43:17 5: robbi: parse id 1167
{
'id' => 1167,
'result' => [
'ok'
]
}
2018.02.20 18:43:17 4: robbi: parse id 1167 / set_carpet_mode
2018.02.20 18:43:17 4: robbi: msg ref is ARRAY
2018.02.20 18:43:18 5: robbi: parse result for 1167 is ARRAY(0x413d3d8)
Das Reading "cleaning_mode" funktioniert wenn in der App umgeschaltet wird.
Wenn ich jetzt in FHEM fan_power auf 60 stelle dann kommt in der APP Ballanced aber im Reading nicht.
Das Reading "cleaning_mode" kann über keinen "get" befehl aktualisiert werden.
"set robbi fan_power 105" lässt den Modus nicht umschalten. Darf ich überhaupt was größeres wie 100 senden ?
2018.02.20 18:45:15 4: robbi: write {"id":1183,"method":"set_custom_mode","params":[105]} (53)
2018.02.20 18:45:15 5: robbi: send 21310060000000000470d58f5a8c5eaa84af04b71e345ab280b1ce61e76510f0627a50f7d9860369fd2dd8bdf7bcfe6e8a57336fb79926c4a679bb27d8f89b09e5e77aea8814e0e47c902ad2f039ead79d368ed959114a0fd18756f3d5be8cee
2018.02.20 18:45:15 5: robbi Send SUCCESS
2018.02.20 18:45:15 5: robbi > 21310060000000000470d58f5a8c5eaa84af04b71e345ab280b1ce61e76510f0627a50f7d9860369fd2dd8bdf7bcfe6e8a57336fb79926c4a679bb27d8f89b09e5e77aea8814e0e47c902ad2f039ead79d368ed959114a0fd18756f3d5be8cee
2018.02.20 18:45:15 5: robbi < 21310040000000000470d58f5a8c5eabf0ff1c98869aae21fb0ace5ff3dd66992ff854dcb44312150b5ea0f127d316d88fa07a01606508487ff455d2d598e33b (64)
2018.02.20 18:45:15 5: robbi: decrypted
{"result":["ok"],"id":1183}
2018.02.20 18:45:15 5: robbi: parse id 1183
{
'id' => 1183,
'result' => [
'ok'
]
}
2018.02.20 18:45:15 4: robbi: parse id 1183 / set_custom_mode
2018.02.20 18:45:15 4: robbi: msg ref is ARRAY
2018.02.20 18:45:15 5: robbi: parse result for 1183 is ARRAY(0x3e29210)
2018.02.20 18:45:17 4: robbi: write {"id":1184,"method":"get_custom_mode","params":[""]} (52)
2018.02.20 18:45:17 5: robbi: send 21310060000000000470d58f5a8c5ead6a149f83afb5bad3089c150d36bc27f2975c1c16dd8542ec62a13e7f77e48663f0238b54f5f2697ca1c20cb1891808102f3e0118b0698af8284f0a1429127a45a9bd62317c32710f03caa5b12c6647fd
2018.02.20 18:45:17 5: robbi Send SUCCESS
2018.02.20 18:45:17 5: robbi > 21310060000000000470d58f5a8c5ead6a149f83afb5bad3089c150d36bc27f2975c1c16dd8542ec62a13e7f77e48663f0238b54f5f2697ca1c20cb1891808102f3e0118b0698af8284f0a1429127a45a9bd62317c32710f03caa5b12c6647fd
2018.02.20 18:45:17 5: robbi < 21310040000000000470d58f5a8c5eadaffe78fbb5a0b7c5f5ff4a70b882b438067b3da676536276a5903bb83cfb688cb560295f0f83a646393867f5bb1d7280 (64)
2018.02.20 18:45:17 5: robbi: decrypted
{"result":[105],"id":1184}
2018.02.20 18:45:17 5: robbi: parse id 1184
{
'result' => [
105
],
'id' => 1184
}
2018.02.20 18:45:17 4: robbi: parse id 1184 / get_custom_mode
2018.02.20 18:45:17 4: robbi: msg ref is ARRAY
Gruß Tobi
Zitat von: tobi_555 am 20 Februar 2018, 18:48:42
Carpet1, Carpet2
Laut Daten hast du damit beides mal den Modus aktiviert.
Schalt ihn mal über die App aus und schau nach ob das funktioniert.
ZitatDas Reading "cleaning_mode" funktioniert wenn in der App umgeschaltet wird.
"set robbi fan_power 105" lässt den Modus nicht umschalten. Darf ich überhaupt was größeres wie 100 senden ?
Keine Ahnung, nach einem Reload der Seite solltest du aber statt fan_power nur noch cleaning_mode setzen können.
Das setzt dann intern auf die Werte>100. Funktioniert das?
Ja nach dem setzen eines Modus in der App erhalte ich nach einem reload die Modusumschaltung und das reading.
Funktioniert in der App und in FEHM auch mit Rückmeldung.
Carpet1 und 2 ändern nichts in der App und nichts im reading. Werde morgen mal testen ob es bei der Reinigung tut und nur nicht angezeigt wird.
Zitat von: tobi_555 am 20 Februar 2018, 22:26:10
Carpet1 und 2 ändern nichts in der App und nichts im reading. Werde morgen mal testen ob es bei der Reinigung tut und nur nicht angezeigt wird.
Weder von an nach aus noch andersrum? Seltsam.
Kannst du mal loggen ob je nach Setting 1 und 0 gesetzt werden?
Hat jemand schon einen fertigen Code Schnipsel für die Einbindung des Saugroboters für die TabletUI und würde ihn vll zur Verfügung stellen?
Danke und Gruß Robert
Du meinst so etwas wie im Beispiel aus #84?
Zitat von: no_Legend am 21 Februar 2018, 15:39:58
Hat jemand schon einen fertigen Code Schnipsel für die Einbindung des Saugroboters für die TabletUI und würde ihn vll zur Verfügung stellen?
Öh, ja. Ist aber nichts besonderes.
<header>Staubsauger</header>
<div class="hbox">
<div data-type="switch"
data-device="Saugobot"
data-get-on="Cleaning"
data-get-off="!on"
data-set-on="start"
data-set-off=""
data-icon="mi-play_arrow"
data-timeout="2000"
class="card items-center big"></div>
<div data-type="switch"
data-device="Saugobot"
data-get-on="Paused"
data-get-off="!on"
data-set-on="pause"
data-set-off=""
data-icon="mi-pause"
data-timeout="2000"
class="card items-center big"></div>
<div data-type="switch"
data-device="Saugobot"
data-states='["Unknown","Starting up","Sleeping","Waiting","Remote control","Cleaning","Returning to base","Manual mode","Charging","Charging problem","Paused","Spot cleaning","Malfunction","Docked","Disconnected"]'
data-set-states='["charge"]'
data-icons='["mi-help","mi-loop","mi-snooze","mi-snooze","mi-settings_remote","mi-loop","mi-keyboard_return","mi-pan_tool","mi-power","mi-error","mi-pause","mi-find_replace","mi-error","mi-home","mi-portable_wifi_off"]'
class="card items-center big"></div>
</div>
Also der Sauger geht nicht in den Carpet Modus
Carpet1
2018.02.21 17:35:20 4: robbi: write {"id":159,"method":"set_carpet_mode","params":["1"]} (52)
2018.02.21 17:35:20 5: robbi: send 21310060000000000470d58f5a8d9fc9c64bd4676efa32e14a87411b3280a6ab94254b2425ab97341d883f204f93298224ca3e8ab343de13141caede26c2ea4c937cb9aad09556745d930ccc76a84d965504f8a3b51ba0a43d47f7fd12cb6537
2018.02.21 17:35:20 5: robbi Send SUCCESS
2018.02.21 17:35:20 5: robbi > 21310060000000000470d58f5a8d9fc9c64bd4676efa32e14a87411b3280a6ab94254b2425ab97341d883f204f93298224ca3e8ab343de13141caede26c2ea4c937cb9aad09556745d930ccc76a84d965504f8a3b51ba0a43d47f7fd12cb6537
2018.02.21 17:35:20 5: robbi < 21310040000000000470d58f5a8d9fc88dd967dd08adebaa2f49b9cbddbb061e98c046e3b8bd733f82a5694453974b779ebeadd0f2ea75964d900e55b5554ac2 (64)
2018.02.21 17:35:20 5: robbi: decrypted
{"result":["ok"],"id":159}
2018.02.21 17:35:20 5: robbi: parse id 159
{
'result' => [
'ok'
],
'id' => 159
}
2018.02.21 17:35:20 4: robbi: parse id 159 / set_carpet_mode
2018.02.21 17:35:20 4: robbi: msg ref is ARRAY
2018.02.21 17:35:20 5: robbi: parse result for 159 is ARRAY(0x435a2b8)
Carpet2
2018.02.21 17:37:28 4: robbi: write {"id":175,"method":"set_carpet_mode","params":[1]} (50)
2018.02.21 17:37:28 5: robbi: send 21310060000000000470d58f5a8da048b0e787c88f4f4ae0d3802a37d559de31f52d55d04ee7509de823818c7a9c0bb73e00ba14a4c05e6bfe2acb928b39d8dec691ea4492eb47895f46d7b07f40b1bab829e2fb1d3708c0ead185cb35c892f1
2018.02.21 17:37:28 5: robbi Send SUCCESS
2018.02.21 17:37:28 5: robbi > 21310060000000000470d58f5a8da048b0e787c88f4f4ae0d3802a37d559de31f52d55d04ee7509de823818c7a9c0bb73e00ba14a4c05e6bfe2acb928b39d8dec691ea4492eb47895f46d7b07f40b1bab829e2fb1d3708c0ead185cb35c892f1
2018.02.21 17:37:28 5: robbi < 21310040000000000470d58f5a8da048092cbc9dd944eb226e3a93b050141fc598c046e3b8bd733f82a5694453974b7798b43117bb5407b283266ccc3a41f9e1 (64)
2018.02.21 17:37:28 5: robbi: decrypted
{"result":["ok"],"id":175}
2018.02.21 17:37:28 5: robbi: parse id 175
{
'result' => [
'ok'
],
'id' => 175
}
2018.02.21 17:37:28 4: robbi: parse id 175 / set_carpet_mode
2018.02.21 17:37:28 4: robbi: msg ref is ARRAY
2018.02.21 17:37:28 5: robbi: parse result for 175 is ARRAY(0x3dd8750)
Ich verliere den Befehl clean_mod da nach einer Zeit z.b bei Clean_Mode Turbo fan_power nicht mehr 103 sondern wieder 75 ist ist bei jedem Modus so.
Schade, dann klappt das Setzen nicht.
Und der Modus ist dann irgendwie Unsinn.
Bleibt er wenigstens bei Mop dauerhaft?
Oder setzt du die 75 eventuell versehentlich an anderer Stelle über das Modul?
Zitat von: tobi_555 am 21 Februar 2018, 17:41:22Also der Sauger geht nicht in den Carpet Modus
Ich verliere den Befehl clean_mod da nach einer Zeit z.b bei Clean_Mode Turbo fan_power nicht mehr 103 sondern wieder 75 ist ist bei jedem Modus so.
Neue Version!
Carpet, Volume und Wakeup Befehle bitte mal testen.
Der Rest solle jetzt auch sauber funktionieren.
DANKE für dieses Modul!
Hab mir nur deswegen einen Luftreiniger 2 von Xioami gekauft, weil ich unbedingt das Ding in die Steuerung integrieren wollte :) DANKE!!!
Super das du dsa programmiert hast!! :)
LG
Also Volumen und das reading funktioniert bei mir.
Wenn ich den Modus umschalte bekomme ich bei Turbo und Max im reading custom zurück, bei den anderen passt es. Am Roboter kommt aber jeder Modus bei der Reinigung an.
Was macht Wakeup?
Carpet geht bei mir nicht
Zitat von: tobi_555 am 26 Februar 2018, 19:51:13Wenn ich den Modus umschalte bekomme ich bei Turbo und Max im reading custom zurück, bei den anderen passt es. Am Roboter kommt aber jeder Modus bei der Reinigung an.
Was steht dann bei Turbo/Max bzw. custom jeweils unter fan_power? Muss eigentlich was unter 100 sein.
Keine Ahnung was Wakeup macht. Aufwecken aus Sleep?
ZitatCarpet geht bei mir nicht
Muss aber - das bringt mich langsam noch zum Verzweifeln :)
Probier mal von on nach off und andersrum mit verbose 5 und poste das Log.
Max 100 custom
Turbo 75 custom
Balanced 60 Balanced
Quiet 38 Quiet
Mop 105 Mop
2018.02.26 21:51:31 4: robbi: write {"id":22,"method":"set_carpet_mode","params":["enable":1,"current_integral":450,"current_high":500,"current_low":400,"stall_time":10]} (134)
2018.02.26 21:51:31 5: robbi: send 213100b0000000000470d58f0000fdae4e670dcbebd6e877f5202e94968cd6bc0c447bab727c4f0d2799204271217a67f372894f0a9542f27235f8d7ad8662dda4568cc1777961e4a65eedb0fa669d0bb243c97d1f0f82a1f42851fbcf5c1de91c2b9baddf2cab9419860c3beb270b17e1fb6b704deb614752a4c1b5a462d8fa5576c619cadde447f00fc2ba78872e696857c110e3ebe933cc8971ac1f13a9b514a6bfb0eda7a78b070e43a2129b7822
2018.02.26 21:51:31 5: robbi Send SUCCESS
2018.02.26 21:51:31 5: robbi > 213100b0000000000470d58f0000fdae4e670dcbebd6e877f5202e94968cd6bc0c447bab727c4f0d2799204271217a67f372894f0a9542f27235f8d7ad8662dda4568cc1777961e4a65eedb0fa669d0bb243c97d1f0f82a1f42851fbcf5c1de91c2b9baddf2cab9419860c3beb270b17e1fb6b704deb614752a4c1b5a462d8fa5576c619cadde447f00fc2ba78872e696857c110e3ebe933cc8971ac1f13a9b514a6bfb0eda7a78b070e43a2129b7822
2018.02.26 21:51:34 0: SONOS0: Can't bind Port 4711: Bind failed: Address already in use at ./FHEM/00_SONOS.pm line 9817.
2018.02.26 21:51:34 0: SONOS0: Retries left (wait 30s): 8
2018.02.26 21:51:34 4: robbi: write {"id":23,"method":"set_carpet_mode","params":["enable":0,"current_integral":450,"current_high":500,"current_low":400,"stall_time":10]} (134)
2018.02.26 21:51:34 5: robbi: send 213100b0000000000470d58f0000fdb1caeb69b2ca49023c4c601b020cd7cd91f0264132b7c4079f60359ae0549220921961e0bcecde7d01d7e8689808432519c9f8b1a20a0fcbdb9f7f193f2347fd7a2fccb45468e6210ed49243465710f73f0250d9c7e562d29fd09cbdfa392d1f075707922794d062f09070edaa68939d7a8577713dfece69b6e3426b9ca06f4fa2754771a1677d86c4ddc4020efe24b653a363588ea7196d286d5d780b2ebe488e
2018.02.26 21:51:34 5: robbi Send SUCCESS
2018.02.26 21:51:34 5: robbi > 213100b0000000000470d58f0000fdb1caeb69b2ca49023c4c601b020cd7cd91f0264132b7c4079f60359ae0549220921961e0bcecde7d01d7e8689808432519c9f8b1a20a0fcbdb9f7f193f2347fd7a2fccb45468e6210ed49243465710f73f0250d9c7e562d29fd09cbdfa392d1f075707922794d062f09070edaa68939d7a8577713dfece69b6e3426b9ca06f4fa2754771a1677d86c4ddc4020efe24b653a363588ea7196d286d5d780b2ebe488e
2018.02.26 21:51:36 4: robbi: write {"id":24,"method":"set_carpet_mode","params":["enable":1,"current_integral":450,"current_high":500,"current_low":400,"stall_time":10]} (134)
2018.02.26 21:51:36 5: robbi: send 213100b0000000000470d58f0000fdb3e59148514a06cb6481b196682d8ade6409cf1e8cf23363562f8ccb93a25063870121e2205c7ef66cd747090a1cbbaa6fe9027108820687433ddbf510722762b0b76bfd6ab61f843efec993f88f2743ca341b177ce58b701d3116f731c953ccb9f737226aea32458d5574a9fba42588c29f629f0ef707f46f371578a6579a0bfb522e84750895340e565d91e1632abcc2bcd9b9625e47ca82a581d7c5cc96e415
2018.02.26 21:51:36 5: robbi Send SUCCESS
2018.02.26 21:51:36 5: robbi > 213100b0000000000470d58f0000fdb3e59148514a06cb6481b196682d8ade6409cf1e8cf23363562f8ccb93a25063870121e2205c7ef66cd747090a1cbbaa6fe9027108820687433ddbf510722762b0b76bfd6ab61f843efec993f88f2743ca341b177ce58b701d3116f731c953ccb9f737226aea32458d5574a9fba42588c29f629f0ef707f46f371578a6579a0bfb522e84750895340e565d91e1632abcc2bcd9b9625e47ca82a581d7c5cc96e415
2018.02.26 21:51:38 1: PERL WARNING: could not find ParserDetails.ini in /usr/local/share/perl/5.20.2/XML/SAX
2018.02.26 21:51:41 2: robbi: connection timeout
2018.02.26 21:51:42 4: robbi: write {"id":25,"method":"get_consumable","params":[""]} (49)
2018.02.26 21:51:42 5: robbi: send 21310060000000000470d58f0000fdb94ce0c8adadf1bd04733d6c5d6c68e3a4270b2996a6f20cf6b32135d8b84f55218a4b6ca4b34e39b0f66576370933b3df9aee83569ae78e01552a58ee81592ccf58eb0f1de2553a98b80cd2a59c0251f7
2018.02.26 21:51:42 5: robbi Send SUCCESS
2018.02.26 21:51:42 5: robbi > 21310060000000000470d58f0000fdb94ce0c8adadf1bd04733d6c5d6c68e3a4270b2996a6f20cf6b32135d8b84f55218a4b6ca4b34e39b0f66576370933b3df9aee83569ae78e01552a58ee81592ccf58eb0f1de2553a98b80cd2a59c0251f7
2018.02.26 21:51:42 4: robbi: write {"id":26,"method":"get_clean_summary","params":[""]} (52)
2018.02.26 21:51:42 5: robbi: send 21310060000000000470d58f0000fdb922383a71d851a0b9887579301dd8d32fa50f10ecb9cfefc6bc544f4b36627669f791f4c31f4b270361d695b319b7b3e125c09294243bf4b37cfe88f817c81780afef63fe6321ebd93772ba4eadf7b7ee
2018.02.26 21:51:42 5: robbi Send SUCCESS
2018.02.26 21:51:42 5: robbi > 21310060000000000470d58f0000fdb922383a71d851a0b9887579301dd8d32fa50f10ecb9cfefc6bc544f4b36627669f791f4c31f4b270361d695b319b7b3e125c09294243bf4b37cfe88f817c81780afef63fe6321ebd93772ba4eadf7b7ee
2018.02.26 21:51:42 4: robbi: write {"id":27,"method":"get_dnd_timer","params":[""]} (48)
2018.02.26 21:51:42 5: robbi: send 21310060000000000470d58f0000fdb987e427cc5f7004fa1d1474f5289628d75c89ea3f371742dfb69f18eb5e0bea79b07d5eea59f7434d4b8137e9bd036c0ec6e7d388e62f62f0b469132bd51585d036b8ed1bdeaf4ccd0a085bf8535b85d6
2018.02.26 21:51:42 5: robbi Send SUCCESS
2018.02.26 21:51:42 5: robbi > 21310060000000000470d58f0000fdb987e427cc5f7004fa1d1474f5289628d75c89ea3f371742dfb69f18eb5e0bea79b07d5eea59f7434d4b8137e9bd036c0ec6e7d388e62f62f0b469132bd51585d036b8ed1bdeaf4ccd0a085bf8535b85d6
2018.02.26 21:51:42 4: robbi: write {"id":28,"method":"get_timer","params":[""]} (44)
2018.02.26 21:51:42 5: robbi: send 21310050000000000470d58f0000fdb95f6f2a82f940ee5a4975618c71cb2b58d1697aa6d3c17c0bbce6c77e0a5a3c33d0872dac7648108eae03c966793db131206bf3b90e63f9fd53e781aa892d0efc
2018.02.26 21:51:42 5: robbi Send SUCCESS
2018.02.26 21:51:42 5: robbi > 21310050000000000470d58f0000fdb95f6f2a82f940ee5a4975618c71cb2b58d1697aa6d3c17c0bbce6c77e0a5a3c33d0872dac7648108eae03c966793db131206bf3b90e63f9fd53e781aa892d0efc
2018.02.26 21:51:42 4: robbi: write {"id":29,"method":"get_carpet_mode","params":[""]} (50)
2018.02.26 21:51:42 5: robbi: send 21310060000000000470d58f0000fdb9cb5e5517019a417dc6c658ad7ba300c2a0bc8c75ee7f9d8c652be64490e79582ae345ffe407034d78d595eade12217d61b7a12422a23633762b25de89af77460d5133571532cfd8aeacc283fdc868130
2018.02.26 21:51:42 5: robbi Send SUCCESS
2018.02.26 21:51:42 5: robbi > 21310060000000000470d58f0000fdb9cb5e5517019a417dc6c658ad7ba300c2a0bc8c75ee7f9d8c652be64490e79582ae345ffe407034d78d595eade12217d61b7a12422a23633762b25de89af77460d5133571532cfd8aeacc283fdc868130
2018.02.26 21:51:42 4: robbi: write {"id":30,"method":"get_sound_volume","params":[""]} (51)
2018.02.26 21:51:42 5: robbi: send 21310060000000000470d58f0000fdb92fdeb7a0dbfd8011aff07cf1f059ba86965d14f46d1770bb0436efb2fec7f4f45ac775d1f78d1c5667262837e7e2d41fa42e2c898c5291bc8d99bddef13a305d76d29873e5419e963d6ab1dead0df8e3
2018.02.26 21:51:42 5: robbi Send SUCCESS
2018.02.26 21:51:42 5: robbi > 21310060000000000470d58f0000fdb92fdeb7a0dbfd8011aff07cf1f059ba86965d14f46d1770bb0436efb2fec7f4f45ac775d1f78d1c5667262837e7e2d41fa42e2c898c5291bc8d99bddef13a305d76d29873e5419e963d6ab1dead0df8e3
2018.02.26 21:51:42 5: robbi < 213100b0000000000470d58f0000fdb89be61e30698c2ce6d12203c6fe2fc716a33c2f366077a2e81ead6dfe98f4f2fc364e05aa505b488be78deebb1837999ea109cfe70a473f9f7ca4bce822f4ae64ffc7ff2ec908e0336874df90bc174302f5a7da18878ca2a7286239565d768638d462289479f37b477b522d6208fc167d976e49434b4f04b343115049f23589cc34424b896f1fae22d62ff41a5550cc4e616c2c3905b2e6e3aaa2631b38471d48 (176)
2018.02.26 21:51:42 5: robbi: decrypted
{"result":[{"main_brush_work_time":22239,"side_brush_work_time":22239,"filter_work_time":22239,"sensor_dirty_time":21235}],"id":25}
2018.02.26 21:51:42 5: robbi: parse id 25
{
'result' => [
{
'side_brush_work_time' => 22239,
'filter_work_time' => 22239,
'main_brush_work_time' => 22239,
'sensor_dirty_time' => 21235
}
],
'id' => 25
}
2018.02.26 21:51:42 4: robbi: parse id 25 / get_consumable
2018.02.26 21:51:42 4: robbi: msg ref is ARRAY
2018.02.26 21:51:42 5: robbi < 21310130000000000470d58f0000fdb85cd3f38657f4e7719111a2fd7e3740992ae66ade3989a262ddcff5dadf1bf0e6bd18d2440ed194dd71d6d022109aaa186cddc4e2fae61c35c82b239940e693768fd21031921d21d37c533c7048210aa600b7313b9aa812abe48965802dbd54014e905456d10ba7bbd2e259efbcaf395230244e153d137468a145478ba6cf1c35f3ae331101b3c427cc284ab7db7fcc7155f10a1874810a0ef3d3a239398a74dd5078f19e146f7997bbd4cd64d224f01b9fbddeab9d800cf990f0384a1fa6bf5d5419ed95ed00a967f8531842c9dcc3273b69c2006b94df23b93829d3d33fa032ba3713a8063c824091db46ed081c73df37d641f5d00abf37b1c371bdfac2f648da9fcc5120eda15018b46d6584b6583f54970ce282b479c106b825f5bd5812d5 (304)
2018.02.26 21:51:42 5: robbi: decrypted
Zitat von: tobi_555 am 26 Februar 2018, 21:37:55
Max 100 custom
Turbo 75 custom
Grrr, Klammern!
Jetzt aber nochmal, beides davon :)
Max und Turbo ist immer noch custom.
Carpet sollte gehen Rückmeldung kommt jetzt. testen kann ich das beim reinigen erst morgen.
Zitat von: tobi_555 am 27 Februar 2018, 19:16:45
Max und Turbo ist immer noch custom.
Carpet sollte gehen Rückmeldung kommt jetzt. testen kann ich das beim reinigen erst morgen.
Carpet geht. Tip Top
Zitat von: tobi_555 am 27 Februar 2018, 19:16:45
Max und Turbo ist immer noch custom.
Was steht dann bei fan_power?
Also bei Turbo und Max kommt nach dem umschalten erst custom. Wenn ich dann get Data ausführe passt es.
Bei den anderen stimmt es ohne get Data.
Meine Sensoren sind bald verschmutzt und ich muss sie reinigen und dän zurücksetzen. Werden dann alle Sensoren zurückgesetzt
Zitat von: tobi_555 am 28 Februar 2018, 17:20:23
Meine Sensoren sind bald verschmutzt und ich muss sie reinigen und dän zurücksetzen. Werden dann alle Sensoren zurückgesetzt
Wie genau wird das gemacht? Bei mir wär's nämlich auch bald soweit.
Danke!
Meiner parkt auch unter einem Schrank, ich fahre ihn hiermit 30cm nach vorne:
my $fanpower = ReadingsVal("vacuum","fan_power",77);
fhem"set vacuum fan_power 1;set vacuum remotecontrol start;sleep 8;set vacuum move 0 50 2000;sleep 2;set vacuum remotecontrol stop;sleep 5;set vacuum fan_power $fanpower;set vacuum locate";
fhem "set vacuum charge";
[/quote]
Hallo Markus,
wo lege ich sowas an? Habe versucht es als dummy anzulegen, ohne Erfolg. Kannst du mir hier behilflich sein? Was bedeutet das "move 0 50 2000"?
Danke.
Gruß, M@ik
Hi,
0 Drehung, 50 % Speed, 2 sec fahren
Siehe auch -> https://forum.fhem.de/index.php/topic,73052.msg698450/topicseen.html#msg698450
Der Code ist ein Stück Perl, kannst Du zum Test eingepackt in {} in die FHEm Kommandozeile werfen, oder ansonsten irgendwo, wo Du Perl Code ausführen kannst.
Gruß Otto
BTW: Das Modul ist jetzt im FHEM Update enthalten.Zitat von: drhirn am 28 Februar 2018, 17:30:28
Wie genau wird das gemacht? Bei mir wär's nämlich auch bald soweit.
Zitat von: tobi_555 am 28 Februar 2018, 17:20:23Meine Sensoren sind bald verschmutzt und ich muss sie reinigen und dän zurücksetzen. Werden dann alle Sensoren zurückgesetzt
set vacuum reset_consumable sensors
Es gibt filter, mainbrush, sidebrush, sensors
Funktioniert das bei euch im FHEM UI?Bei mir erscheinen die Parameter nicht, hab aber keine Ahnung warum.filter scheint ein reserved word zu sein das man nicht als Argument definieren darf.
Werde das einfach zu
filters umbenennen, siehe neue Testversion.
Zitat von: Markus M. am 01 März 2018, 00:58:51
BTW: Das Modul ist jetzt im FHEM Update enthalten.
Großartig, danke!
ZitatBTW: Das Modul ist jetzt im FHEM Update enthalten.
Habe gerade ein Update gemacht und folgende Meldung im Log erhalten
Zitat
2018.03.03 17:53:43 1 : open ./FHEM/72_XiaomiDevice.pm failed: Permission denied, trying to restore the previous version and aborting the update
Zitat von: stoxx am 03 März 2018, 17:57:03
Habe gerade ein Update gemacht und folgende Meldung im Log erhalten
Dann solltest du mal die Dateirechte von 72_XiaomiDevice.pm so anpassen, dass der User unter dem FHEM läuft darauf schreiben darf. Du hast sie vermutlich bisher immer als root dorthin kopiert.
ZitatDu hast sie vermutlich bisher immer als root dorthin kopiert.
Das wars, jetzt klappts! Danke für die schnelle Antwort!
Hallo MArkus,
ich bekomme beim FHEM Start seit dem letzten Update diese Meldung
PERL WARNING: Use of uninitialized value in string eq at ./FHEM/72_XiaomiDevice.pm line 1532.
Version
72_XiaomiDevice.pm 16324 2018-03-03 22:39:33Z moises
Gruß Otto
Zitat von: Otto123 am 10 März 2018, 20:05:04ich bekomme beim FHEM Start seit dem letzten Update diese Meldung
PERL WARNING: Use of uninitialized value in string eq at ./FHEM/72_XiaomiDevice.pm line 1532.
Danke für die Meldung! Mach morgen nochmal ein Update.
Hi,
erstmal Danke für das Modul.
Ein Frage zum Thema "Ausparken unter dem Schrank":
Ich habe die Version 2 mit Mob.
Hier ist es so, dass das Gerät vorwärts an die Ladestation fährt. Beim Start fährt der Sauger zunächst rückwärts von der Bodenplatte und dreht sich anschließend um 180 Grad.
Leider fehlt im Modul bei "remotecontrol" die Option für "Rückwärtsfahren". Somit klappt das mit dem manuellen raus fahren leider nicht...
Kannst Du das einbauen?
Gruß Chris
Zitat von: hatamoto am 10 März 2018, 21:34:37
Leider fehlt im Modul bei "remotecontrol" die Option für "Rückwärtsfahren". Somit klappt das mit dem manuellen raus fahren leider nicht...
Kannst Du das einbauen?
Nö. Ist nämlich schon drin [emoji4]
Einfach einen negativen Speed angeben, dann fährt er rückwärts:
set vacuum move 0 -40 1000
Hatte ich vor eben irgendwie noch nie ausprobiert [emoji4]
Probier bitte mal, ob beim V2
remotecontrol forward/left/right überhaupt irgendwas (im Log mit verbose 5 oder am Staubsauger) tut.
Ich denke das wird in der App so verwendet, dass ein einzelnes Kommando gar nichts bewitkt.
Und hast du dann bei deinem in der App eigentlich einen Button für Rückwärts und kannst den Joystick nach hinten bewegen?
Hallo Markus,
mit der Version
72_XiaomiDevice.pm 16377 2018-03-10 19:22:52Z moises
Ist der Logeintrag verschwunden.
Jetzt kommt nur noch
Crypt::Rijndael_PP
Das kommt aber schon länger.
Ich hatte mich für AES entschieden (Crypt::Cipher::AES oder Crypt::Rijndael_PP CPAN) ist es jetzt doch besser beide?
Gruß Otto
Zitat von: Otto123 am 11 März 2018, 18:47:38
Jetzt kommt nur noch
Crypt::Rijndael_PP
Das kommt aber schon länger.
Ich hatte mich für AES entschieden (Crypt::Cipher::AES oder Crypt::Rijndael_PP CPAN) ist es jetzt doch besser beide?
Was genau seht da im Log? Ich denke das kannst du ignorieren.
2018.03.11 16:28:19 3: MyRobot: Crypt::Rijndael_PP not found
2018.03.11 16:28:19 3: MyRobot: initialized, using AES
Klar das ignoriere ich schon lange - läuft ja.
Wäre die Frage ob Du das im Loglevel in Richtung 4 verschiebst :)
Gruß Otto
Überredet. Bekommst du aber erst irgendwann beim nächsten Checkin :)
Hallo zusammen
Ich habe am Samstag mein Rocky bekommen :)
Token ausgelesen und in FHEM definiert, Verbindung zum Rocky funktioniert, soweit alles ok.
Aber für was benötige ich jetzt zusätzlich noch das "wifi_setup"? Irgendwie stehe ich gerade auf den Schlauch.....
Gruss birdy
Auf die Gefahr hin, dass ich irgendwas falsch verstanden hab: Im ersten Post steht, dass für die Lampen kein Token mehr notwendig ist. Das sollte dann auch für die Philips Xiaomi Bulbs gelten?
Jedenfalls bekomme ich sie nicht ohne Weiteres angesprochen. Im Log stehtBulb: received token: 00000000000000000000000000000000
Bulb: invalid JSON:
Also brauche ich wahrscheinlich doch den Token?
DEF 192.168.0.9
FD 13
NAME Bulb
NR 27
STATE on
TYPE XiaomiDevice
READINGS:
2018-03-13 20:09:06 state connected
helper:
ConnectionState connected
crypt AES
delay 0
dev 03ae
id a344
ip 192.168.0.9
last_read 1520972451
packetid 21
port 54321
sequence 1520967602
token 00000000000000000000000000000000
packet:
1 wifi_stats
10 power_off
11 power_off
12 power_on
13 lamp_data
14 device_info
15 device_info
16 lamp_data
17 wifi_stats
18 set_toggle
19 lamp_data
2 device_info
20 lamp_data
3 lamp_data
4 lamp_data
5 power_off
6 power_off
7 power_off
8 power_off
9 power_off
Attributes:
stateFormat on
subType SmartLamp
Zitat von: birdy am 12 März 2018, 22:04:09
Aber für was benötige ich jetzt zusätzlich noch das "wifi_setup"?
Benötigst du nicht. Das wäre nur dazu da, die Settings zu ändern.
Zitat von: floflo am 13 März 2018, 21:27:12
Auf die Gefahr hin, dass ich irgendwas falsch verstanden hab: Im ersten Post steht, dass für die Lampen kein Token mehr notwendig ist. Das sollte dann auch für die Philips Xiaomi Bulbs gelten?
Jedenfalls bekomme ich sie nicht ohne Weiteres angesprochen. Im Log steht
Bulb: received token: 00000000000000000000000000000000
Gilt nur für manche Lampen mit manchen Firmwares. Hier musst du ihn auslesen.
Nahazu alle bekannten Möglichkeiten funktionieren aber mittlerweile nicht mehr.
Versuch eine alte Android App.
Hallo,
gehen denn ausser dem
Air Purifier 2
auch andere Modelle ? würde mir gerne den
Air Purifier 2s bestellen.
Merci falls jemand infos dazu hat.
Viele liebe Grüße! alex
Könnte funktionieren, muss aber natürlich nicht.
Wenn die Befehle die gleichen sind, geht es ohne Anpassungen im Modul. Ich würde sagen die Wahrscheinlichkeit dass es klappt ist relativ groß.
Zitat von: Markus M. am 01 März 2018, 00:58:51
BTW: Das Modul ist jetzt im FHEM Update enthalten.
set vacuum reset_consumable sensors
Es gibt filter, mainbrush, sidebrush, sensors
Funktioniert das bei euch im FHEM UI?
Bei mir erscheinen die Parameter nicht, hab aber keine Ahnung warum.
filter scheint ein reserved word zu sein das man nicht als Argument definieren darf.
Werde das einfach zu filters umbenennen, siehe neue Testversion.
Das Rücksetzen nach reinigen der Sensoren funktioniert bei mir mit V2
Lässt sich mit diesem Modul auch die reine WLAN-Steckdose von Xiaomi steuern?
Über das XiaomiSmartHome-Modul von Torte geht es nicht, da diese Steckdose kein Zigbee hat und auch nicht über das Xiaomi-Gateway eingebunden wird, sondern nur rein über WLAN.
Keine Ahnung. Wenn du den Token hast, kannst du sie testweise als Lampe definieren und einfach mal on/off probieren.
Zitat von: Markus M. am 15 März 2018, 22:15:13
Keine Ahnung. Wenn du den Token hast, kannst du sie testweise als Lampe definieren und einfach mal on/off probieren.
Scheint zu funktionieren, allerdings bleibt STATE auf ? ? ? stehen.
set MiPlug on / set MiPlug off funktioniert aber
Hier das List:
Internals:
CFGFN
DEF 192.168.179.##
FD 40
NAME MiPlug
NR 147
STATE ???
TYPE XiaomiDevice
mac 34:CE:###########
model chuangmi.plug.m1
token 2f97e417d3ebf8ae################
wifi_firmware SD878x-14.76.36.p84-702.1.0-WM
READINGS:
2018-03-16 22:52:56 device_firmware 1.2.4_17
2018-03-16 22:52:56 device_uptime 178.39
2018-03-16 22:56:46 error none
2018-03-16 22:56:46 power off
2018-03-16 22:53:03 wifi_auth_fail_count 0
2018-03-16 22:53:03 wifi_conn_fail_count 0
2018-03-16 22:53:03 wifi_conn_success_count 5
2018-03-16 22:53:03 wifi_dhcp_fail_count 0
2018-03-16 22:52:56 wifi_rssi -74
2018-03-16 22:53:03 wifi_state online
helper:
ConnectionState connected
crypt AES
delay 0
dev 03ed
id fdfc
ip 192.168.179.##
last_read 1521237406
packetid 26
port 54321
sequence 1520594984
token 2f97e417d3eb#################
packet:
Das mit dem STATE ist so :) Selbstbaukasten
Nimmst Du einfach attr <> stateFormat state oder was immer Du willst.
Gruß Otto
Rückwärts fahren mit negativem Speed hat geklappt.
Außerdem habe ich festgestellt, dass der Sauger, wenn er an der Ladestation ist und man "remotecontrol start" ausführt, automatisch zurück fährt und sich um 180 Grad dreht.
Hier noch die Auszüge aus dem Log:
2018.03.18 19:56:38 4: roborock_01: write {"id":213,"method":"app_rc_left","params":[10]} (47)
2018.03.18 19:56:38 5: roborock_01: send 21310050000000000471554a000055799944e26691f4267428f218071dc3c1be7e43ffe97225fe6eb3dd6742dac7de484e4fe302b23541167a3ee91e73acba5bdc2ae279f78c75060c9fa1af4bbd0c9e
2018.03.18 19:56:38 5: roborock_01 Send SUCCESS
2018.03.18 19:56:38 5: roborock_01 > 21310050000000000471554a000055799944e26691f4267428f218071dc3c1be7e43ffe97225fe6eb3dd6742dac7de484e4fe302b23541167a3ee91e73acba5bdc2ae279f78c75060c9fa1af4bbd0c9e
2018.03.18 19:56:38 5: roborock_01 < 21310040000000000471554a000055791137635e327c30b7fdec498234857af440716b2cefa515c48d7a2bc50af281ca70228ff3468049c52974a482423b08a4 (64)
2018.03.18 19:56:38 5: roborock_01: decrypted
{"result":["ok"],"id":213}
2018.03.18 19:56:38 5: roborock_01: parse id 213
$VAR1 = {
'id' => 213,
'result' => [
'ok'
]
};
2018.03.18 19:56:38 4: roborock_01: parse id 213 / app_rc_left
2018.03.18 19:56:38 4: roborock_01: msg ref is ARRAY
2018.03.18 19:56:46 4: roborock_01: write {"id":214,"method":"app_rc_right","params":[10]} (48)
2018.03.18 19:56:46 5: roborock_01: send 21310060000000000471554a000055815dfdbdfc29400fa2aaf61d25e5ec3f40278bde0f5383ba856bdac26785fe544182c1c842b99763b6ea08ed8a5ec556010e21eb2cbc7126f2432a8742e963ba7180accffe19682c2782cdfcade4931072
2018.03.18 19:56:46 5: roborock_01 Send SUCCESS
2018.03.18 19:56:46 5: roborock_01 > 21310060000000000471554a000055815dfdbdfc29400fa2aaf61d25e5ec3f40278bde0f5383ba856bdac26785fe544182c1c842b99763b6ea08ed8a5ec556010e21eb2cbc7126f2432a8742e963ba7180accffe19682c2782cdfcade4931072
2018.03.18 19:56:46 5: roborock_01 < 21310040000000000471554a0000558110766ffab98f5f6ba7caaa6df1b0a8df40716b2cefa515c48d7a2bc50af281ca503970c9b3a406973947350f5938619e (64)
2018.03.18 19:56:46 5: roborock_01: decrypted
{"result":["ok"],"id":214}
2018.03.18 19:56:46 5: roborock_01: parse id 214
$VAR1 = {
'result' => [
'ok'
],
'id' => 214
};
2018.03.18 19:56:46 4: roborock_01: parse id 214 / app_rc_right
2018.03.18 19:56:46 4: roborock_01: msg ref is ARRAY
2018.03.18 19:56:53 4: roborock_01: write {"id":215,"method":"app_rc_end","params":[1]} (45)
2018.03.18 19:56:53 5: roborock_01: send 21310050000000000471554a00005588a767f579278ad0401442de69d602b39b675758188dcb8057723f6cb60e39fae31273e6cdac4280545cbc2a611d6d730fbe6ae3cada750977d40760206638fab8
2018.03.18 19:56:53 5: roborock_01 Send SUCCESS
2018.03.18 19:56:53 5: roborock_01 > 21310050000000000471554a00005588a767f579278ad0401442de69d602b39b675758188dcb8057723f6cb60e39fae31273e6cdac4280545cbc2a611d6d730fbe6ae3cada750977d40760206638fab8
2018.03.18 19:56:53 5: roborock_01 < 21310040000000000471554a000055889744bad544c3af717109b1c020d2ebbc40716b2cefa515c48d7a2bc50af281cad6728ae6b230bfd514b2dc691ba1f4aa (64)
2018.03.18 19:56:53 5: roborock_01: decrypted
{"result":["ok"],"id":215}
2018.03.18 19:56:53 5: roborock_01: parse id 215
$VAR1 = {
'id' => 215,
'result' => [
'ok'
]
};
2018.03.18 19:56:53 4: roborock_01: parse id 215 / app_rc_end
2018.03.18 19:56:53 4: roborock_01: msg ref is ARRAY
2018.03.18 19:56:53 5: roborock_01: parse result for 215 is ARRAY(0x54f7408)
Die Fahr-Kommandos werden bei mir über remotecontrol aber nicht zuverlässig ausgeführt. Ich kann 1x geradeaus fahren und das war's dann. Links/Rechts geht nicht.
Gruß Chris
Hallo Chris,
mal noch als Hinweis zu den Fahrkommandos -> https://forum.fhem.de/index.php/topic,73052.msg698450.html#msg698450
Gruß Otto
Hallo,
zur Info für die Interessierten:
Ich hab hier (https://github.com/ioBroker/ioBroker.mihome-vacuum/blob/HEAD/README_de.md#Komandos-des-S50) gesehen, dass man bei der 2nd Generation (S50) auch die "GoTo" und "ZonedClean" Funktion nutzen kann.
Das funktioniert auch, wenn man die 72_XiaomiDevice.pm entsprechend um die Befehle (app_goto_target und app_zoned_clean) ergänzt.
- Vorteil hier aus meiner Sicht, dass die GoTo Funktion um Hindernisse rumnavigiert und nicht, wie mit den RemoteFunktionen am ersten Stuhl abbricht.
- Nachteil, dass die Zielposition von der aktuellen Karte abhängt (und auf dieser vorhanden sein muss!?). Ich suche da noch eine Lösung.
Use Case wäre, dass ich unseren Wohnessbereich gerne in 3-4 Bereiche aufteilen lassen würde und die über FHEM/Alexa (und ohne MiApp) dann separat reinigen lassen kann, wobei der Sauger als Startpunkt immer sein Dock an fester Position hätte.
Freu mich über Ideen/Meinugen dazu.
wiego
Ich kann dazu leider nur die Meinung von Flole wiedergeben: Kannst du vergessen.
Das Problem ist, dass der Nullpunkt der Karte wohl nicht ansatzweise konstant bleibt und du deshalb nie weißt was du eingeben musst.
Eine Möglichkeit das auszulesen haben wir auch nicht.
Die Befehle baue ich trotzdem bei Gelegenheit noch ein ;)
Ja erlebe es auch nicht als wirklich zufriendstellend.
Die Ladestation ist zwar immer in der Mitte der Karte vermutlich auf Position 25600,25600,
aber leider dreht es die Karte manchmal beim Ausfahren aus der Ladestation und dann passen die Zonen nicht mehr.
Wenn man ihn nur irgendwie justieren könnte, an einer Wand oder so... aber dafür scheint es keinen Befehl zu geben (und die App schafft das ja auch nicht, man muss immer wieder neu die Zonen erstellen). Ich hoffe auf ein Update.
Mein Patch (ohne Gewähr und große Tests) im Anhang.
Beispiel goto x,y:
goTo 24000,24000
Beisiel zoneClean x1,y1,x2,y2,count
zoneClean 23000,23000,25000,25000,1
Diese neuen Funktionen klappen aber nicht mit dem "alten" v.1 Sauger, oder?
scheint wohl mit dem neusten Firmwareupdate ( 3.3.9_003194 ) auch aufm v1 implementiert zu sein, ist aber noch nicht sichtbar..
Die Zonen?
Was passiert dann wenn du die Kommandos absetzt?
Ich hab's aus der Ferne (bin im Büro) ausprobiert und zuvor die Firmware mit der Flole-app auf den Stand 3.3.9_003194 gebracht.
Soweit ich es von hier auf der gescannten Karte sehen kann reagiert er auf goTo, evtl auch auf zoneClean, aber bei zoneClean hängt sich die MiHome-app auf und die gescannte Karte wird gelöscht.
Bei meinem scheint zoneClean nicht zu funktionieren. Er fährt dann immer nur zurück zur Ladestation.
aus der App heraus? was sagt er? nur "fahre zurück zurm laden" oder auch "eine Zone konnte nicht gereinigt werden"?
ich habe die Vermutung, wenn die Zone nicht auf der Karte oder erreichbar ist (laut sensorik), oder wenn man das Rechteck falsch definiert (das kann man aber über die APP nicht flasch machen), dass er einfach sofort wieder ins Dock fährt... teste ich heute Abend nochmal
Was er sagt, weiß ich nicht - bin im Büro. Ich sehe nur, daß er wieder zur Station fährt.
Hi.
@wiego : Ich bin da ganz auf deiner Seite. Den einzigen Sinn sehe ich in dem Neuaufbau der Karte, dass der Robi sich problemlos in einer neuen oder veränderten Umgebung zurechtfindet.
Aber da sich die eigene Wohnung so selten grundlegend ändert, ebensowenig wie die Position der Ladestation, wäre es wirklich wünschenswert, wenn man eine Karte als Ausgangskarte definieren und festlegen könnte, so dass die Zonen, sobald einmal festgelegt beibehalten werden.
Ich würde auch gerne die letzte Karte des letzten Saugvorganges aus der SQLite-DB auslesen und in FHEM anzeigen. Das habe ich aber leider noch nicht geschafft :-(
Hallo wiego, von welcher app redest Du eigentlich? In der Mi Home app kann ich nichts zum Thema zoneclean finden.
Oder meinst Du die Flole app? Darin kenne ich mich noch nicht aus und hab sie nur zum update auf die firmware 3.3.9_003194 benutzt.
Mi Home hat sie mir nicht angeboten. Die neuen Befehle hab ich über FHEM abgesetzt.
Ich bau mir demnächst mal die neue Firmware und teste ein wenig, dann kommen auch die neuen Features ins Update.
Wird aber definitiv bis nach Ostern dauern.
@RappaSan:
ich meinte die MiHome App.. bei der 2nd Generation des Saugers kann man da Zonen mit dem Finger ziehen, scheint es wohl bei der 1st Gen nicht zu geben.
Wenn du den Befehl über FHEM sendest, ist mir das auch schon passiert, dass er sofort zurückfährt, zum einen wenn der Befehl nicht richtig formatiert war (hoffe mein Patch hat keinen Fehler) und zum anderen, wenn ich das Rechteck nicht richtig aufgebaut habe, ich bau es jetzt immer von klein nach groß auf also x1 < x2 und y1 < y2..
Da sehe ich gerade dass ich in meinem Beispiel eine 0 vergessen habe ::) - korrigiert
:(
Hab die Firmware wieder auf die offizielle 3095 zurückgeschraubt.
Die neue Version scheint mit den Timezones anders umzugehen. Heute Nacht um 3 meinte mein SauBär, es wäre 9 Uhr und eine geplante Reinigung stünde an.
Mit der MiHome app gab es bei der Überprüfung der Timezone regelmäßig einen Absturz.
Also Firmware heute morgen gewechselt und alles war wieder zugänglich.
Warten wir auf die Fehlerbehebung bzw. die nächste app-Version... >:(
Hallo Leute,
mein Xiaomi Saugroboter will nicht mehr mit FHEM sprechen.
Es begann damit, dass gestern Nacht wohl ein Update auf dem Sauger eingespielt wurde. Heute morgen sprach er Chinesisch und konnte sich nicht mehr ins WLAN einloggen. Habe dann nicht lang gefackelt und den Roboter reseted. Nun wollt ich nach Anleitung von Matthias Kleine den neuen Token auslesen. Dieser ist nun 96 Zeichen lang, der alte war nur 32 Zeichen lang. FHEM sagt ,,Encryption cipher error" - ich vermute auf Grund des längeren Tokens. Kann jemand helfen?
- Firmware vom Roboter ist die aktuellste
- XiaomiDevice Plugin ist ebenfalls das aktuellste
- FHEM auch up-to-date
MiToolkit unter Windows schon probiert?
Zitat von: eckonator am 30 März 2018, 14:50:53
Nun wollt ich nach Anleitung von Matthias Kleine den neuen Token auslesen. Dieser ist nun 96 Zeichen lang, der alte war nur 32 Zeichen lang. FHEM sagt ,,Encryption cipher error" - ich vermute auf Grund des längeren Tokens. Kann jemand helfen?
Crypt::ECB hast du dann wohl, die Entschlüsselung funktioniert aber irgendwie nicht auf allen Systemen.
Poste mal den Token zum Entschlüsseln.
Zitat von: eckonator am 30 März 2018, 16:18:07e8de37bd5110909d9ff95f9eaf39fc3307e1806476d894179a8876cb92b843d20143db63ee66b0cdff9f69917680151e
4f6e7557376a667057563161364b3134
:)
Danke, damit klappt es :)
Wie hast du den Key umgerechnet?
Ist es kritisch meinen Key hier öffentlichen zu posten?
Sollte ich meinen Beitrag besser wieder löschen?
Vielen Dank für eure Hilfe.
Das ist im Modul mit drin, die Entschlüsselung funktioniert nur bei dir aus irgendeinem Grund nicht, obwohl alles da ist.
Welches OS und Perl hast du unter FHEM?
Der lokale Token ist nicht wirklich sicherheitsrelevant. Es sei denn du hast Mitbewohner, die am Sonntag besonders kreativ werden wollen ;)
This is perl 5, version 24, subversion 1
Und läuft auf einem RPi3 mit Raspbian (Linux 4.14.30-v7+)
Vielen Dank für deine schnelle Hilfe, der Feiertag ist gerettet :)
Hi,
Ich habe bemerkt, dass sich mein xiaomi v1 roboter seit der letzten Version regelmässig schlafen legt und man ihn vor benutzung in fhem per set xx wakeup wieder wecken muss.
Die play , stop und pause Taste funktionieren nur wenn er gerade wach ist.
Wie geht ihr damit um ? Weckt ihr den regelmässig ?
Schöne Ostern
Joachim
Ist mir noch gar nicht aufgefallen, ich habe mich nur gefragt was das wakeup genau macht.
Wann passiert das? Funktioniert dann noch irgendwas anderes nicht?
Und noch eine dumme Frage:
Wie komme ich eigentlich beim V1 an gültige Werte für Zonen und Punkte auf der Karte? Muss ich da wirklich mit Photoshop ausmessen?
Kurzes Feedback: Bei mir ist nach einem Reset und neu verbinden auch der "Encryption cipher error" aufgetreten.
Hab den Token jetzt "von Hand" über http://aes.online-domain-tools.com/ entschlüsselt - damit funktioniert es wieder.
Systemdaten:
Xiaomi Firmware 3.3.9_003194
Linux version 4.14.30-v7+
Perl v5.24.1
74_XiaomiBTLESens.pm 16474 2018-03-24 12:23:15Z CoolTux
72_XiaomiDevice.pm 16396 2018-03-13 07:40:34Z moises
No Id found for 71_XiaomiSmartHome.pm
No Id found for 71_XiaomiSmartHome_Device.pm
Token war kein Problem - ich hab die App 5.0.19 genommen, miio2.db danach (also nach Wifi reset und einrichtung Vakuum) kopiert und mir asqlitemanager geöffnet (Root brauchts aber) - da steht der token drin, 32 Stellig.
Allerdings habe ich ein anderes Problem: Bei mir sagt Fhem bei der Einrichtung
Cannot load module XiaomiDevice
Was mach ich falsch?
Ein Reload ist aufschlussreicher
Can't locate Crypt/CBC.pm in @INC (you may need to install the Crypt::CBC module) (@INC contains: fhem.p/lib fhem.p/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /usr/local/FHEM/share/fhem/FHEM/lib . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at ./FHEM/72_XiaomiDevice.pm line 143.
BEGIN failed--compilation aborted at ./FHEM/72_XiaomiDevice.pm line 143.
Sagt mir schon mehr .. aber wie krieg ich das ?
Dieser Thread hat weitergeholfen (hoffe ich) https://forum.fhem.de/index.php?topic=66267.15
cpan install Crypt::CBC
muss ausgeführt werden (in meinem Fall auf dem Raspi) - nur falls mal jemand vor dem selben Problem steht. Mal schauen obs klappt. ::)
- Update: klappte leider nicht, selber fehler bleibt bestehen obwohl CBC nun installiert ist.
Ich musste also die 72_XiaomiDevice.pm als SU editieren und die Zeile einfügen (notiz an mich unter /opt/fhem/FHEM)
use lib "/home/pi/perl5/lib/perl5";
Somit ist das Verzeichnis in @INC enthalten und der fehler ist weg. Hurra 8) ;D
Hallo florian2833
klingt alles abenteuerlich, das hier war wohl zu einfach? -> https://forum.fhem.de/index.php/topic,73052.0.html
Also einfach die erste Seite von dem Thread?
Bei Dir liegt Perl in /home/pi ???
Wie hast Du das dahin bekommen? :'(
Gruß Otto
Hahaha .. ja jetzt wo Du es sagst sehe ich es auch ;D ;D ;D :-[ (nicht gesehen hab ich aber wie man das installiert - so als neuling)
Ich glaub hier ist einiges durcheinandergewirbelt worden, warum das nochmal in einem Extra Lib Verzeichniss drin ist - ist mir schleierhaft. -Nachdem ich das nun alles begradigt hab und mir noch AES nachinstalliert habe funktioniert es :-)
Modul läuft, Xiaomi saugt. Juhu 8)
Dann für Dich der Hinweis:
Es gibt so Modul Threads (wie diesen hier) - erkennbar daran, dass das Modul im Titel genannt wird und vielleicht auch Support dahintersteht.
Dort wird die erste Seite(n) aktuell gehalten mit fundamentalen Informationen, damit man nicht alle "728" Seiten durchlesen muss :)
Gruß Otto
Zitat von: Steigerbalett am 31 März 2018, 14:58:31
Hab den Token jetzt "von Hand" über http://aes.online-domain-tools.com/ entschlüsselt - damit funktioniert es wieder.
Kannst du kurz beschreiben was dort wo eingetragen werden muss?
Dann pack ich das auf die erste Seite des Threads.
>:( Hab gerade mitbekommen, daß das MiToolkit kein token mehr liefert.
Ich habe auf dem Sauger nun die Firmware 3.3.9_003194, auf dem Samsung Mobile die 5.1.22
Welche Möglichkeiten gibt's denn nun noch, an das Token zu kommen?
Irgendeine uralte MiHome Version verwenden, damit sollte es gehen.
z.B. mit der 5.0.19 geht es noch
[OT]
Ein "Hallo" an alle Xiaomi Sauger Besitzer! ;)
Ich wollte nur ganz kurz auf meine Fragen bzgl. "rooten" des Saugers und "DustCloud" aufmerksam machen:
https://forum.fhem.de/index.php/topic,86535.msg789573.html
Eigener Thread um das hier nicht zu "sprengen"...
Vielen Dank für Antworten!
Und sorry für die "Eigenwerbung"! ;)
Gruß, Joachim
[/OT]
Zitat von: RappaSan am 02 April 2018, 16:03:53
>:( Hab gerade mitbekommen, daß das MiToolkit kein token mehr liefert.
Ich habe auf dem Sauger nun die Firmware 3.3.9_003194, auf dem Samsung Mobile die 5.1.22
Welche Möglichkeiten gibt's denn nun noch, an das Token zu kommen?
Hi, ich hatte auch Probleme den Token zu bekommen und bin dann im Roboter-Forum auf diesen Link gestoßen:
https://github.com/ioBroker/ioBroker.mihome-vacuum#on-android
Dort gibt es unter "Easy token discovery on Android" einen Link zu einer manipulierten MiHome-App, die den Token direkt in den Wifi-Einstellungen anzeigt. Zur Sicherheit hatte ich vorher mein Passwort geändert und nach dem deinstallieren wieder zurück geändert. Hat aber super funktioniert.
Mit der älteren MiHome app klappte es auch wieder mit dem token.
Aber die 3.3.9_003194 firmware auf dem Sauger selbst ist ja mehr eine Katastrophe. Die app stürzt bei Zugriff auf Vacuum settings reproduzierbar ab, korrekte Zeit auf dem Sauger gibt's auch nicht mehr und keine Möglichkeit, die Zeitzone zu synchronisieren ohne daß die app beendet wird.
So wird das nix mit dem Update. Schade, ich hätte gerne mit den neuen Funktionen goTo und zoneClean experimentiert.
Zitat von: RappaSan am 03 April 2018, 12:04:41
Aber die 3.3.9_003194 firmware auf dem Sauger selbst ist ja mehr eine Katastrophe. Die app stürzt bei Zugriff auf Vacuum settings reproduzierbar ab, korrekte Zeit auf dem Sauger gibt's auch nicht mehr und keine Möglichkeit, die Zeitzone zu synchronisieren ohne daß die app beendet wird.
So wird das nix mit dem Update. Schade, ich hätte gerne mit den neuen Funktionen goTo und zoneClean experimentiert.
Ups...
Gerade vor einer Sekunde hab ich den Update auf 3.3.9_003194.pkg vollzogen...
...allerdings die "gerootete" Version.
Zu lesen hier: https://forum.fhem.de/index.php/topic,86535.msg789573.html
Mal sehen, die neuen Features hätten mich jetzt auch interessiert...
Gruß, Joachim
Bei zu vielen Problemen: Die flole app kann ältere firmwares menügesteuert zurückspielen.
Find ich gut und hat auch viel geholfen. :)
Die neue firmware funktioniert auch - bis auf Dinge, die mit "Vacuum settings" zu tun haben.
Da reicht es schon, nur das Menü aufzurufen und ein wenig zu warten, um die MiHome app abstürzen zu lassen.
Hi, ist ja schon eine ordentliche Diskussion zu diesem Thema geworden. :)
Ich nutze seit ungefähr 2 Monaten den Vacuum 1 Sauger und bin damit sehr zufrieden. Die Integration in FHEM und das Token auslesen hat auch gut funktioniert. Allerdings habe ich das Problem, dass der Saug in FHEM im 4-10min Intervall disconnected aber dann auch automatisch wieder connected. In der Zeit wo er in FHEM als disconnected angezeigt wird, ist er im lokalen Netz aber weiterhin anpingbar. Kennt jemand dieses Phänomen?
Heute habe ich aus Frust auf die letzte Online Firmware 3.3.9_003096 geupdatet, jedoch tritt das Problem weiterhin auf. ;(
Ich betreibe FHEM unter Ubuntu 16.04.3 LTS mit Perl 5.22.1
Jemand eine Idee? Benötigt Ihr noch mehr Informationen?
Hallo robo, vielleicht hast Du ein schwaches wlan Signal. Was sagt denn wifi_rssi? je näher die Zahl an 0 desto besser. -80 wäre also ein schwaches Signal.
Ich habe nach langem probieren und ne konfigurieren endlich! die neue firmware 3.3.9_003194 zum Laufen gebracht und FHEM hat auch noch den richtigen token.
Erstes Problem war, daß man in Mainland China angemeldet sein muß. Dann stürzt auch die app nicht mehr ab, wenn man ins "Vacuum settings" Menü geht.
Und: TADAAA !!! 8)
Es gibt dann 2 neue Buttons in der Karte: Go und Zone cleanup. Und die Dinger funktionieren auch. UNGLAUBLICH!
Wenn das mit dem token nicht klappt, gibt's noch eine spezielle Version MiHome_5.1.24_vevs.apk (siehe Beitrag von duke ein paar Einträge zurück).
Damit wird das token wie beschrieben angezeigt, muß dann händisch in der FHEM definition eingegeben werden.
Zitat von: RappaSan am 04 April 2018, 14:37:26
Dann stürzt auch die app nicht mehr ab, wenn man ins "Vacuum settings" Menü geht.
Und: TADAAA !!! [emoji41]
Es gibt dann 2 neue Buttons in der Karte: Go und Zone cleanup. Und die Dinger funktionieren auch. UNGLAUBLICH!
Hallo RappaSan
Hast du die 1.gen?
Ich hab auch China ausgewählt aber bei mir habe ich die Buttons nicht [emoji20]
Oder hab ich hier was falsch verstanden und es geht gar nicht um die 1. Generation?
1.Gen. Nix mit Mop :)
Seltsam....
Ich will das auch :D
Hast du das normale Update gemacht, also über die miHome app?
Welche Version der App hast du?
iOS oder Android?
(Was gibts noch an Sachen die wichtig sein könnten?)
Gesendet von iPad mit Tapatalk
Scheint aktuell nur mit der iOS App zu gehen..
Also ich hab IOS
App Version: 4.7.5
Sauger Version: 3.3.9_003194
Zitat von: stoxx am 04 April 2018, 16:20:03
Scheint aktuell nur mit der iOS App zu gehen..
Ne mit Android soll es auch gehen: https://meinsmarthome.blog/xiaomi-mi-robot-vacuum-v1-zone-cleanup/
Aber auf meinen Android Handy fehlen die Buttons für die Zone Reinigung auch... ich habe schon überlegt, ob es evtl. am rooting liegt.
Ich werde Freitag mal den Server wechseln und ggfs. den Robi zurück setzen, vielleicht hilft das ja.
P.S. habe heute ein Fhem Update gemacht: feature: 72_XiaomiDevice: added zone and goto
Danke dafür! :) Jetzt fragt sich nur noch wie man an die richtigen Zone Koordinaten kommt. :D
Definitiv geht's mit Android.
Ich hab momentan die 3.3.9_003194 auf dem Sauger.
Mainland China.
English.
Die Version auf Android ist unkritischer, solange sie mindestens 5.0.19 ist.
Wichtig scheint zu sein, daß das neue Einrichten auf dem Handy erfolgt, also der Wechsel zu China und die Neueingabe der Email und des Passworts.
Ich war vorher in Hongkong angemeldet...
Danach wird das Sauger-plugin aktualisiert. Und das scheint in "Mainland China" eine andere Version als sonstwo zu sein.
hmm, ich habe jetzt mal einen reset gemacht und ein neues update mit der aktuellsten APP (IOS)
Aber leider immer noch kein erfolg sowohl bei der android APP als auch bei der IOS APP
vielleicht tut sich ja die tage was
Bei mir hat das Einbinden und Ansteuern der Xiaomi Philips Bulb letztens hervorragend funktioniert. Leider hab ich unbeabsichtigt einen Reset der Lampen durchgeführt. Also anschließend Devices aus App und FHEM raus, in der App neu hinzugefügt, Token ausgelesen (war scheinbar der selbe wie zuvor?), in FHEM neu definiert. Allerdings funktioniert es nicht.
Internals:
DEF 192.168.0.9 f9de7bd0ee1109557dcc955a4c7281e3
FD 22
NAME Flurlicht_re
NR 46
STATE connected
TYPE XiaomiDevice
READINGS:
2018-04-04 20:25:28 state connected
helper:
ConnectionState connected
crypt AES
delay 0
dev 03ae
id a344
ip 192.168.0.9
last_read 1522866621
packetid 355
port 54321
sequence 1522866128
token f9de7bd0ee1109557dcc955a4c7281e3
packet:
1 wifi_stats
10 lamp_data
100 lamp_data
101 lamp_data
102 lamp_data
103 lamp_data
104 lamp_data
105 lamp_data
106 lamp_data
107 lamp_data
108 lamp_data
109 lamp_data
11 lamp_data
110 lamp_data
111 lamp_data
112 lamp_data
113 lamp_data
114 lamp_data
115 lamp_data
116 lamp_data
117 lamp_data
118 lamp_data
119 lamp_data
12 lamp_data
120 lamp_data
121 lamp_data
122 lamp_data
123 lamp_data
124 lamp_data
125 wifi_stats
126 device_info
127 lamp_data
128 lamp_data
129 lamp_data
13 lamp_data
130 lamp_data
131 lamp_data
132 lamp_data
133 lamp_data
134 lamp_data
135 lamp_data
136 lamp_data
137 lamp_data
138 lamp_data
139 lamp_data
14 wifi_stats
140 lamp_data
141 lamp_data
142 lamp_data
143 lamp_data
144 lamp_data
145 lamp_data
146 lamp_data
147 lamp_data
148 lamp_data
149 lamp_data
15 device_info
150 lamp_data
151 lamp_data
152 lamp_data
153 lamp_data
154 lamp_data
155 lamp_data
156 lamp_data
157 lamp_data
158 lamp_data
159 lamp_data
16 lamp_data
160 lamp_data
161 lamp_data
162 lamp_data
163 lamp_data
164 lamp_data
165 lamp_data
166 lamp_data
167 lamp_data
168 lamp_data
169 lamp_data
17 lamp_data
170 lamp_data
171 lamp_data
172 lamp_data
173 lamp_data
174 lamp_data
175 lamp_data
176 lamp_data
177 lamp_data
178 lamp_data
179 lamp_data
18 lamp_data
180 lamp_data
181 lamp_data
182 lamp_data
183 lamp_data
184 lamp_data
185 lamp_data
186 lamp_data
187 lamp_data
188 lamp_data
189 lamp_data
19 lamp_data
190 lamp_data
191 lamp_data
192 lamp_data
193 lamp_data
194 lamp_data
195 lamp_data
196 lamp_data
197 lamp_data
198 lamp_data
199 lamp_data
2 device_info
20 lamp_data
200 lamp_data
201 lamp_data
202 lamp_data
203 lamp_data
204 lamp_data
205 lamp_data
206 lamp_data
207 lamp_data
208 lamp_data
209 lamp_data
21 lamp_data
210 lamp_data
211 lamp_data
212 lamp_data
213 lamp_data
214 lamp_data
215 lamp_data
216 lamp_data
217 lamp_data
218 lamp_data
219 lamp_data
22 lamp_data
220 lamp_data
221 lamp_data
222 lamp_data
223 lamp_data
224 lamp_data
225 lamp_data
226 lamp_data
227 lamp_data
228 lamp_data
229 lamp_data
23 lamp_data
230 lamp_data
231 lamp_data
232 lamp_data
233 lamp_data
234 lamp_data
235 lamp_data
236 wifi_stats
237 device_info
238 lamp_data
239 lamp_data
24 wifi_stats
240 lamp_data
241 lamp_data
242 lamp_data
243 lamp_data
244 lamp_data
245 lamp_data
246 lamp_data
247 lamp_data
248 lamp_data
249 lamp_data
25 device_info
250 lamp_data
251 lamp_data
252 lamp_data
253 lamp_data
254 lamp_data
255 lamp_data
256 lamp_data
257 lamp_data
258 lamp_data
259 lamp_data
26 lamp_data
260 lamp_data
261 lamp_data
262 lamp_data
263 lamp_data
264 lamp_data
265 lamp_data
266 lamp_data
267 lamp_data
268 lamp_data
269 lamp_data
27 lamp_data
270 lamp_data
271 lamp_data
272 lamp_data
273 lamp_data
274 lamp_data
275 lamp_data
276 lamp_data
277 lamp_data
278 lamp_data
279 lamp_data
28 lamp_data
280 lamp_data
281 lamp_data
282 lamp_data
283 lamp_data
284 lamp_data
285 lamp_data
286 lamp_data
287 lamp_data
288 lamp_data
289 lamp_data
29 lamp_data
290 lamp_data
291 lamp_data
292 lamp_data
293 lamp_data
294 lamp_data
295 lamp_data
296 lamp_data
297 lamp_data
298 lamp_data
299 lamp_data
3 lamp_data
30 lamp_data
300 lamp_data
301 lamp_data
302 lamp_data
303 lamp_data
304 lamp_data
305 lamp_data
306 lamp_data
307 lamp_data
308 lamp_data
309 lamp_data
31 lamp_data
310 lamp_data
311 lamp_data
312 lamp_data
313 lamp_data
314 lamp_data
315 lamp_data
316 lamp_data
317 lamp_data
318 lamp_data
319 lamp_data
32 lamp_data
320 lamp_data
321 lamp_data
322 lamp_data
323 lamp_data
324 lamp_data
325 lamp_data
326 lamp_data
327 lamp_data
328 lamp_data
329 lamp_data
33 lamp_data
330 lamp_data
331 lamp_data
332 lamp_data
333 lamp_data
334 lamp_data
335 lamp_data
336 lamp_data
337 lamp_data
338 lamp_data
339 lamp_data
34 lamp_data
340 lamp_data
341 lamp_data
342 lamp_data
343 lamp_data
344 lamp_data
345 lamp_data
346 lamp_data
347 lamp_data
348 lamp_data
349 power_off
35 lamp_data
350 power_on
351 power_off
352 power_on
353 power_off
354 lamp_data
36 lamp_data
37 lamp_data
38 lamp_data
39 lamp_data
4 lamp_data
40 lamp_data
41 wifi_stats
42 device_info
43 lamp_data
44 lamp_data
45 lamp_data
46 lamp_data
47 lamp_data
48 lamp_data
49 lamp_data
5 lamp_data
50 lamp_data
51 lamp_data
52 lamp_data
53 lamp_data
54 lamp_data
55 lamp_data
56 lamp_data
57 lamp_data
58 lamp_data
59 lamp_data
6 lamp_data
60 lamp_data
61 lamp_data
62 lamp_data
63 lamp_data
64 lamp_data
65 lamp_data
66 lamp_data
67 lamp_data
68 lamp_data
69 lamp_data
7 wifi_stats
70 wifi_stats
71 device_info
72 lamp_data
73 lamp_data
74 lamp_data
75 lamp_data
76 lamp_data
77 lamp_data
78 lamp_data
79 lamp_data
8 device_info
80 lamp_data
81 lamp_data
82 lamp_data
83 lamp_data
84 lamp_data
85 lamp_data
86 lamp_data
87 lamp_data
88 lamp_data
89 lamp_data
9 lamp_data
90 lamp_data
91 lamp_data
92 lamp_data
93 lamp_data
94 lamp_data
95 lamp_data
96 lamp_data
97 lamp_data
98 lamp_data
99 lamp_data
Attributes:
subType SmartLamp
verbose 5
Im Logfile steht:
2018.04.04 20:28:30 2: Flurlicht_re: invalid JSON:
2018.04.04 20:28:30 4: Flurlicht_re: write {"id":353,"method":"set_power","params":["off","smooth",10]} (60)
2018.04.04 20:28:30 5: Flurlicht_re: send 213100600000000003aea3440000017e1cc04ac6e0f0c88d28f96f5510d2ba58aa63fa2c93b049fa28cf56b407524319a05aa5f70af28634857eaafa58d800452715beba94f35f9b08c2168aae410d595c73c00c26bcf347a5ca972c9ab80248
2018.04.04 20:28:30 5: Flurlicht_re Send SUCCESS
2018.04.04 20:28:30 5: Flurlicht_re > 213100600000000003aea3440000017e1cc04ac6e0f0c88d28f96f5510d2ba58aa63fa2c93b049fa28cf56b407524319a05aa5f70af28634857eaafa58d800452715beba94f35f9b08c2168aae410d595c73c00c26bcf347a5ca972c9ab80248
2018.04.04 20:28:30 5: Flurlicht_re < 213100600000000003aea3440000017effffffffffffffffffffffffffffffff (96)
2018.04.04 20:28:30 5: Flurlicht_re: decrypted
Sah für mich so aus, als würde es ein Problem mit dem JSON Modul geben. Also habe ich nochmal cpan install JSON probiert, aber dort wird die aktuelle Version als bereits installiert angezeigt.
Was kann ich noch versuchen? Kann es am Token liegen? Dagegen spricht, dass die Lampen immerhin im Status connected sind.
Noch einmal zum Thema Sauger:
Sauger hat die firmware 3.3.9_003194 drauf.
Ich war in Hongkong mit dem Sauger angemeldet, hab den Sauger aus dem WLAN geworfen (beide Tasten gleichzeitig länger drücken).
Dann Wechsel der app auf "Mainland China". Sauger neu anmelden (neues token).
Plugin für den Sauger wird aus China neu heruntergeladen.
Anschließend waren die neuen Buttons in der Karte vorhanden.
@floflo:
Was hat die Philips Bulb mit Vacuum/Airpurifier/Fan zut tun?
Gehört das nicht eher in https://forum.fhem.de/index.php/topic,63212.0.html ?
Zitat von: Markus M. am 02 April 2018, 11:22:48
Kannst du kurz beschreiben was dort wo eingetragen werden muss?
Dann pack ich das auf die erste Seite des Threads.
Token entschlüsseln:
1. 96-stelligen Token auslesen und dann bei [ Input text ] einfügen
2. unter dem Feld den Button [ Hex ] auswählen
3. Bei [ Key ] 32x eine 0 (Null) einfügen
4. unter dem Feld den Button [ Hex ] auswählen
5. Auf das grüne [ Decrypt ] klicken
6. unten rechts steht der entschlüsselte Token
Bei copy&paste müssen die Leerzeichen aus dem entschlüsselten Token noch entfernt werden.
Zitat von: RappaSan am 30 März 2018, 09:30:10
:(
Hab die Firmware wieder auf die offizielle 3095 zurückgeschraubt.
Die neue Version scheint mit den Timezones anders umzugehen. Heute Nacht um 3 meinte mein SauBär, es wäre 9 Uhr und eine geplante Reinigung stünde an.
Mit der MiHome app gab es bei der Überprüfung der Timezone regelmäßig einen Absturz.
Also Firmware heute morgen gewechselt und alles war wieder zugänglich.
Warten wir auf die Fehlerbehebung bzw. die nächste app-Version... >:(
Hatte ich auch,
aber ich hatte auch vergessen (naja ist auch nicht sehr intuitiv) die Zeitzone nach dem Einstellen noch extra zu Synchronisieren.
Also 1. die Zeitzone einstellen und dann noch anschließend 2. die Zeitzone mit dem Staubsauger synchronisieren (Hat mit der aktuellen iOS Version ohne Absturz funktioniert).
Dachte erst das wäre ein entweder/oder aber man muss wohl beides machen.
Und genau da hat's bei meinem setup gehakt. Die app stürzte immer ab.
Erst als ich auf China umgestellt hatte und den Sauger neu ins WLAN gebracht habe, bekam ich das richtige plugin neu installiert. Seitdem hab ich die zusätzlichen buttons und die app stürzt auch nicht mehr ab.
Aber eine andere Zeitzone kann ich bei mir gar nicht wählen, scheint dauerhaft auf Europe/Berlin zu stehen.
Nur Sync wird angeboten.
Hab gerade gemerkt: Zeitzone wird durch die Zeitzone des MobileTel bestimmt.
Zitat von: RappaSan am 05 April 2018, 07:20:05
Noch einmal zum Thema Sauger:
Sauger hat die firmware 3.3.9_003194 drauf.
Ich war in Hongkong mit dem Sauger angemeldet, hab den Sauger aus dem WLAN geworfen (beide Tasten gleichzeitig länger drücken).
Dann Wechsel der app auf "Mainland China". Sauger neu anmelden (neues token).
Plugin für den Sauger wird aus China neu heruntergeladen.
Anschließend waren die neuen Buttons in der Karte vorhanden.
ich hab langsam alles durchprobiert.
komplett reset
wifi reset
app auf china
leider bekomme ich die buttons nicht und bei mir läd auch kein plugin?
Dauert noch ein wenig bis der Rollout durch ist.
Ich bin leider auch noch nicht dabei.
Zitat von: Markus M. am 05 April 2018, 18:03:57
Dauert noch ein wenig bis der Rollout durch ist.
Ich bin leider auch noch nicht dabei.
Das würde es natürlich erklären
Hoffen wir, dass wir bald dran sind :)
nur gut das es die Modivizierte Android App gibt, das macht das Token auslesen um einiges einfacher!
Dann scheint das rollout tatsächlich am Sauger (Seriennr?) zu hängen.
Würde erklären, warum es bei manchen klappt und bei den anderen nicht.
Bei mir konnte ich alle Tablets und Telefone erfolgreich neu einrichten.
Zitat von: RappaSan am 05 April 2018, 19:48:46
Dann scheint das rollout tatsächlich am Sauger (Seriennr?) zu hängen.
Darf ich fragen seid wann du den Sauger hast?
Ich hab meinen seid 05/17 und hab schon öfters Firmware Updates später bekommen als andere aus dem Forum.
Seit Mitte Dezember 17.
Ich habe jetzt auch die Zone Funktion auf meinen Android Handy und gerooteten Sauger. Im Grunde brauch man nur die neuste Mi Home APP + Plugin.
Das vorgehen gibts hier in dem Thread: http://www.roboter-forum.com/showthread.php?26052-Firmware-3-3-9_003194/page9
Das ganze geht nur mit einem gerooteten Android Handy....
Zu erstmal sollte man die Mi Home APP beenden. Dann benötigt man die Mi Home Version 5.1.25 von apkmirror: https://www.apkmirror.com/apk/xiaomi-inc/mihome/
Dazu noch das Plugin von hier:
http://www.roboter-forum.com/showthread.php?26052-Firmware-3-3-9_003194&p=326179&viewfull=1#post326179
http://cloud.tapatalk.com/s/5ac64e247dcc5/12377.apk
Das Plugin (12377.apk) muss man noch in 12126.apk umbenennen und in /data/data/com.xiaomi.smarthome/files/plugin/install/mpk/134/ ablegen, bzw. überschreiben: http://www.roboter-forum.com/showthread.php?26052-Firmware-3-3-9_003194&p=326246&viewfull=1#post326246
Zitat von: RappaSan am 05 April 2018, 07:20:05
@floflo:
Was hat die Philips Bulb mit Vacuum/Airpurifier/Fan zut tun?
Gehört das nicht eher in https://forum.fhem.de/index.php/topic,63212.0.html ?
@RappaSan auf Seite 1 stehen auch die smarten Leuchten. Im Modul kann man auch den SubType SmartLamp vergeben und bei mir funktionierte die ganze Sache schon mal, wie ich erwähnte. In dem von dir verlinkten Topic geht es vor allem um die Xiaomi Sensoren. Also bin ich hier schon richtig, denke ich :)
Hat sonst vielleicht jemand einen Tipp, woran es liegen könnte?
Zitat von: floflo am 06 April 2018, 23:05:34Hat sonst vielleicht jemand einen Tipp, woran es liegen könnte?
Ziemlich sicher falscher Token.
Hey kurze Frage,
ist es mit der neuen Firmware und App, bei dem Gen.1 , möglich eine virtuelle Wall einzurichten oder brauche ich weiterhin das Magnetband...?
Grüße Marcel
Tapatalk iPhone, daher kurz gehalten.
Du kannst ein oder mehrere rechteckige Bereiche wählen, in denen gesaugt werden soll (zoneClean). Aber die sind nicht abzuspeichern.
Wir haben hier eine Treppe mit einem kleineren Absatz. Dieser Absatz ist immer Brandgefährlich für unseren SauBär. Deshalb lege ich dann immer quer davor eine Latte (Baumarkt für kleines Geld, dort, wo Rigipsplatten zu Hause sind).
Zitat von: RappaSan am 06 April 2018, 08:17:02
Seit Mitte Dezember 17.
Jetzt habe ich die Buttons auch
nichts gemacht:D
kommt wohl echt nach und nach
Seit wann ich den Sauger hab weiß ich grad nicht... ;)
Aber seit eben (bzw. eben nachgesehen) hab ich die Knöpfe auch :)
Werd ich dann mal damit "spielen"...
...mal sehen...
Gruß, Joachim
Ich habe das neue Plugin mittlerweile auch, und gleich mal das Modul erweitert:
Attribute point_names und zone_names für Alias Namen von Punkten und Zonen.
goto und zone können alternativ aber auch wie bisher verwendet werden.
attr vacuum point_names dock:[25600,25200] entrance:[22000,23750]
attr vacuum zone_names home:[16200,27250,31650,27650,1],[23700,23050,25200,24200,2] livingroom:[16200,26250,23000,30150,1]
Wenn ihr root auf dem Sauger habt, könnt ihr eure Punkte über das miio.log auslesen, wenn ihr das Loglevel entsprechen hochsetzt.
Das geht unter: /opt/rockrobo/watchdog/ProcessList.conf
miio_client,setsid miio_client -d /mnt/data/miio/ -l 3 >> /mnt/data/rockrobo/rrlog/miio.log 2>&1&,0,1,9
Carpet Mode für den V1 scheint auch in der neuen Firmware zu sein, fehlt aber in der App.
Viel Spass beim Ausprobieren - gebt Bescheid wenn ihr rausfindet was der Modus beim V1 macht ;)
Wo finden wir denn das erweiterte Modul? :)
Hat sich erledigt, mein 98_update.pm hatte ne Macke.
Guten Morgen :)
Wie komme ich denn an die Koordinaten der Map wenn ich keinen root habe?
hab da was gefunden:
https://forum.iobroker.net/viewtopic.php?f=23&t=4898&sid=3fe5d3ceb129bb8d4b890f26884654c1&start=1620
Nicht ganz einfach, aber machbar ohne root.
Also die Koordinaten sind ausgehen von 25500,25500 (Ladestation) zu errechnen, bzw auszuprobieren.
Ich werde das mal so angehen...
Oder ist rooten auch relativ simpel ? Ich habe auf die schnelle kein tuorial zum rooten gefunden.
Z.B. hier: https://forum.fhem.de/index.php/topic,86535.msg789573.html#msg789573
Versch. "Varianten"...
Kurz da nur Handy...
Gruß, Joachim
Zitat von: Skusi am 09 April 2018, 20:50:33Oder ist rooten auch relativ simpel ? Ich habe auf die schnelle kein tuorial zum rooten gefunden.
https://github.com/dgiese/dustcloud/wiki/VacuumRobots-manual-update-root-Howto (https://github.com/dgiese/dustcloud/wiki/VacuumRobots-manual-update-root-Howto)
rooten hört sich für mich noch zu kompliziert an.. Kann man irgendwas machen, dass im EventMonitor die Koordinaten für das ZoneClearing angezeigt werden? So könnte man dann ohne Karten messen etc. auch an die Daten kommen [emoji16]
Hallo zusammen,
sehr schön zu sehen das es hier so fleißig weitergeht, vielen Dank für die direkte Implementierung der neuen Features.
Ich habe gestern mal die GoTo-Funktion getestet. Funktioniert einigermaßen gut. Ich nehme mal an, das die "Koordinaten als "22500,22500" eingegeben werden, oder?
Mein "Schaumi" ist nicht gerootet, daher sind diese Koordinaten eher geschätzt. Hat jemand eine Idee wie ich die Koordinaten der Basis raus bekomme? Den iO-Broker-Threat habe ich mir angesehen, allerdings werde ich da nicht schau draus...
Gruß
Andreas
BTW: nach dem Update musste ich den Token neu aus einem iPhone-Backup lesen, weil der jetzt irgendwie länger ist, hat aber problemlos funktioniert.
22500,25500 ist die Koordinate der Ladestation.
23500,25500 ist ca 1m weiter rechts.
21500,25500 ist ca 1m weiter links.
22500,26500 ist ca 1m höher.
23509,24500 ist ca 1m tiefer.
Auf der aktuellen Map so wie sie in der App angezeigt wird.
Hi...
sehr gut Danke für die Info....
Zitat22500,25500 ist die Koordinate der Ladestation.
Grade gelesen, das die Basis, IMMER diese Koordinaten hat... damit kann ich dann arbeiten...
Zitat von: Skusi am 12 April 2018, 12:51:49
23500,25500 ist ca 1m weiter rechts.
21500,25500 ist ca 1m weiter links.
22500,26500 ist ca 1m höher.
23509,24500 ist ca 1m tiefer.
Also ist jeder 1000er schritt ca einen Meter, na damit kann echt arbeiten
Wenn ich auf FHEM eine Zone schicke, sieht man die dann in der App?
Also wenn man in der App eine Zone auswählt wird die ja so leicht weiß markiert
Nicht das man immer testen muss, und bemerkt das er sonst wo hin fährt :D
Hi...
ja.. das mit der Zonenreinigung würde mich auch interessieren, vor allem, wie man die in FHEM eingibt...
Zone und Punkt werden in der app angezeigt.
Hi...
und wie erwartet FHEM das Format für die Zone?
Zitat von: BooStar am 12 April 2018, 15:58:18und wie erwartet FHEM das Format für die Zone?
So wie in der commandref (zumindest schon teilweise) beschrieben ;)
Entweder direkt über die Werte:
set vacuum goto 22000,23750
set vacuum zone 16200,27250,31650,27650,1 23700,23050,25200,24200,2
Oder du legst dir über die passenden Attribute erst ein Alias an:
attr vacuum point_names dock:[25600,25200] entrance:[22000,23750]
attr vacuum zone_names home:[16200,27250,31650,27650,1],[23700,23050,25200,24200,2] livingroom:[16200,26250,23000,30150,1]
Und verwendest dann statt den Punkten das:
set vacuum goto entrance
set vacuum zone home
Fühlt sich jemand dazu berufen, das ins Wiki einzutragen? :)
Hi,
kann es sein, das die Ladestation am Punkt 25500,25500 ist?
Ist zumindest bei mir scheinbar so :-[
Weiterhin ist bei mir (Version 1):
- meine Ladestation steht links an der Wand, wenn er einfach gerade heraus fährt, fährt er nach rechts in der Karte
- die Koordinaten dann scheinbar x,y
- also x+1000 geht nach rechts, y+1000 geht oben
Ich kann noch nicht genau sagen, wie er oben und unten einrichtet. Im normal Zustand ist bei mir unten etwa Norden, wenn ich ihn in einen benachbarten Raum stelle und starte, ist Norden oben.
Ich würde das ja machen mit dem Wiki, aber dazu ist es mir noch zu unklar :-[
Gruß Otto
Zitat von: Hotbird am 10 April 2018, 18:37:56
rooten hört sich für mich noch zu kompliziert an..
Sonst gibt es hier noch eine Anleitung.
http://www.roboter-forum.com/showthread.php?25097-Root-Zugriff-auf-Xiaomi-Mi-Vacuum-Robot&p=325477&viewfull=1#post325477
Oh, sorry sorry sorry !!!
Zitatkann es sein, das die Ladestation am Punkt 25500,25500 ist?
Otto123 hat natürlich recht. Da ist mir beim schreiben auf dem Handy heute Mittag wohl ein Fehler unterlaufen.
Also hier nochal berichtigt:
25500,25500 ist die Koordinate der Ladestation.
26500,25500 ist ca 1m weiter rechts.
24500,25500 ist ca 1m weiter links.
22500,26500 ist ca 1m höher.
23509,24500 ist ca 1m tiefer.
Ich habe den Sauger einfach mal mit set goto 22000,25000 auf eine Freie Fläche geschickt, dann einen Screenshot der Karte gemacht.
Dann hab ich beide Werte um 1000 geändert, und per set goto 23000,24000 auf eine 2. Position gefahren. Wieder einen Screenshot gemacht, und beide Bilder in Gimp geladen und per Ebene halbtransparent übereinander gelegt.
Dann hab ich per Auswahlwerkzeug eine Rechteck von Pos 1 zu Pos 2 aufgezogen und mir die x/y Größe notiert.
In einer 3. Ebene hab ich dann ein Raster mit diesen Maßen gerendert und per Offset auf die Positionen verschoben.
Ergebnis ist der dritte Dateianhang, mit dem ich nun meine Eckpunkte (unten links - oben rechts) auszählen - rechnen kann.
Mein erster Test war überraschend genau.
set zone 25400,17800,27800,20300,1
x/y unten links - x/y oben rechts - einmal saugen
In der App kann man nach abschicken des Kommandos sofort sehen wo die Zone gelandet ist. Der Saugen saugt auch sofort los. Ich habe dann immer sofort per App abgebrochen und die Werte in 100ter Schritten noch feingetuned.
Am Ende hab ich dann per Attribut
zone_names Täglich:[25400,17800,27800,20300,1],[28000,17500,31500,19400,1],[23300,14400,26700,17600,1]
definiert, und noch schnell einen Button ins FTUI geschraubt. So kann ich nun auf Button am Wandtableau eine 3 Zonen Schnellreinigung der wichtigsten Bereiche für zwischendurch anschieben.
Funktioniert einwandfrei.
An dieser Stelle großen respektvollen dank an Markus M. für das Modul.
Einfach Geil das man wieder per Fhem Dinge realisieren kann, die die App (noch) nicht hergibt.
Zitat von: Skusi am 12 April 2018, 19:53:51
Also hier nochal berichtigt:
25500,25500 ist die Koordinate der Ladestation.
26500,25500 ist ca 1m weiter rechts.
24500,25500 ist ca 1m weiter links.
22500,26500 ist ca 1m höher.
23509,24500 ist ca 1m tiefer.
Ja das kann ich so bestätigen.
Wie es scheint werden die XY Koordinaten immer in der "Blickrichtung" von der vom Sauer an der Station berechnet. Nein anscheinen doch nur die X Koordinaten immer in der "Blickrichtung" von der vom Sauer an der Station berechnet.Nein auch das war falsch.... alles aus Sicht der Karte .... (Der Robi wollte mich grade echt Veräppeln ;) )
Moin,
ich habe mal gerade noch etwas experimentiert.
Die Koordinaten sind immer aus Blickrichtung der Karte. Wir er die genau festmacht, konnte ich noch nicht ermitteln.
Der Ursprung (25500,25500) wird beim start festgelegt, egal ob per set <> start oder durch drücken auf den Startknopf. Er hat primär nix mit Ladestation zu tun.
Man kann ihn per Hand wegschaffen und an anderer Stelle mit cleanup starten, dann pause machen und mit Hilfe von App und Karte kurz vor die Ladestation fahren (ca. 0,5 meter davor), dann set charge sagen und er findet die Ladestation. Wenn man dann goto 25500, 25500 macht geht er an den alten Startpunkt zurück. Scheinbar nach etwas Zeit in der Ladestation? bzw. erst wenn man ihn aus der Ladestation mit cleanup startet, setzt er den Ursprung neu.
Mann kann ihn unbekannte Punkte anfahren lassen, wenn er auf dem Weg dahin keine geschlossenen Wände auf seiner alten Karte hat. War in der alten Karte die Tür zu war, versucht er völlig unsinnige Umwege.
Er ermittelt eine neue Karte wenn er mit dem Cleanup anfängt, man kann die Verwendung der alten Karte also verhindern:
wenn man kurz mit cleanup startet und dann pause macht um dann letzlich eine Zielkoordinate anzugeben.
Das ist wichtig, wenn er als Letztes per Hand an einer ganzen anderen Stelle des Hauses war.
Die Längen Einheit der Koordinaten ist nicht exakt millimeter sondern etwas kürzer. So in etwa Faktor 0,91 was irgendwie stark nach yard als Basis "riecht". Aber wird denn im yard "Land" dann wirklich in tausendstel geteilt? Erscheint mir wieder nicht logisch. ::)
Wenn ich ihn beim Start um 180 grad drehe und an die Wand stelle, ist dann immer noch die neue Karte in der alten Lage, ob er dafür Karte -1 zum "einnorden" zu Rate zieht? Da muss ich weiter testen.
Ansonsten lässt sich mit den Zielkoordinaten viel besser als mit den move Befehlen arbeiten! :D
Gruß Otto
Ich hatte mal Probiert was er macht wenn man ihn in einen geschlossenen Raum Clean startet und einmal die Karte aufbauen lässt,
dann die Tür öffnet und ihn dann auf einen nicht bekannten Teil der Karte schickt.
Ich war dann doch recht überrascht wie schnell er erkannt hat das die Tür nun offen ist,
und sich dann den weg zum Ziel erarbeitet hat.
Die neuen Daten die er bei den Lauf gesammelt hat wurden auch Live immer wieder in der Routenberechnung einbezogen!
Macht schon Spaß mit dem kleinen zu spielen ;)
Zitat von: Shojo am 13 April 2018, 13:41:43
Ich war dann doch recht überrascht wie schnell er erkannt hat das die Tür nun offen ist,
und sich dann den weg zum Ziel erarbeitet hat.
Die neuen Daten die er bei den Lauf gesammelt hat wurden auch Live immer wieder in der Routenberechnung einbezogen!
Ja das stimmt! Aber wenn der Startraum zu kompliziert und die Karte ziemlich komplett ist, dann versucht er zwei oder drei Routen durch vermeintlich "offene" Stellen und wenn die nicht gehen, dann gibt er auf. Während wenn die Karte eher unvollständig ist, dann sucht er nach dem nächsten "Loch".
Sieht man in den angehängten Bildern, der Raum links unten (hinter der Ladestation). Wenn am Vortag die Tür zu war, kann man ihn nicht dahin schicken.
Gruß Otto
Also ich finde es genial, dass xiaomi die zone und goto Funktion auch für den alten Sauger per Update bereitgestellt hat.
Und noch besser, dass Markus gleich nachgelegt hat mit dem Modul.
Gerade mal alles aktualisiert und einmal komplett das Erdgeschoss saugen lassen, um die komplette Karte zu bekommen.
Dann mich mit goto mal herangetastet. Muss sagen, dass man mit etwas räumlichen Denken da recht gut zum Ziel kommt.
Also mal eine Zone Esstisch angelegt und gespeichert, ausserdem noch 2 point names. Werde sicherlich noch weitere Zonen und Points anlegen. Da fällt endlich dieses nervige und anfällige Programmieren von points über die move Funktion weg :)
Bin begeistert. Das ist ein wirklicher Mehrwert an Funktionen.
Danke an Markus und alle anderen fleißigen Helfer.
Hallo,
danke auch nochmal für das tolle Modul.
Lässt sich der ggf. der Xiaomi MI IH 3L Smart Electric Rice Cooker (https://www.amazon.de/Xiaomi-Electric-Intelligenter-elektrischer-Reiskocher/dp/B07723ZQ2M) auch noch mit aufnehmen?
Definieren kann man ihn schon (ohne Token auslesen zu müssen), hier das list:
nternals:
CFGFN
DEF 192.168.0.177
FD 329
NAME KUOG_MIIRC01
NR 67630
STATE connected
TYPE XiaomiDevice
mac 28:6C:07:A9:49:A4
model chunmi.cooker.normal2
token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
wifi_firmware 1.4.030e0bd0
READINGS:
2018-04-15 14:11:08 device_firmware 1.2.8
2018-04-15 14:11:08 device_uptime 0.35
2018-04-15 14:11:07 error none
2018-04-15 14:09:17 state connected
2018-04-15 14:09:54 wifi_auth_fail_count 0
2018-04-15 14:09:54 wifi_conn_fail_count 0
2018-04-15 14:09:54 wifi_conn_success_count 1
2018-04-15 14:09:54 wifi_dhcp_fail_count 0
2018-04-15 14:11:08 wifi_rssi -55
2018-04-15 14:09:54 wifi_state online
helper:
ConnectionState connected
crypt AES
delay 0
dev 032d
id c82e
ip 192.168.0.177
last_read 1523794267
packetid 13
port 54321
sequence 1523793022
token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
packet:
14 wifi_stats
35 get_status
Attributes:
stateFormat state
subType VacuumCleaner
Falls eine Einbindung in das Modul möglich wäre: was kann ich machen um benötigte Infos zu liefern?
Viele Grüße,
Andreas
Zitat von: scooty am 15 April 2018, 14:18:47
Falls eine Einbindung in das Modul möglich wäre: was kann ich machen um benötigte Infos zu liefern?
1. Probier das Modul im Anhang und setz den subType auf 'RiceCooker'
2. Erzähl mir was damit passiert, was noch fehlt
3. Sieh nach was du mit der App sonst noch alles machen kannst
...
4. Erklär mir wie man die Anschaffung eines WLAN Reiskochers am besten rechtfertigt
;)
edit: Datei nochmal runterladen
Hallo Markus,
wow, klasse!
Danke für die superschnelle Reaktion.
Ein list zeigt nun:
Internals:
DEF 192.168.0.177
FD 103
NAME KUOG_MIIRC01
NR 918
STATE connected
TYPE XiaomiDevice
mac 28:6C:07:A9:49:A4
model chunmi.cooker.normal2
token xxxxxxxxxx
wifi_firmware 1.4.030e0bd0
READINGS:
2018-04-15 16:43:18 delay 05040f
2018-04-15 16:34:57 device_firmware 1.2.8
2018-04-15 16:34:57 device_uptime 1.12
2018-04-15 16:43:18 error none
2018-04-15 16:43:18 func waiting
2018-04-15 16:43:18 menu 0001
2018-04-15 16:43:18 setting 140f
2018-04-15 16:43:18 stage null
2018-04-15 15:31:36 state connected
2018-04-15 16:43:18 t_cook 60
2018-04-15 16:43:18 t_func 60
2018-04-15 16:43:18 t_precook -1
2018-04-15 16:43:18 temp 51
2018-04-15 16:43:18 version 00030017
2018-04-15 16:34:57 wifi_auth_fail_count 0
2018-04-15 16:34:57 wifi_conn_fail_count 0
2018-04-15 16:34:57 wifi_conn_success_count 1
2018-04-15 16:34:57 wifi_dhcp_fail_count 0
2018-04-15 16:34:57 wifi_rssi -61
2018-04-15 16:34:57 wifi_state online
helper:
ConnectionState connected
crypt AES
delay 0
dev 032d
id c82e
ip 192.168.0.177
last_read 1523803398
packetid 18
port 54321
sequence 1523798851
token xxxxxxxxxx
packet:
Attributes:
stateFormat state
subType RiceCooker
Folgendes habe ich nun probiert/herausgefunden:
set-Befehle:
stop:
funktioniert, stoppt eine laufendes Programm
ack:
Erzeugt über Auswahlfeld und Eingabezeile leider nur die Fehlermeldung
Unknown argument ack, choose one of reconnect wifi_setup stop nowarn ack
reconnect:
funktioniert, macht ein Netzwerk-reconnect auf den Reiskocher
wifi_setup:
Habe ich nicht ausprobiert
nowarn:
Ich rätsele etwas, was der Befehl bedeuten könnte?
Ein absetzen des Befehls zeigt jedenfalls keine für mich ersichtliche Reaktion.
get-Befehle:
data/device_info/wifi_stats:
Funktionieren und aktualisieren die entsprechenden Readings
settings:
Keine Änderung an Readings feststellbar
Infos zu Readings:
func:
aktueller Status
waiting: Warte auf Start, Möglichkeit zum Setzen des gewünschten Programms
running: Kochvorgang gestartet
precook: Verzögerter Start, warte auf Startzeit des geplanten Programms
menu:
Es wird das über das Bedienfeld ausgewählte Programm angezeigt:
001 Cooking
002 Quick cooking
003 Rice porridge
004 Heat preservation
0100 Personal settings
setting:
Zeigte bei mir immer nur den Wert 1407
temp:
Aktuelle Temperatur des Kochtopfs in Grad Celsius (dec)
Wenn ein Programm läuft (func=running) erscheinen dort allerdings für mich nicht interpretierbare Hex-Werte., z.B. 48°C vor Start, nach Start ein Hex-Wert 040f1634 (grübel).
Hast Du vielleicht eine Idee, was da schiefläuft?
t_cook:
Dauer des ausgewählten Programms bzw. manuell gesetzte Kochdauer in Minuten
t_func:
Restzeit des gestarteten Kochvorgangs in Minuten
t_precook:
Restzeit der Wartezeit bis Beginn des verzögerten Starts (?)
Ehrlich gesagt ist das verzögerte Starten des Kochvorgangs für mich nicht so wichtig, deswegen habe ich dort nicht weiter getestet.
stage:
Ändert sich im Laufe des Kochvorgangs, beobachtete Werte:
00000000ff / 01000000ff /02000000ff / 04000000ff /05000000ff
Könnte das aktuell blinkende Element in der Fortschrittsanzeige anzeigen (Vermutung)
error:
Während meiner Tests konnte ich keinen Fehler produzieren.
delay:
Zeigte bei mir immer nur den Wert 05040f
Und nun zum wichtigsten: Warum ein WLAN Reiskocher?
Bei uns stand sowieso die Anschaffung eines Induktions-/Druck-Reiskochers an.
Allein die Preise der Konkurrenz-Produkte hielten uns davon ab.
Preislich ist der von Xiaomi wirklich unschlagbar und die WLAN Anbindung ist ein nettes Add-On.
Hat sich auf jeden Fall gelohnt, die Qualität des produzierten Reis ist wirklich klasse!
OK, für eine vierköpfige Familie ist er wohl zu klein, aber für uns zwei reicht's.
Über die App gibt's noch ein paar andere Rezepte (z.B. auch einen Kuchen!), da werden wohl auch die Temperaturen im Kochverlauf noch anders gesteuert.
Also nochmals vielen Dank für die schnelle Reaktion,
Andreas
PS:
Jetzt muss ich erst einmal überlegen, ob und wie ich die vom Modul ermittelten Werte sinnvoll verwerte:
Sicherlich so etwas wie evtl. Fehlermeldungen auswerten/weiterleiten.
Mit der Restlaufzeit lässt sich sicherlich auch etwas anfangen.
Ein Start/Stop/Auswahl eines Programms über FHEM machen für mich nicht unbedingt Sinn.
Probier mal den Anhang und koch noch mehr Reis ;)
ack sollter jetzt was auch immer tun,
settings ist nicht implementiert,
temp könnte ein Temperaturverlauf sein,
menu/stage sollte jetzt rudimentär drin sein,
den Rest darfst du dir selber ansehen: https://github.com/rytilahti/python-miio/pull/287/files (https://github.com/rytilahti/python-miio/pull/287/files)
Was es nicht alles gibt von Xiaomi :D
Den könnte man dann eigentlich als Sous Vide garer nehmen. Sofern man ein Programm einstellen kann, welches die Temperatur (50-62 Grad) für einige Stunden konstant hält.
Vielen Dank an Markus für das tolle Modul, damit macht es direkt Spass die Wohnung sauber zu halten.
Ich habe die Koordinaten der einzelnen Zonen ausgemessen und entsprechend in FHEM definiert. Doch ich habe das Problem, dass die Karte des Öfteren mal wieder 90 Grad verdreht ist. Das geht regelmässig mal hin und mal zurück, eine Systematik dahinter habe ich noch nicht erkannt.
Haben andere dieses Problem auch. Kann man etwas dagegen machen?
Zitat von: birdy am 16 April 2018, 22:18:28
Haben andere dieses Problem auch. Kann man etwas dagegen machen?
1.Ja.
2. Wäre gut, ich bin am suchen. Ich dachte durch kurz clean starten, ist heute früh aber gründlich daneben gegangen.
Gruß Otto
Zitat von: Otto123 am 16 April 2018, 22:42:19
... Ich dachte durch kurz clean starten...
Ja genau dadurch wird die Karte frisch aufgebaut. Also eine weitere Chance...
Aber ob es richtig kommt, scheint dem Zufall überlassen zu sein.....
Da benötige ich oft mehrere Versuche, irgendwann klappt es dann schon wieder.
Gruss birdy
Hallo,
ist es möglich den Xiaomi Smart Power Strip v2 (Wifi, 6Ports (3breite, 3schmale)) mit ins Plugin einzubinden ?
Erkannt wird er vom Plugin schon, on / off ist ebenfalls ohne Probleme (schneller als in der MiHome App !!) schaltbar.
Ich würde allerdings liebend gern ein Reading haben welches den aktuellen Stromverbrauch anzeigt (zur Protokollierung / für eigene Routinen)
Auch die Möglichkeit die LED Indikatoren abzuschalten wäre toll :)
Internals:
CFGFN
DEF 192.x.x.x
FD 36
NAME XiaomiSmartStrip
NR 30905
STATE off
TYPE XiaomiDevice
mac xx:xx:xx:xx:xx:xx
model zimi.powerstrip.v2
token 32-Zeichen
wifi_firmware SD878x-14.76.36.p84-702.1.0-WM
READINGS:
2018-04-18 16:09:56 device_firmware 1.2.4_51
2018-04-18 16:09:56 device_uptime 0.21
2018-04-18 16:44:51 error none
2018-04-18 16:44:51 power off
2018-04-18 16:10:08 wifi_auth_fail_count 0
2018-04-18 16:10:08 wifi_conn_fail_count 0
2018-04-18 16:10:08 wifi_conn_success_count 1
2018-04-18 16:10:08 wifi_dhcp_fail_count 0
2018-04-18 16:09:56 wifi_rssi -48
2018-04-18 16:10:08 wifi_state online
helper:
ConnectionState connected
crypt AES
delay 0
dev 03bf
id d9eb
ip 192.x.x.x
last_read 1524062691
packetid 68
port 54321
sequence 1524059853
token 32-Zeichen
packet:
Attributes:
devStateIcon on:rc_GREEN off:rc_RED
stateFormat power
subType Humidifier
ps.: https://www.home-assistant.io/components/switch.xiaomi_miio/ (https://www.home-assistant.io/components/switch.xiaomi_miio/) <- Dort findet man auch ein Paar Informationen falls es helfen sollte :)fhem
>:(
Ich hab mich die letzten Tage des öfteren mit Zoned Clean und Goto versucht, aber das ganze kannste knicken, wenn zwischendurch ein normales Clean läuft. Dann passiert es zu häufig, daß alle vorher ausgetüftelten X/Y Koordinaten an völlig anderer Stelle sind, weil sich die Karte gedreht/verändert/wasauchimmer hat.
Mit diesen ständigen Koordinatenveränderungen ist das so nicht brauchbar.
Hinzu kommt noch, daß der Chinaserver offenbar hoffnungslos überlastet ist. Und nur mit dem kann die app die Zonen auf dem mobile darstellen.
MiHome: 6.
Setzen ! >:(
Bei mir klappt das eigentlich ganz gut.
Ich bin dazu über gegangen keinen komplett Clean mehr zu starten, sondern für die gesamt Reinigung auch ein Zone Clean zu benutzen. Ich habe dann einfach eine Zone definiert die über die gesamte Wohnung geht. So vermeide ich ein ständiges neuzeichen der Map.
Allerdings ist bei mir die Map selbst nach einem normalen Full Clean immer relativ gleich. Ich denke auch das die Map immer dann gedreht wird, wenn die Ausmaße so besser in das Display der App passen. Also wenn der Clean beginnt und die Map neu gezeichnet wird, ist bei mir die Map auch um 90 Grad gedreht. Wenn der Robbi dann aber in Beriche vordringt die die Map in der Breite vergößert, dreht er die Map wieder so wie ich sie zum ausmessen der Koordinaten verwendet habe. Also man sollte den Sauger nicht herumtragen, Spot Cleaning starten, oder ähnliches. Meiner startet immer aus der Ladestation und wird per Fhem zu den Zonen geschickt die ich gesaugt haben will. Danach wieder zurück zur Station, und alles ist bisher fein.
Blöd ist nur wenn beim letzten Full Clean und neu Aufbau der Map eine Zimmertür zu war, und ich den Sauger in dieses Zimmer schicken will. Dann verweigert er und fährt nur kurz von der Station und kehrt gleich wieder zurück und meint er sei fertig.
Gut, hab ich mir einen Goto Point vor die Tür des betreffenden Raumes angelegt. Dann öffne ich die Tür des Raumes, schicke ihn per Goto zu der Tür, und nun erweitert er die Karte um den Raum weil er durch die nun offenen Tür blicken kann. Dann Starte ich die Zone des Raumes und alle läuft prima.
Das ganze will ich noch in einem DOIF automatisch hintereinander ablaufen lassen.
Also ich bin bis heute begeistert von den Möglichkeiten die mir das Modul bietet.
Habe ähnliche Erfahrungen wie RappaSan gemacht und ich finde die Zonefunktion ist noch Verbesserungsbedürftig.
Bei mir hat der Robi einen burnout von über 10 Sekunden im Badezimmer hingelegt, was auch hier von anderen beschrieben ist:
http://www.roboter-forum.com/showthread.php?26052-Firmware-3-3-9_003194&p=328931&viewfull=1#post328931
Hat du mal probiert, ob es einen Unterschied macht, ob der Teppich Modus aus oder an ist?
Hallo zusammenm
auch bei mir hat nun der Roborock Einzug gehalten.
bin ja erstmal total begeistert von dem Teil.
Habe allerdings noch Probleme ihn in fhem einzubinden, vielleicht kann mir jemand helfen?
"Encryption cipher error"
im log bekomme ich die folgende Meldung:
token decryption failed.
Block doesn't look standard padded.
Habes es sowohl mit 32 als auch 96 Zeichen versucht :-(
Jemand ne Idee?
Weiter oben ist eine Anleitung, den langen Token online zu entschlüsseln.
Bin leider noch nicht dazu gekommen das auf die erste Seite zu packen.
Hallo Markus,
vielen Dank für Deine Antwort.
Allerdings war ich der Meinung den "langen" Token gem. Anleitung entschlüsselt und anschließend den "kurzen" verwendet zu haben.
Nachtrag: OK... habe ihn jetzt verbunden ... Habe scheinbar das falsche Token verwendet. Das des Gateways statt des Sauger... :-\
Oh man, :o
Zitat von: Markus M. am 20 April 2018, 09:55:34
Hat du mal probiert, ob es einen Unterschied macht, ob der Teppich Modus aus oder an ist?
Nein leider nicht. Ich meine gelesen zu haben, der Modus erhöht nur die Saugleistung, wenn er einen Teppich erkannt hat.
Bei meinen zweiten Test hat er bei der Zonereinigung, die Zone nach unten verschoben. Das konnte man gut in der APP, an der halb geöffneten Tür sehen, die gab es dann plötzlich zweimal, nur nach unten versetzt.
Danach habe ich das nicht weiter getestet. Da ich danach noch mal ganz normal gesaugt hatte und dann die Koordinaten überhaupt nicht mehr gestimmt haben. Er hat ein Goto verweigert, also vom Wohnzimmer (Ladestation) in den Flur.
Da muss Xiaomi noch mal nachbessern. Oder funktioniert das bei euch?
Zitat von: Markus M. am 15 April 2018, 18:13:51
Probier mal den Anhang und koch noch mehr Reis ;)
ack sollter jetzt was auch immer tun,
settings ist nicht implementiert,
temp könnte ein Temperaturverlauf sein,
menu/stage sollte jetzt rudimentär drin sein,
den Rest darfst du dir selber ansehen: https://github.com/rytilahti/python-miio/pull/287/files (https://github.com/rytilahti/python-miio/pull/287/files)
Hallo Markus,
also für mich passt es soweit.
Vielen lieben Dank für die prompte Aufnahme ins Modul, kommt es dann in eines der nächsten Updates der 72_XiaomiDevice?
Wünsche noch eine sonnigen Restsonntag,
Andreas
Ich mache es wie Skusi. Kein Clean mehr, nur noch Zone.
Aber eine Frage: mir kommt es so vor, als wäre der Sauger beim Zonereinigen "dümmer" als sonst. Er bleibt plötzlich an manchen Stellen viel länger hängen, weil er nicht mehr versucht sich zu lösen, sondern stur weiter fährt.
Kann das einer bestätigen oder muss ich meinen kleinen Freund nur ein wenig aufmuntern ... :P?
Erdnar
Ich kann das bestätigen. Die Strategie scheint deutlich anders als beim Clean mode zu sein.
Zitat von: RappaSan am 23 April 2018, 07:18:59
Ich kann das bestätigen. Die Strategie scheint deutlich anders als beim Clean mode zu sein.
Werde ich mal im Auge behalten...
...konnte aber bislang noch keine Unterschiede ausmachen...
Gruß, Joachim
Eine kurze Zwischenfrage: Ich habe meinen Vacuum in ein "Gastnetz" gehängt und danach auch den neuen Tooken / IP ausgelesen und in FHEM geändert. Jetzt funktioniert der vacuum in FHEM nicht mehr. Kann es daran liegen, dass der Vacuum nicht im gleichen WLAN-Netz wie fhem hängt? Gibt es - falls ja - andere Varianten als ihn wieder in das normale WLAN-Netz zu hängen?
Du musst FHEM Zugriff ins Gastnetz geben, sonst geht es nicht.
@Otto123: Vielen Dank. Wie mache ich das bei einer FritzBox 7490? Oder unmittelbar in FHEM? Hast Du eventuell einen link?
Hallo, ich glaube in den Einstellungen vom Gastnetz in der FritzBox gibt es eine Einstellung das ,,Gäste" aufs Heimnetzwerk zugreifen dürfen
Könnte sein das es das ist?!
Nein, leider nicht. Jedenfalls nicht in aktuellen Beta-Version von AVM. :(
Funktioniert so nicht.
Das Gastnetz ist vom restlichen Netz getrennt, das ist ja gerade die Idee dahinter.
Vielen Dank für die Antworten
Mal ne andere Frage: Der China-Server ist mittlerweile stinklangsam und teilweise unzuverlässig geworden.
Ist das immer noch der einzige Server mit den Zone- und Goto Funktionen?
Zitat von: schlingi am 24 April 2018, 12:54:41
Nein, leider nicht. Jedenfalls nicht in aktuellen Beta-Version von AVM. :(
War ja nicht klar was Du mit "Gastnetz" genau meinst und welche Umgebung Du hast.
Man kann im Gastnetz aber doch die Kommunikation der Gäste untereinander freischalten? Dann die Idee den FHEM Server mit einem zusätzlichen Bein ins Gastnetz zu stellen und lokal die Konfiguration ordentlich machen.
Einschätzung: Aufwändig für den Laien und was ist der erreichbare Effekt?
Gruß Otto
Zitat von: Otto123 am 24 April 2018, 14:11:59Einschätzung: Aufwändig für den Laien und was ist der erreichbare Effekt?
Der geht wohl gegen Null.
Das WiFi Passwort ist nicht mehr auf dem Sauger und er kann das lokale Netz nicht mehr sehen.
Das sind Sicherheitsüberlegungen, die bei einem dermaßen gut analysierten und verbreiteten Gerät eigentlich nur noch theoretischer Natur sind.
Zitat von: Markus M. am 24 April 2018, 14:42:10
Das WiFi Passwort ist nicht mehr auf dem Sauger und er kann das lokale Netz nicht mehr sehen.
Sicher, dass das Passwort (nach letztem Update des Vacuum?) nicht mehr auf dem Sauger ist? Oder muss man dazu etwas ändern? Ich habe ihn nur deshalb in das Gäste-Wlan-Netz gehangen, damit China nicht Zugriff erhält ...
Ich glaube Markus meint das "gute" Wlan Passwort ist in Deinem Fall nicht mehr auf dem Sauger, sondern bloß das "böse"
Ich denke über "China Zugriff" muss man sich an andere Stelle mehr Gedanken machen.
Wie Markus schon sagt, der Sauger ist unter Beobachtung/Kontrolle :)
Gruß Otto
Das hast du falsch verstanden. Natürlich ist das Passwort noch drauf.
Nur stellt sich hier irgendwann die Frage, wo Sicherheitsbedürfnis aufhört und Paranoia anfängt, und was einzelne Maßnahmen im Zweifelsfall bringen.
Das WiFi Passwort ist außerhalb des Sendebereichs erst mal relativ nutzlos. Und solange du ihn mit FHEM steuern möchtest, bekommst du zumindest mit einer FritzBox kein Setup hin das sowohl sicher als auch funktionell ist.
tl;dr: Investiere deine Zeit lieber erstmal darin, dein Gerät zu rooten ;)
Ich habe meine Yeelights auch im Fritzbox-Gast-WLAN, damit sind sie von China erreichbar und ich kann auch die Yeelight-App nutzen.
Der PI mit FHEM hängt per Kabel im Hauptnetz und per WLAN im Gast-WLAN, die Yeelights mit der Gastnetz-IP in FHEM eingebunden, läuft perfekt.
Sollte mit dem Sauger doch auch so gehen. :-)
Seit ungefähr einer halben Stunde ist mein Sauger nun offline.
Der China-Server scheint nicht erreichbar zu sein...
Nach ca. 1 Stunde war der Sauger wieder online.
Zitat von: RappaSan am 25 April 2018, 10:32:13
Seit ungefähr einer halben Stunde ist mein Sauger nun offline.
Der China-Server scheint nicht erreichbar zu sein...
Nach ca. 1 Stunde war der Sauger wieder online.
Kann ich nicht bestätigen, war höchstens mal kurz weg. Das ist aber relativ häufig so:
2018-04-25_09:16:03 Staubi1 Docked
2018-04-25_09:16:03 Staubi1 batteryLevel: 100
2018-04-25_10:06:13 Staubi1 disconnected
2018-04-25_10:11:03 Staubi1 connected
2018-04-25_10:11:03 Staubi1 Docked
2018-04-25_10:11:13 Staubi1 disconnected
2018-04-25_10:11:17 Staubi1 connected
2018-04-25_10:11:17 Staubi1 device_uptime: 12.89
2018-04-25_10:11:17 Staubi1 wifi_rssi: -54
2018-04-25_10:11:23 Staubi1 Docked
Ich denke, daß der Chinaserver mittlerweile ordentlich in Schweiß kommt.
Habe die ganze Zeit ohne Erfolg ein reconnect versucht. Nach ca. 1 Stunde hat es dann endlich wieder geklappt.
Hab eventuell einen kleinen Fehler gefunden:
Wenn man timer1_power auf 100 stellt, verträgt das der Timer im Gerät nicht.
Vorher in der app eingestellt: Sauge Mo, Mi, Fr um 9 Uhr mit full speed.
Nach timer1_power 100: Sauge täglich um 0 Uhr :'(
DAS war heut' Nacht eine hübsche Überraschung... ???
Wusste das Modul an dem Punkt schon irgendwas von dem Timer der in der App gesetzt wurde?
Klingt fast so als hättest du das gesetzt ohne dass die anderen Timer Readings vorhanden waren.
Kannst du das bitte nochmal ausprobieren?
Und ich setze den Default für die Stunde bei Gelegenheit noch auf irgendwas anderes als 0 ;)
Jo. Vorher get settings und get timer_clean.
Nach timer1_power 100: Sauge täglich um 0 Uhr cleaning mode balanced.
Zitat von: Markus M. am 26 April 2018, 10:05:34
Und ich setze den Default für die Stunde bei Gelegenheit noch auf irgendwas anderes als 0 ;)
Mein Vorschlag: 3 ;D ;D ;D
;D
Nur am Wochenende 0, sonst 3.
Deine Tiefschlafphase ist ausgerechnet am Wochenende schon um Mitternacht ? :o
Im Tiefschlaf krieg ich den Lärm nicht mehr mit. 8)
Am Wochenende sprinte ich dann zum SauBär und kann mir im Anschluß noch'n Bier aus dem Kühlschrank holen...
Setz mal bitte in der App einen Timer auf 12:34, lies ihn in FHEM, überprüfe ob er da richtig in die Readings gelesen wird und probier das Ganze dann noch mal.
Diesmal mit Verbose 5, ich will das Log :)
Ich sehe gerade bei den Timer readings nur
timer1 on 2018-04-26 11:11:24
timer1_power 90 2018-04-26 11:11:24
timer1_program start_clean 2018-04-26 11:11:24
Mehr nicht zum Thema timer.
Version:
File Rev Last Change
72_XiaomiDevice.pm 16574 2018-04-08 22:31:18Z moises
Hab ich ein Update verpasst?
Problem gefunden, Testversion auf Seite 1
:)
Du bist nicht nur gut, sondern dazu noch schnell. :D
Jetzt bekomme ich auch die Tage und die Timerzeit angezeigt.
Nur die app kommt mit dem power 100 nicht klar, dann zeigt sie lieber mal gar nix an im cleaning mode.
Ich probier's aus, was beim nächsten Mal powermäßig passiert.
Ich habe meinen Vacuum (Robi) auf Werkzustand und dann die neuste Firmware Version gebracht. Jetzt verliert er aber dauernd die FHEM Verbindung.
Anbei die Verbose 5:
2018.04.26 18:07:19 3: robi: disconnecting
2018.04.26 18:07:19 2: robi: connecting
2018.04.26 18:07:19 3: robi: initialized
2018.04.26 18:07:19 5: robi: initSend
2018.04.26 18:07:19 5: robi Send SUCCESS
2018.04.26 18:07:19 5: robi > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2018.04.26 18:07:19 5: robi < 213100200000000003daa7a45ae1f937ffffffffffffffffffffffffffffffff (32)
2018.04.26 18:07:23 4: robi: write {"id":3732,"method":"miIO.wifi_assoc_state","params":[""]} (58)
2018.04.26 18:07:23 5: robi: send 213100600000000003daa7a45ae1f93bcf8dbbfc040fa147ca6ced415833495d76ba588bc9c4fca8ed7a82ae54728fac2934a80df32f699c4a3ee933d52603c2dcdfb519d77693312f43c281a32a6084543c0e4386a84e0abec2495194a4b1f9
2018.04.26 18:07:23 5: robi Send SUCCESS
2018.04.26 18:07:23 5: robi > 213100600000000003daa7a45ae1f93bcf8dbbfc040fa147ca6ced415833495d76ba588bc9c4fca8ed7a82ae54728fac2934a80df32f699c4a3ee933d52603c2dcdfb519d77693312f43c281a32a6084543c0e4386a84e0abec2495194a4b1f9
2018.04.26 18:07:23 4: robi: write {"id":3733,"method":"miIO.info","params":[""]} (46)
2018.04.26 18:07:23 5: robi: send 213100500000000003daa7a45ae1f93bfada691cee1470f97c5480b22eeb7e27cb1248006ce1bfb2904bc329f4724d36c3dcde297c9b7d3cc40a9a0ad4fc3fc274ee32d6da9ccf0acf8061720d40a27d
2018.04.26 18:07:23 5: robi Send SUCCESS
2018.04.26 18:07:23 5: robi > 213100500000000003daa7a45ae1f93bfada691cee1470f97c5480b22eeb7e27cb1248006ce1bfb2904bc329f4724d36c3dcde297c9b7d3cc40a9a0ad4fc3fc274ee32d6da9ccf0acf8061720d40a27d
2018.04.26 18:07:23 4: robi: write {"id":3734,"method":"get_serial_number","params":[""]} (54)
2018.04.26 18:07:23 5: robi: send 213100600000000003daa7a45ae1f93b938804eab71c10e87fa054ef3d4531efaa248027f0860ce54bb61683b5ddfefe2246fb23254056aaf8c90ab50923df2adc7cd185645010aac13e402d5056442e4e481b6cdd78defe029627234f89ad99
2018.04.26 18:07:23 5: robi Send SUCCESS
2018.04.26 18:07:23 5: robi > 213100600000000003daa7a45ae1f93b938804eab71c10e87fa054ef3d4531efaa248027f0860ce54bb61683b5ddfefe2246fb23254056aaf8c90ab50923df2adc7cd185645010aac13e402d5056442e4e481b6cdd78defe029627234f89ad99
2018.04.26 18:07:23 4: robi: write {"id":3735,"method":"get_timezone","params":[""]} (49)
2018.04.26 18:07:23 5: robi: send 213100600000000003daa7a45ae1f93bad330390910cb78e184a7fb0072e45ce5032f2efa81246f9b8eed44f5dd3d55a8252fcbc809b08afee2a635fd8023b5d05fdcf38c18f88f87df6a2c7f50cb049a3f389216b7e0a17f2d38fd25b85eba6
2018.04.26 18:07:23 5: robi Send SUCCESS
2018.04.26 18:07:23 5: robi > 213100600000000003daa7a45ae1f93bad330390910cb78e184a7fb0072e45ce5032f2efa81246f9b8eed44f5dd3d55a8252fcbc809b08afee2a635fd8023b5d05fdcf38c18f88f87df6a2c7f50cb049a3f389216b7e0a17f2d38fd25b85eba6
2018.04.26 18:07:26 4: robi: write {"id":3736,"method":"get_consumable","params":[""]} (51)
2018.04.26 18:07:26 5: robi: send 213100600000000003daa7a45ae1f93ed827e27412215c8f96663707c2a8b5284b22b6005f6b545cdbc34126fda8e07f43119db74da4d03774dd3570d37c8e74207acbe44a4f9532ccbed29f98fd5e49e16b1a560ccbf9528c6791dc841248c3
2018.04.26 18:07:26 5: robi Send SUCCESS
2018.04.26 18:07:26 5: robi > 213100600000000003daa7a45ae1f93ed827e27412215c8f96663707c2a8b5284b22b6005f6b545cdbc34126fda8e07f43119db74da4d03774dd3570d37c8e74207acbe44a4f9532ccbed29f98fd5e49e16b1a560ccbf9528c6791dc841248c3
2018.04.26 18:07:26 4: robi: write {"id":3737,"method":"get_clean_summary","params":[""]} (54)
2018.04.26 18:07:26 5: robi: send 213100600000000003daa7a45ae1f93eb7d7062a1b393337888da475ad0b7f5e854b7b605309833f3dbee94e19f021bdb23394ffd900bdf504a1dfbe25b9b8f724b4cb8c9fc9023b52252de7056c595e1838c69ef619021f047e057dae2e0189
2018.04.26 18:07:26 5: robi Send SUCCESS
2018.04.26 18:07:26 5: robi > 213100600000000003daa7a45ae1f93eb7d7062a1b393337888da475ad0b7f5e854b7b605309833f3dbee94e19f021bdb23394ffd900bdf504a1dfbe25b9b8f724b4cb8c9fc9023b52252de7056c595e1838c69ef619021f047e057dae2e0189
2018.04.26 18:07:26 4: robi: write {"id":3738,"method":"get_dnd_timer","params":[""]} (50)
2018.04.26 18:07:26 5: robi: send 213100600000000003daa7a45ae1f93e0c18a3060b2862802d28d51f15154b8b72180983e147f88fb9e68620becfaa1b95fe957ee30866810230f4f0f85551fe6b42b3990a63d3000db128b823cd3348ae3f0b18bbd0bd34246e96c60d9a52e8
2018.04.26 18:07:26 5: robi Send SUCCESS
2018.04.26 18:07:26 5: robi > 213100600000000003daa7a45ae1f93e0c18a3060b2862802d28d51f15154b8b72180983e147f88fb9e68620becfaa1b95fe957ee30866810230f4f0f85551fe6b42b3990a63d3000db128b823cd3348ae3f0b18bbd0bd34246e96c60d9a52e8
2018.04.26 18:07:26 4: robi: write {"id":3739,"method":"get_timer","params":[""]} (46)
2018.04.26 18:07:26 5: robi: send 213100500000000003daa7a45ae1f93e153adc75e2392e46f7cfa7c38da25b455057650d0332f87d7baffcb3cf335417def3c040c2cbc8e769c769be16d93e495564a2b53271e5830e8f995d2bc20f63
2018.04.26 18:07:26 5: robi Send SUCCESS
2018.04.26 18:07:26 5: robi > 213100500000000003daa7a45ae1f93e153adc75e2392e46f7cfa7c38da25b455057650d0332f87d7baffcb3cf335417def3c040c2cbc8e769c769be16d93e495564a2b53271e5830e8f995d2bc20f63
2018.04.26 18:07:26 4: robi: write {"id":3740,"method":"get_sound_volume","params":[""]} (53)
2018.04.26 18:07:26 5: robi: send 213100600000000003daa7a45ae1f93e7de4f243988e6331ec9a04ce17c4771c5b12660650f55fff8ae9500334660ea77e58685358982aa0fc4b3d593de927b8d24f73db41b2b1c62707a96726d714213fe892caa9196f12c3a4f096d189000f
2018.04.26 18:07:26 5: robi Send SUCCESS
2018.04.26 18:07:26 5: robi > 213100600000000003daa7a45ae1f93e7de4f243988e6331ec9a04ce17c4771c5b12660650f55fff8ae9500334660ea77e58685358982aa0fc4b3d593de927b8d24f73db41b2b1c62707a96726d714213fe892caa9196f12c3a4f096d189000f
2018.04.26 18:07:26 4: robi: write {"id":3741,"method":"get_carpet_mode","params":[""]} (52)
2018.04.26 18:07:26 5: robi: send 213100600000000003daa7a45ae1f93e2f3fcf8b1e6a1592f96ebdae583c086f635d3dc379f33e0f3c47d904ced6b00303dfce99e2925bf51e90ba37bfb59c89c1451f1e3f0b202a6f5f4878c041ab466b2e05405f09a435c71e08b170228645
2018.04.26 18:07:26 5: robi Send SUCCESS
2018.04.26 18:07:26 5: robi > 213100600000000003daa7a45ae1f93e2f3fcf8b1e6a1592f96ebdae583c086f635d3dc379f33e0f3c47d904ced6b00303dfce99e2925bf51e90ba37bfb59c89c1451f1e3f0b202a6f5f4878c041ab466b2e05405f09a435c71e08b170228645
2018.04.26 18:07:29 4: robi: write {"id":3742,"method":"get_status","params":[""]} (47)
2018.04.26 18:07:29 5: robi: send 213100500000000003daa7a45ae1f941f949ca0ae55ae998d178c1763d00aeba1f0cfdf65bfc475ea2097424bec350189c01f118fcf0b7fe772914a518112f37ea7c3c0eefa5e45305f03d741ef8ba8a
2018.04.26 18:07:29 5: robi Send SUCCESS
2018.04.26 18:07:29 5: robi > 213100500000000003daa7a45ae1f941f949ca0ae55ae998d178c1763d00aeba1f0cfdf65bfc475ea2097424bec350189c01f118fcf0b7fe772914a518112f37ea7c3c0eefa5e45305f03d741ef8ba8a
2018.04.26 18:07:33 2: robi: connection timeout
2018.04.26 18:12:29 4: robi: write {"id":3743,"method":"get_status","params":[""]} (47)
2018.04.26 18:12:29 5: robi: initSend
2018.04.26 18:12:29 5: robi Send SUCCESS
2018.04.26 18:12:29 5: robi > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2018.04.26 18:12:29 5: robi: send 213100500000000003daa7a45ae1fa6dddbe7d8b9af438c319cca81dc4aa44f7bd2e14b124876f53a94d94ba21c972fd198404a8badcb1becc158b2405186aee1238e9e2bc59f845da4d3184439caaf7
2018.04.26 18:12:29 5: robi Send SUCCESS
2018.04.26 18:12:29 5: robi > 213100500000000003daa7a45ae1fa6dddbe7d8b9af438c319cca81dc4aa44f7bd2e14b124876f53a94d94ba21c972fd198404a8badcb1becc158b2405186aee1238e9e2bc59f845da4d3184439caaf7
2018.04.26 18:12:29 5: robi < 213100200000000003daa7a45ae1fa6dffffffffffffffffffffffffffffffff (32)
2018.04.26 18:12:33 3: robi: disconnecting
2018.04.26 18:12:33 2: robi: connecting
2018.04.26 18:12:33 3: robi: initialized
2018.04.26 18:12:33 5: robi: initSend
2018.04.26 18:12:33 5: robi Send SUCCESS
2018.04.26 18:12:33 5: robi > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2018.04.26 18:12:33 5: robi < 213100200000000003daa7a45ae1fa71ffffffffffffffffffffffffffffffff (32)
2018.04.26 18:12:37 4: robi: write {"id":3744,"method":"miIO.wifi_assoc_state","params":[""]} (58)
2018.04.26 18:12:37 5: robi: send 213100600000000003daa7a45ae1fa7548bf598dfed0797f8b376b133ce619b20b83c66a92b711ab465d3fcb348d6acca411f0ff49bd827131f5159d897f29d4ae03835896e4575ad27977208f9aad6ee7f9347937700d85f1f693bfd7220f1a
2018.04.26 18:12:37 5: robi Send SUCCESS
2018.04.26 18:12:37 5: robi > 213100600000000003daa7a45ae1fa7548bf598dfed0797f8b376b133ce619b20b83c66a92b711ab465d3fcb348d6acca411f0ff49bd827131f5159d897f29d4ae03835896e4575ad27977208f9aad6ee7f9347937700d85f1f693bfd7220f1a
2018.04.26 18:12:37 4: robi: write {"id":3745,"method":"miIO.info","params":[""]} (46)
2018.04.26 18:12:37 5: robi: send 213100500000000003daa7a45ae1fa7502d63d82f9cd398bddf8b6da7bf3a01b18e6a7e33a50e61993884123d20302ea23acec8f0a6362a6359bcb9df9b472b7b9a214392028d8c98bee805ac463a149
2018.04.26 18:12:37 5: robi Send SUCCESS
2018.04.26 18:12:37 5: robi > 213100500000000003daa7a45ae1fa7502d63d82f9cd398bddf8b6da7bf3a01b18e6a7e33a50e61993884123d20302ea23acec8f0a6362a6359bcb9df9b472b7b9a214392028d8c98bee805ac463a149
2018.04.26 18:12:37 4: robi: write {"id":3746,"method":"get_serial_number","params":[""]} (54)
2018.04.26 18:12:37 5: robi: send 213100600000000003daa7a45ae1fa75f73238130667831cc525689323d9ac2bd507b1862f82207e0f4329391f18c4ecaf8e68f83462f5c5d4a059c64b0d235d13eef551aaf5a5a1a28d4a64df1036b2d5bee5455bce79a21dd2faec87df0542
2018.04.26 18:12:37 5: robi Send SUCCESS
2018.04.26 18:12:37 5: robi > 213100600000000003daa7a45ae1fa75f73238130667831cc525689323d9ac2bd507b1862f82207e0f4329391f18c4ecaf8e68f83462f5c5d4a059c64b0d235d13eef551aaf5a5a1a28d4a64df1036b2d5bee5455bce79a21dd2faec87df0542
2018.04.26 18:12:37 4: robi: write {"id":3747,"method":"get_timezone","params":[""]} (49)
2018.04.26 18:12:37 5: robi: send 213100600000000003daa7a45ae1fa7593bb7858229e0e0d6fc696984615879f134b1f1e08167dbc771dcd9c4f5acd0a28281915e31336482ae0a69db3a3badd1bf7fdd11d41941f6e9f3ae5cdc9e0398844062ee7b6c6956663103b940faf64
2018.04.26 18:12:37 5: robi Send SUCCESS
2018.04.26 18:12:37 5: robi > 213100600000000003daa7a45ae1fa7593bb7858229e0e0d6fc696984615879f134b1f1e08167dbc771dcd9c4f5acd0a28281915e31336482ae0a69db3a3badd1bf7fdd11d41941f6e9f3ae5cdc9e0398844062ee7b6c6956663103b940faf64
2018.04.26 18:12:40 4: robi: write {"id":3748,"method":"get_consumable","params":[""]} (51)
2018.04.26 18:12:40 5: robi: send 213100600000000003daa7a45ae1fa782071516d1e350d4e69617c3e3d7b5d3e2e2f0e80bfff1d6c6f12c5ba641cef5600838035fced05310801663b1f556c0635de3e96d0d48a93fca0d830ad82c1a21956e9843734b0d275e1ff48970afe6d
2018.04.26 18:12:40 5: robi Send SUCCESS
2018.04.26 18:12:40 5: robi > 213100600000000003daa7a45ae1fa782071516d1e350d4e69617c3e3d7b5d3e2e2f0e80bfff1d6c6f12c5ba641cef5600838035fced05310801663b1f556c0635de3e96d0d48a93fca0d830ad82c1a21956e9843734b0d275e1ff48970afe6d
2018.04.26 18:12:40 4: robi: write {"id":3749,"method":"get_clean_summary","params":[""]} (54)
2018.04.26 18:12:40 5: robi: send 213100600000000003daa7a45ae1fa78ab4bfe91d13d5df60b0c56e15934d28e5b299df7ca2f6bd26ae8f6194251a9c10f97da4a2aba184732bf028ba5134399f82ad4a58b69b8652cd1ec59c9cfc918a9fccd6bad9a649b449ad4724bc45b55
2018.04.26 18:12:40 5: robi Send SUCCESS
2018.04.26 18:12:40 5: robi > 213100600000000003daa7a45ae1fa78ab4bfe91d13d5df60b0c56e15934d28e5b299df7ca2f6bd26ae8f6194251a9c10f97da4a2aba184732bf028ba5134399f82ad4a58b69b8652cd1ec59c9cfc918a9fccd6bad9a649b449ad4724bc45b55
2018.04.26 18:12:40 4: robi: write {"id":3750,"method":"get_dnd_timer","params":[""]} (50)
2018.04.26 18:12:40 5: robi: send 213100600000000003daa7a45ae1fa781b6f58256c43f9828e01f97c414144bd1e0e0043ee81a96f763621346ad2fc3cb072e321a65a488095adc9b70d5d922f036aa9d06493cb09fd0bec49057fd628cfb061a2a8c859eeba80a590a33849c2
2018.04.26 18:12:40 5: robi Send SUCCESS
2018.04.26 18:12:40 5: robi > 213100600000000003daa7a45ae1fa781b6f58256c43f9828e01f97c414144bd1e0e0043ee81a96f763621346ad2fc3cb072e321a65a488095adc9b70d5d922f036aa9d06493cb09fd0bec49057fd628cfb061a2a8c859eeba80a590a33849c2
2018.04.26 18:12:40 4: robi: write {"id":3751,"method":"get_timer","params":[""]} (46)
2018.04.26 18:12:40 5: robi: send 213100500000000003daa7a45ae1fa78e50f89bc6966cc1f7e1ded6504bd874aa05fdd84e02238d64a3c1af08087d1738f45a97bc18de189c5429163eb8c2818e24f4cefde8a2e32e1ff69c59e76fc3d
2018.04.26 18:12:40 5: robi Send SUCCESS
2018.04.26 18:12:40 5: robi > 213100500000000003daa7a45ae1fa78e50f89bc6966cc1f7e1ded6504bd874aa05fdd84e02238d64a3c1af08087d1738f45a97bc18de189c5429163eb8c2818e24f4cefde8a2e32e1ff69c59e76fc3d
2018.04.26 18:12:40 4: robi: write {"id":3752,"method":"get_sound_volume","params":[""]} (53)
2018.04.26 18:12:40 5: robi: send 213100600000000003daa7a45ae1fa7803c1fd87251e5f344e358d60c322e59a9c3cef7956910c104ec8d158049d086234b443a7757b7be7029b75a0af005d4c552db0387966469d88d6ba3a1849a4d2013786a5df396b0963fa19e1d98698bb
2018.04.26 18:12:40 5: robi Send SUCCESS
2018.04.26 18:12:40 5: robi > 213100600000000003daa7a45ae1fa7803c1fd87251e5f344e358d60c322e59a9c3cef7956910c104ec8d158049d086234b443a7757b7be7029b75a0af005d4c552db0387966469d88d6ba3a1849a4d2013786a5df396b0963fa19e1d98698bb
2018.04.26 18:12:40 4: robi: write {"id":3753,"method":"get_carpet_mode","params":[""]} (52)
2018.04.26 18:12:40 5: robi: send 213100600000000003daa7a45ae1fa784c3c5dc63188c422b645fa3dfccbf24f42e03a7deb2c41f16f41b423e550a29d89f128fe5205edbf20576e8b6e8e233c57ef83c0c2335dc163f242b264a92906ea1b1f141a36c8f3bdc8259970946b71
2018.04.26 18:12:40 5: robi Send SUCCESS
2018.04.26 18:12:40 5: robi > 213100600000000003daa7a45ae1fa784c3c5dc63188c422b645fa3dfccbf24f42e03a7deb2c41f16f41b423e550a29d89f128fe5205edbf20576e8b6e8e233c57ef83c0c2335dc163f242b264a92906ea1b1f141a36c8f3bdc8259970946b71
2018.04.26 18:12:43 4: robi: write {"id":3754,"method":"get_status","params":[""]} (47)
2018.04.26 18:12:43 5: robi: send 213100500000000003daa7a45ae1fa7b1dc871de173ed00b8af669ea9a8a705cda03dd2e7f191fbd41cb73234304e37be38dfb8b64ee8068727cf8e10cbdf83329740c072273918a761ca49d8af07ae4
2018.04.26 18:12:43 5: robi Send SUCCESS
2018.04.26 18:12:43 5: robi > 213100500000000003daa7a45ae1fa7b1dc871de173ed00b8af669ea9a8a705cda03dd2e7f191fbd41cb73234304e37be38dfb8b64ee8068727cf8e10cbdf83329740c072273918a761ca49d8af07ae4
2018.04.26 18:12:47 2: robi: connection timeout
Und list:
Internals:
DEF 192.168.178.40 316c514d494b674e5a59784354505845
FD 5
NAME vacuum
NR 72
STATE disconnected
TYPE XiaomiDevice
READINGS:
2018-04-27 00:36:19 state disconnected
helper:
ConnectionState initialized
crypt Rijndael
delay 0
dev 03da
id a7a4
ip 192.168.178.40
last_read 1524782479
packetid 153
port 54321
sequence 0
token 316c514d494b674e5a59784354505845
packet:
1 wifi_stats
10 get_carpet_mode
100 get_timezone
101 get_consumable
102 get_clean_summary
103 get_dnd_timer
104 get_timer
105 get_sound_volume
106 get_carpet_mode
107 get_status
108 get_status
109 get_status
11 get_status
110 get_status
111 get_status
112 get_status
113 wifi_stats
114 device_info
115 get_serial_number
116 get_timezone
117 get_consumable
118 get_clean_summary
119 get_dnd_timer
12 get_status
120 get_timer
121 get_sound_volume
122 get_carpet_mode
123 get_status
124 get_status
125 wifi_stats
126 device_info
127 get_serial_number
128 get_timezone
129 get_consumable
13 wifi_stats
130 get_clean_summary
131 get_dnd_timer
132 get_timer
133 get_sound_volume
134 get_carpet_mode
135 get_status
136 get_status
137 wifi_stats
138 device_info
139 get_serial_number
14 device_info
140 get_timezone
141 get_consumable
142 get_clean_summary
143 get_dnd_timer
144 get_timer
145 get_sound_volume
146 get_carpet_mode
147 get_status
148 get_status
149 wifi_stats
15 get_serial_number
150 device_info
151 get_serial_number
152 get_timezone
16 get_timezone
17 get_consumable
18 get_clean_summary
19 get_dnd_timer
2 device_info
20 get_timer
21 get_sound_volume
22 get_carpet_mode
23 get_status
24 get_status
25 wifi_stats
26 device_info
27 get_serial_number
28 get_timezone
29 get_consumable
3 get_serial_number
30 get_clean_summary
31 get_dnd_timer
32 get_timer
33 get_sound_volume
34 get_carpet_mode
35 get_status
36 get_status
37 wifi_stats
38 device_info
39 get_serial_number
4 get_timezone
40 get_timezone
41 get_consumable
42 get_clean_summary
43 get_dnd_timer
44 get_timer
45 get_sound_volume
46 get_carpet_mode
47 get_status
48 get_status
49 wifi_stats
5 get_consumable
50 device_info
51 get_serial_number
52 get_timezone
53 get_consumable
54 get_clean_summary
55 get_dnd_timer
56 get_timer
57 get_sound_volume
58 get_carpet_mode
59 get_status
6 get_clean_summary
60 get_status
61 wifi_stats
62 device_info
63 get_serial_number
64 get_timezone
65 get_consumable
66 get_clean_summary
67 get_dnd_timer
68 get_timer
69 get_sound_volume
7 get_dnd_timer
70 get_carpet_mode
71 get_status
72 get_status
73 wifi_stats
74 device_info
75 get_serial_number
76 get_timezone
77 get_consumable
78 get_clean_summary
79 get_dnd_timer
8 get_timer
80 get_timer
81 get_sound_volume
82 get_carpet_mode
83 get_status
84 get_status
85 wifi_stats
86 device_info
87 get_serial_number
88 get_timezone
89 get_consumable
9 get_sound_volume
90 get_clean_summary
91 get_dnd_timer
92 get_timer
93 get_sound_volume
94 get_carpet_mode
95 get_status
96 get_status
97 wifi_stats
98 device_info
99 get_serial_number
Attributes:
room Wohnzimmer
subType VacuumCleaner
verbose 5
Hat jemand eine Idee, warum er dauernd die Connection verliert? In der Mi Home App bekomme ich davon nichts mit.
Habe die aktuelle Version 16574.
Auch das Neuerstellen des Devices bringt kein Erfolg. Es gibt nach wie vor die Abwechslung aus:
3: vacuum: disconnecting
2: vacuum: connecting
3: vacuum: initialized
2: vacuum: connection timeout
3: vacuum: disconnecting
Zitat von: razer35 am 30 Dezember 2017, 11:13:19
Mainland China habe ich angegeben.
Eigentlich wollte ich den Roboter noch komplett das Internet verbieten.
Ich werde das mal beobachten und hoffe es funktioniert nun.
Vielen Dank für eure Hilfe!
Hier das Log mit verbose 5 und alles neugestartet:
2017.12.30 11:11:17 5: Sauger < 213100200000000003dbc3615a476640ffffffffffffffffffffffffffffffff (32)
2017.12.30 11:11:18 4: Sauger: write {"id":1,"method":"get_consumable","params":[""]} (48)
2017.12.30 11:11:18 5: Sauger: send 213100600000000003dbc3615a47664126ccac644acceeaaa3d742f0d98173824aed10fdf29e67012ade3f35f25c9a540259cc91772327eb95a48044954e8bfd3fbdeb5a8f2b5290b44d27a6027ff01fbb74c917fa76ccef76a630a2b826d660
2017.12.30 11:11:18 5: Sauger Send SUCCESS
2017.12.30 11:11:18 5: Sauger > 213100600000000003dbc3615a47664126ccac644acceeaaa3d742f0d98173824aed10fdf29e67012ade3f35f25c9a540259cc91772327eb95a48044954e8bfd3fbdeb5a8f2b5290b44d27a6027ff01fbb74c917fa76ccef76a630a2b826d660
2017.12.30 11:11:18 4: Sauger: write {"id":2,"method":"get_clean_summary","params":[""]} (51)
2017.12.30 11:11:18 5: Sauger: send 213100600000000003dbc3615a4766414e81f4af33612a304b503d31ff3edfd5f575b369e06a73a11a961c12a69f5b43177000f278ca5d566d332fdded7739e4a100ac8c2edd7495e87a1328c6cb5bb9f121a1d36a3a232b6f5f992af51453b1
2017.12.30 11:11:18 5: Sauger Send SUCCESS
2017.12.30 11:11:18 5: Sauger > 213100600000000003dbc3615a4766414e81f4af33612a304b503d31ff3edfd5f575b369e06a73a11a961c12a69f5b43177000f278ca5d566d332fdded7739e4a100ac8c2edd7495e87a1328c6cb5bb9f121a1d36a3a232b6f5f992af51453b1
2017.12.30 11:11:18 4: Sauger: write {"id":3,"method":"get_dnd_timer","params":[""]} (47)
2017.12.30 11:11:18 5: Sauger: send 213100500000000003dbc3615a4766414e7ea455d0c6de3a389189a41dc973fc19634db3a5327a9d9f82a60d1f8b25cb0101aed671c652fad2666f739f19501ccd541c0c646f554890a353d05df68244
2017.12.30 11:11:18 5: Sauger Send SUCCESS
2017.12.30 11:11:18 5: Sauger > 213100500000000003dbc3615a4766414e7ea455d0c6de3a389189a41dc973fc19634db3a5327a9d9f82a60d1f8b25cb0101aed671c652fad2666f739f19501ccd541c0c646f554890a353d05df68244
2017.12.30 11:11:18 4: Sauger: write {"id":4,"method":"get_timer","params":[""]} (43)
2017.12.30 11:11:18 5: Sauger: send 213100500000000003dbc3615a4766419c3dc3ae42d32082d0cece834f4834445e87b37d8591d7254bc2737ae40b5d1391cc66061ed482138ac6703939791e3184ebf786c9de8047878c21ef36c1b0fb
2017.12.30 11:11:18 5: Sauger Send SUCCESS
2017.12.30 11:11:18 5: Sauger > 213100500000000003dbc3615a4766419c3dc3ae42d32082d0cece834f4834445e87b37d8591d7254bc2737ae40b5d1391cc66061ed482138ac6703939791e3184ebf786c9de8047878c21ef36c1b0fb
2017.12.30 11:11:21 4: Sauger: write {"id":5,"method":"get_status","params":[""]} (44)
2017.12.30 11:11:21 5: Sauger: send 213100500000000003dbc3615a4766443c9d9d95ce7921095eea61fc2d9e005006b256eb17fada4e64abce98ac4b89e16d428d4ed23d5a784dec4ed8916ee5a98295c6684e717682a4b36f7073181c65
2017.12.30 11:11:21 5: Sauger Send SUCCESS
2017.12.30 11:11:21 5: Sauger > 213100500000000003dbc3615a4766443c9d9d95ce7921095eea61fc2d9e005006b256eb17fada4e64abce98ac4b89e16d428d4ed23d5a784dec4ed8916ee5a98295c6684e717682a4b36f7073181c65
2017.12.30 11:11:28 2: Sauger: connection timeout
EDIT:
Es scheint nun zu funktionieren.
Was hast du denn getan, dass es funktioniert? Ich habe hier scheinbar das gleiche Problem und Neustarten von vacuum und fhem hat nichts erbracht.
Gibt es irgendeine Möglichkeit abzufragen, ob der Staubbehälter im Sauger vorhanden ist?
Dazu bekomme ich keine Meldung (mehr?).
Ich meine mich erinnern zu können, daß früher eine Meldung "Dust Bin Missing" oder ähnlich gekommen ist.
Zitat von: RappaSan am 27 April 2018, 07:30:03
Gibt es irgendeine Möglichkeit abzufragen, ob der Staubbehälter im Sauger vorhanden ist?
Nicht als Reading. Kann sein dass das eine Fehlermeldung (error) ist.
Zitat von: RappaSan am 27 April 2018, 07:30:03
Dazu bekomme ich keine Meldung (mehr?).
Ich meine mich erinnern zu können, daß früher eine Meldung "Dust Bin Missing" oder ähnlich gekommen ist.
Die Meldung kommt immer noch, per App und Akustisch. Aber eben nicht auswertbar als reading.
Stimmt, müßte als error auftauchen.
Im Modul sehe ich zumindest in Zeile 81:
'9' => "Dust bin missing",
Kommt aber hier nicht an.
Doch kommt schon an:
2018-04-16_09:47:14 Staubi1 error_code: Dust bin missing
Aber eben nur als Fehler, d.h. der Dust bin ist draussen und Du versuchst ihn los zu schicken.
Die Meldung wenn Du den dust bin raus nimmst kommt leider nur akustisch und nicht auswertbar.
Wie bekommt ihr eigentlich einen neuen Token?
Ich habe im Zuge meines oben beschriebenen Problems jetzt WIFI und auch Werksresets durchgeführt, aber der Token bleibt immer gleich.
Wie ist denn der beste Ablauf für ein Komplettreset vom Vacuum?
Ich habe
- Device in FHEM gelöscht
- FHEM neugestartet
- Auf dem Robot die HOME Taste gedrückt gehalten und gleichzeitig RESET gedrückt; Werkszustand
- nach dem Neustart des Geräts das alte Device aus der Mi Home App gelöscht (war als offline markiert)
- in Mi Home neues Device gesucht und mit dem gleichen WIFI verbunden
- Mittels MiToolkit Token ausgelesen
- neues XiaomiDevice mit dem Token in FHEM erstellt
- neues Device als VacuumCleaner klassifiziert
Verhalten ist immer noch das alte:
Er conntected kurz, macht einen Timeout und einen Disconnect. STATE bleibt konstant auf disconnected.
Helper ConnectionState wechselt zwischen initialized und disconnected.
Ich hab dem Gerät auf der Fritzbox eine feste IP zugewiesen, aber nicht das Internet geklaut. In der Mi Home App ist alles super.
Das war eine Geburt..
Problem war, dass MiToolkit zwar so getan hat, als ob es einen neuen Token ausliest aus dem Backup - es hat es aber gar nicht getan.
Ich habe also fleißig auf "Token auslesen" gedrückt, auf meinem Smartphone kein Passwort vergeben und alles lief, wie es sein soll - nur MiToolkit hat mir immer die Daten aus dem ersten von mir erstellen Backup vom letzten Jahr angezeigt.
Bin ich drauf gekommen, indem ich dem Robot eine neue IP zugewiesen habe und in MiToolkit wurde nach wie vor die alte Adresse angezeigt..
Ich denke, dass das daher kommt, weil ich den MiToolkit Ordner nach einem Formatieren umgezogen habe und mein neuer Systemnutzer keine Rechte hatte das Backup File zu überschreiben.
Jetzt klappt wieder alles!
nach dem reset vom WLAN gibt es einen neuen Token
Guten Abend Zusammen,
seit 2 Tagen bin ich nun auch stolzer Besitzer eines Roborock und versuche verwzeifelt den Token auszulesen.
Jedoch gibt's bei mir dieses SQLite DB File nicht auf dem Telefon. (Galaxy S7 nicht gerootet).
Nun habe ich mir FloleVac installiert und versucht, die Config zu speichern um den Token dort auszulesen.
Jedoch steht in der exportierten Datei nur sowas drin:
F7BAHfhWtyGApNW9+7Q4nudu3A4fJSPKuBQZN82bjiInGPEp6Hm86QBJboh0aB/ZE/nher0ZmCcG
UGdGtCqGtB30ZCVGSiq0nybuKbifetjX9l6q8NtfHPLU4fGGPIoLhToxr7AyNPE=
Dann dachte ich, ich versuche es mit "MiToolkit 1.6".
Das Tool scheint das Backup anzulegen, aber beim entpacken kommt eine Unhandled Exception die mir sagt dass eine Datei nicht gefunden wurde.
Langsam verzweifle ich.
Hat noch jemand eine Idee?
Hallo ToM_ToM
Ich habe es so gemacht -> http://www.roboter-forum.com/showthread.php?25148-Token-auslesen-mit-MiToolkit-1-6&p=316389&viewfull=1#post316389
Gruss birdy
Danke birdy, du hast mir den Abend gerettet :)
Jetzt hat es funktioniert.
Am einfachsten erhält man den Token, wenn man seinen Robi rootet:
printf $(cat /mnt/data/miio/device.token) | xxd -p
Otto hat mich auf die richtige Idee gebracht.
Die Meldung des fehlenden Staubbehälters provoziere ich nun mit einem watchdog, nachdem ich den Sauger nach getaner Tat an eine bestimmte Stelle geschickt habe.
Er fährt los, wenn ich per Anwesenheitserkennung im FHEM gemeldet wurde und äußert sein Begehr über das Sonos-System.
Danach wartet er, daß der Behälter entnommen und nach Leerung wieder eingesetzt wird. Anschließend fährt er wieder in die Ladestation.
Feddich ! :)
Hallo Zusammen,
kann man eigentlich irgendwie die Lautstärke für den "locate" Befehl einstellen? Habe auch in der Xiaomi App nichts gefunden. Die Ansage wo sich der Roborock gerade befindet, ist extrem laut.
VG, Thomas
Der locate Befehl ist unabhängig von der eingestellten Lautstärke, damit man die nicht erst aufdrehen muss um den Sauger zu finden.
Zitat von: Tinko am 29 Oktober 2017, 10:06:19
[Gelöst: Token bei neuer Firmware des Xiaomi Roboters mittels iPhone und MAC/PC auslesen] siehe update unten
Update: Habe es jetzt durch ausprobieren herausgefunden:
- Roboter eingerichtet lassen im Heimnetzwerk
- Backup vom iphone machen
- Roboter nicht zurücksetzen und auch kein WLAN reset
- 96 Token aus Backup auslesen
- 96 Token in 32 umrechnen
- 32 Token verwenden - fertig
Ich habe ein Mischung aus diesen beiden Anleitungen verfolgen müssen. Allein mit einer hätte ich nicht verstanden was ich tun soll.
https://forum.smartapfel.de/forum/thread/370-saugroboter-xiaomi-mi-robot-vacuum-token-auslesen/ (hauptsächlich gefolgt)
https://github.com/jghaanstra/com.xiaomi-miio/blob/master/docs/obtain_token_mirobot_new.md (unterstützend bei Fragen)
Gruß.
Hallo Tinko,
Damit hat es bei mir nun auch funktioniert! :D
Danke!
Grüße Newbee
Zitat von: RappaSan am 29 April 2018, 10:05:32
Otto hat mich auf die richtige Idee gebracht.
Die Meldung des fehlenden Staubbehälters provoziere ich nun mit einem watchdog, nachdem ich den Sauger nach getaner Tat an eine bestimmte Stelle geschickt habe.
Er fährt los, wenn ich per Anwesenheitserkennung im FHEM gemeldet wurde und äußert sein Begehr über das Sonos-System.
Danach wartet er, daß der Behälter entnommen und nach Leerung wieder eingesetzt wird. Anschließend fährt er wieder in die Ladestation.
Feddich ! :)
Hi RappaSan
könntest Du das etwas konkreter beschreiben? Das wäre echt Klasse. Mich würde der code für den watchdog, sowie die Implementierung an sich interessieren, würde es gerne nachbauen.
Dankeschön,
Stephan
Gerne. Ich habe mal alles komplett in eine cfg gepackt. Es sollte genügen, daß an entsprechender Stelle die richtige IP, Token und das Presence-device eingetragen werden.
Verbesserungsvorschläge sind immer willkommen.
ZitatDer locate Befehl ist unabhängig von der eingestellten Lautstärke, damit man die nicht erst aufdrehen muss um den Sauger zu finden.
Das habe ich gemerkt. Und man kann es auch in der App nicht anpassen. Daher geht es wohl auch nicht übers Modul... oder? Es ist ja vom Grundsatz her auch sinnvoll dass dieser lauter ist. Jedoch ist der schon extrem laut und ich würde ihn gerne ein wenig leiser einstellen. ;)
VG und einen schönen 1. Mai! ;)
In der neuesten app von flole ist die Karte mittlerweile integriert.
Also scheint es ja irgendwie machbar zu sein - vielleicht auch in dem prima FHEM-Modul?
Man kann dort sogar die Koordinaten in die Zwischenablage kopieren, leider verstehe ich die kopierte Zahlenkolonne nicht.
Es wäre schon ein riesiger Schritt in die Richtung, daß man die Goto- und Zone-Funktion komfortabler nutzen könnte.
Hi.
@RappaSan
Ich habe einen gerooteten Robo in der 2. Gen. Das mit den Zonen fand ich auch ziemlich "unglücklich" gelöst. Daher habe ich zwei Linux-Scripte geschrieben, sowie das Xiaomi-Fhem-Modul gepimpt. Ich kann nun mittels eines Fhem-Dummies angeben, welche Zone (EZ = Esszimmer, KU=Küche, etc) ich in Fhem einlernen will. Anschliessend drücke ich in der MiHome-App auf "zoned clean", definiere die Zone und sage "starte". Dann trägt das Skript die empfangenen Koordinaten der Zone (oder Zonen, wenn mehrere definiert), in das Dummy-Device als Reading ein.
Bei dem Staubi kann ich dann mittels eines eigenen Befehls "sauge [ez|ku|...]" die jeweilige Zone säubern lassen. So komfortabel sollte das schon von Werk aus sein....
Ich kann das bei Bedarf ja mal dokumentieren und hier bekannt geben....
Zitat von: gsbox am 03 Mai 2018, 11:28:15
Hi.
@RappaSan
Ich habe einen gerooteten Robo in der 2. Gen. Das mit den Zonen fand ich auch ziemlich "unglücklich" gelöst. Daher habe ich zwei Linux-Scripte geschrieben, sowie das Xiaomi-Fhem-Modul gepimpt. Ich kann nun mittels eines Fhem-Dummies angeben, welche Zone (EZ = Esszimmer, KU=Küche, etc) ich in Fhem einlernen will. Anschliessend drücke ich in der MiHome-App auf "zoned clean", definiere die Zone und sage "starte". Dann trägt das Skript die empfangenen Koordinaten der Zone (oder Zonen, wenn mehrere definiert), in das Dummy-Device als Reading ein.
Bei dem Staubi kann ich dann mittels eines eigenen Befehls "sauge [ez|ku|...]" die jeweilige Zone säubern lassen. So komfortabel sollte das schon von Werk aus sein....
Ich kann das bei Bedarf ja mal dokumentieren und hier bekannt geben....
Das hört sich ja schon fast nach dem "heiligen Gral" an. Ich denke das Interesse die Informationen hier zu erhalten ist durchaus vorhanden.
Grüße
@gsbox: markus hat mit seinem Modul ja schon einen 1A job hingelegt. Ich denke, er kann mit jeder hilfreichen Info etwas anfangen.
@Markus: flole hat das mit der Karte hinbekommen, ohne daß der Staubi gerootet werden muß. Vielleicht bekommst Du von ihm den entscheidenden Tip? :)
Ok, ich werde mich mal daran machen, das zu dokumentieren und die skripte hier zu posten. Ich hoffe, dass ich das zeitnah schaffe.
Das einzige Problem, was ich jetzt noch habe, ist dass der "clean"-Befehl die karte löscht und damit die Zonen ungültig macht und man den ganzen "driss" wieder von vorne machen muss... Jetzt suche ich einen Weg, wie ich auf dem Roboer den "clean"-Befehl abfangen kann und statt dessen einen "zoned clean" aufrufen kann. Das sollte natürlich auch über die Taste am Roboter funktionieren... Vielleicht kennt da jemand einen Weg ?
VG
Gibts in fhem eine Struktur in der man eine Art Arbeitsliste abbilden kann?
Listeneinträge:
Reinige Zone A
Reinige Zone B
Reinige Zone C
Mit einem notify kann man doch abfangen wenn ein job erledigt ist,
dann den nächsten starten.
So könnte man nach und nach weitere Bereiche hinzufügen während der Staubsauger schon am arbeiten ist.
Hat jemand ne Idee dazu?
die Entschlüsselung des tokens scheint bei mir nicht zu funktionieren.
Asked to truncate 170 bytes, which is greater than Crypt::Cipher::AES's blocksize (16 bytes).
2018.05.03 18:00:45 4: vacuum: Crypt::Rijndael_PP not found
2018.05.03 18:00:45 3: vacuum: initialized, using AES
2018.05.03 18:00:45 3: vacuum: token decryption using Crypt::Cipher::AES
2018.05.03 18:00:45 1: vacuum: token decryption failed
Asked to truncate 170 bytes, which is greater than Crypt::Cipher::AES's blocksize (16 bytes).
Hat jemand dazu einen Hinweis?
Mit entschlüsseltem token funktioniert es einwandfrei
habe sowohl
Crypt::Cipher::AES
als auch
Crypt::Rijndael_PP
getestet.
Hi.
So, ich habe mal versucht zu dokumentieren, wie ich bei mir das automatische Eintragen der Zonen in FHEM realisiert habe. Man muss zwar ein paar Voraussetzungen erfüllen, aber wer das hinbekommt, dem könnten meine Skripte ein wenig helfen.
Auslesen der Saug-Zonen und automatisches Eintragen in FHEM
===========================================================
Voraussetzung:
- Der Robot ist gerootet und man kommt per ssh darauf
- Man kann per ssh auf dem raspi ein Kommando absetzen
- Auf dem Robi ist die "bash" installiert
Anleitung:
1. Anlegen des FHEM Dummy Device. Ich habe hier die meine Zonen
definiert (ez = Esszimmer, di = Diele, etc)
define StaubiZonen dummy
attr StaubiZonen eventMap none ez ku di hwr wz_ez_ku ug og
2. Anlegen einer perl-Funktion in 99_myUtils.pm
######################################################
# Bekommt vom Roboter eine neue Zone mitgeteilt
######################################################
sub
checkNewZone($)
{
my $zonenWert = shift;
# Demaskieren der Zonen : A=[ und B=]
$zonenWert =~ s/A/\[/g;
$zonenWert =~ s/B/\]/g;
my $zonenStatus = Value("StaubiZonen");
my $msg = "Neue Staubsauger-Zone erhalten : $zonenWert";
Log 3,"$msg";
fhem("setreading StaubiZonen last_zone $zonenWert");
if ($zonenStatus eq "none")
{
return;
}
my @zonen = split(" ",AttrVal("StaubiZonen", "eventMap", "none"));
foreach my $zone (@zonen)
{
if ($zonenStatus eq $zone)
{
$msg = $msg . " und in $zone gespeichert";
fhem("setreading StaubiZonen $zone $zonenWert");
fhem("set StaubiZonen none");
last;
}
}
}
3. Auf dem Roboter
==================
3.1 Verzeichnis "/root/zoneWatch" Verzeichnis anlegen
3.2 "sendNewZone.sh" :
- editieren und zweimal die IP des Raspi eintragen (Zeile 24)
- in Verzeichnis aus 3.1 kopieren
3.3 die Datei "watch4zones.sh" ebenso in Verzeichnis kopieren
3.4 Ausführungsrechte für beide Dateien setzen
3.5 in beiden Dateien in "/etc/rc.local" eintragen, damit sie beim Neustart
gestartet werden
"rc.local":
/root/zoneWatch/watch4zones.sh &
sleep 2
/root/zoneWatch/sendNewZone.sh &
3.6 starten der beiden Skripte :
- "/root/zoneWatch/watch4zones.sh &"
- "/root/zoneWatch/sendNewZone.sh &"
4. 72_XiaomiDevice.pm Anpassungen
=================================
4.1 Ich habe in der Datei das "sauge"-Kommando inkl der Zonen ergänzt
- Zeile 530
- Zeile 802 bis 841
5. Anwendung
============
5.1 Wenn man nun die Zonen einlernen will, dann geht man wie folgt vor :
1. Man setzt bei dem Dummy "StaubiZonen" die Zone, die man einlernen will
2. Dann definiert man die Zone/Zonen in der MiHome-App und startet dann
dort die Zonen-Reinigung.
3. Wenn alles richtig funktioniert, dann wird nun automatisch in FHEM die
erkannte Zone/Zonen in die eingestellte Zone gespeichert
4. Nun kann man von FHEM aus mittels "set Staubsauger sauge [ez|di...]"
die jeweilige Zone reinigen lassen.
Die benötigten Dateien habe ich als hier angehängt.
Ich hoffe, ich konnte dem ein oder anderen helfen
Flole App stellt ab sofort nicht nur die Karten, sondern auch die Koordinaten für "goto" und "zone" zur Verfügung.
Sehr coole Sache zusammen mit diesem spitzenmäßigen Fhem Modul!
Gerade mal eine Zone "Küche" angelegt und mit einen Amazon Dashbutton ein Zonen-Staubsaugen eingerichtet.
WAF ist damit sehr hoch!!!!
Grüße an euch alle,
Helmut
Kurze frage...
entspricht das modul XiaomiDevice welches aus dem SVN über update kommt der aktuellen version oder ist es sinvoller das modul aus Post 1 zu verwenden?
Im Zweifelsfall immer SVN!
Zitat von: dl4fb am 03 Mai 2018, 20:09:07
Flole App stellt ab sofort nicht nur die Karten, sondern auch die Koordinaten für "goto" und "zone" zur Verfügung.
Sehr coole Sache zusammen mit diesem spitzenmäßigen Fhem Modul!
Gerade mal eine Zone "Küche" angelegt und mit einen Amazon Dashbutton ein Zonen-Staubsaugen eingerichtet.
WAF ist damit sehr hoch!!!!
Grüße an euch alle,
Helmut
Wo findet man denn in der Flole App die koordinaten?
Hallo gsbox
Erstmal danke für die genaue Anleitung!!
allerdings hört es bei mir hier auf...
Zitat von: gsbox am 03 Mai 2018, 19:57:37
4. 72_XiaomiDevice.pm Anpassungen
=================================
4.1 Ich habe in der Datei das "sauge"-Kommando inkl der Zonen ergänzt
- Zeile 530
- Zeile 802 bis 841
...was muss ist in der der Datei denn hinzufügen?
und was mache ich mit der Passwortabfrage von Fhem und https?
@pumabaer:
Zitat...was muss ist in der der Datei denn hinzufügen?
1. Man muss die Liste um das neue Kommando und deren Zonen erweitern
$list .= ' sauge:ez,ku,di,hwr,ku_ez,wz_ez_ku,ug,og
2. Zeile 802ff : Hier muss man die Zonen aus den Readings des "StaubiZonen"-Dummies auslesen und dann an FHEM senden. Du kannst den Block aus meiner Datei kopieren und schmeisst einfach die Zonen raus, die Du nicht brauchst.
Ich habe mein FHEM auch mittels https abgesichert. Bei mir funktioniert es so, dass ich die Passwort-Schreibweise der URL nutze :
https://[user]:[passwort]@192.168.x.x:8083/fhem?cmd=\{checkNewZone('$ZONE')\}
User und Passwort natürlich ohne die eckigen Klammern ;)
VG
Zitat von: Abercrombie1892 am 04 Mai 2018, 14:50:47
Wo findet man denn in der Flole App die koordinaten?
Ich zitiere einfach mal
ZitatDies beinhaltet auch Funktionen wie Goto und Zonenreinigung, sowie das kopieren der Parameter für Home-Automation-Systeme (Grüße an die IO-Broker Jungs die das haben wollten, einfach lange auf Zonenreinigung bzw. Goto tippen nachdem die Zonen gezeichnet sind bzw. der Marker platziert ist und schon sind die Daten in der Zwischenablage des Handys)
Hi Leute, Shojo war schneller :)
Genau das ist der Weg. So ein wenig muss man noch jonglieren, habe das Optimum der Zone erst mit dem zweiten Anlauf gefunden.
Heute noch eingebaut:
- Notify über Dash schaltet Ladegerät ein, danach 30s warten, damit der Xiaomi online geht und danach erst der zone Befehl
- Notify schaltet das Ladegerät wieder aus, wenn 100% erreicht sind.
Gruss Helmut
Meine Datei aus #965 hat noch einige Probleme. :(
Wenn alles zu meiner Zufriedenheit läuft, werde ich die Zusammenfassung wieder veröffentlichen.
Zitat von: leech0r am 18 April 2018, 16:52:45
ist es möglich den Xiaomi Smart Power Strip v2 (Wifi, 6Ports (3breite, 3schmale)) mit ins Plugin einzubinden ?
Bitte die Modulversion im Anhang ausprobieren, sollte Plugs und Strips mit dem subType PowerPlug unterstützen.
Wenn irgendwas nicht funktioniert, bitte Log mit verbose 5 posten.
Hallo zusammen,
der State meines Robbi's geht immer wechselnd auf disconnected. Bisher konnte ich nicht herausfinden weshalb. Auch die Befehle funktionieren nur zu 50% und wenn, dann sehr Zeit verzögert.
Aktuell hängt der Robbi in einem eigenen WLAN ohne Internetzugriff und darf in diesem auch nur mit der IP des FHEM-Servers kommunizieren.
Das Logfile mit Verbose 5 ist leider nicht sehr aussagekräftig:
2018-05-06_20:47:44 vacuum Docked
2018-05-06_20:47:44 vacuum batteryLevel: 100
2018-05-06_20:47:44 vacuum battery: ok
2018-05-06_20:47:44 vacuum last_clean_time: 0.77
2018-05-06_20:47:44 vacuum last_clean_area: 45.38
2018-05-06_20:47:44 vacuum error_code: None
2018-05-06_20:47:44 vacuum map_present: yes
2018-05-06_20:47:44 vacuum in_cleaning: no
2018-05-06_20:47:44 vacuum fan_power: 60
2018-05-06_20:47:44 vacuum dnd: off
2018-05-06_20:47:44 vacuum cleaning_mode: balanced
2018-05-06_20:47:44 vacuum error: none
2018-05-06_20:47:44 vacuum total_clean_time: 4.55
2018-05-06_20:47:44 vacuum total_clean_area: 289.36
2018-05-06_20:47:44 vacuum total_cleans: 14
2018-05-06_20:47:44 vacuum error: none
2018-05-06_20:47:44 vacuum last_timestamp: 1525590905
2018-05-06_20:47:44 vacuum history_0: 2018-05-06 09:15:05: 45.38m² in 0.77h, finished cleaning
2018-05-06_20:47:44 vacuum error: none
2018-05-06_20:47:44 vacuum history_1: 2018-05-05 12:12:56: 43.55m² in 0.72h, finished cleaning
2018-05-06_20:47:44 vacuum error: none
2018-05-06_20:47:44 vacuum history_2: 2018-05-05 07:43:34: 45.67m² in 0.85h, finished cleaning
2018-05-06_20:47:44 vacuum error: none
2018-05-06_20:47:44 vacuum history_3: 2018-05-04 20:26:34: 2.49m² in 0.02h, not finished
2018-05-06_20:47:44 vacuum error: none
2018-05-06_20:47:44 vacuum history_4: 2018-05-04 20:13:47: 0.00m² in 0.00h, not finished
2018-05-06_20:47:44 vacuum error: none
2018-05-06_20:47:44 vacuum history_5: 2018-05-04 15:49:17: 4.40m² in 0.00h, not finished
2018-05-06_20:47:44 vacuum error: none
2018-05-06_20:47:44 vacuum history_6: 2018-05-04 15:39:38: 0.00m² in 0.00h, not finished
2018-05-06_20:47:44 vacuum error: none
2018-05-06_20:47:44 vacuum history_7: 2018-05-03 23:32:44: 0.00m² in 0.00h, not finished
2018-05-06_20:47:44 vacuum error: none
2018-05-06_20:47:44 vacuum history_8: 2018-05-03 22:33:19: 44.12m² in 0.72h, finished cleaning
2018-05-06_20:47:44 vacuum error: none
2018-05-06_20:47:44 vacuum history_9: 2018-05-03 19:03:36: 39.73m² in 0.56h, finished cleaning
2018-05-06_20:52:44 vacuum error: none
2018-05-06_20:52:44 vacuum Docked
2018-05-06_20:52:44 vacuum batteryLevel: 100
2018-05-06_20:52:44 vacuum battery: ok
2018-05-06_20:52:44 vacuum last_clean_time: 0.77
2018-05-06_20:52:44 vacuum last_clean_area: 45.38
2018-05-06_20:52:44 vacuum error_code: None
2018-05-06_20:52:44 vacuum map_present: yes
2018-05-06_20:52:44 vacuum in_cleaning: no
2018-05-06_20:52:44 vacuum fan_power: 60
2018-05-06_20:52:44 vacuum dnd: off
2018-05-06_20:52:44 vacuum cleaning_mode: balanced
2018-05-06_20:57:54 vacuum disconnected
Hier der Output vom list device:
Internals:
DEF 192.168.0.28 70574973664564347839644d5a544542
FD 4
NAME vacuum
NR 50
STATE Docked
TYPE XiaomiDevice
mac LOCALNETWORK
model rockrobo.vacuum
READINGS:
2018-05-06 21:03:04 battery ok
2018-05-06 21:03:04 batteryLevel 100
2018-05-06 21:03:01 carpet_high 500
2018-05-06 21:03:01 carpet_integral 450
2018-05-06 21:03:01 carpet_low 400
2018-05-06 21:03:01 carpet_mode off
2018-05-06 21:03:01 carpet_stall_time 10
2018-05-06 21:03:04 cleaning_mode balanced
2018-05-06 21:03:01 consumables_filter 96
2018-05-06 21:03:01 consumables_main_brush 98
2018-05-06 21:03:01 consumables_sensors 84
2018-05-06 21:03:01 consumables_side_brush 97
2018-05-03 23:20:39 device_firmware 3.3.9_003194
2018-05-03 23:20:39 device_uptime 1.39
2018-05-06 21:03:04 dnd off
2018-05-06 21:03:01 dnd_enabled off
2018-05-06 21:03:01 dnd_end 07:30
2018-05-06 21:03:01 dnd_start 22:00
2018-05-06 21:03:04 error none
2018-05-06 21:03:04 error_code None
2018-05-06 21:03:04 fan_power 60
2018-05-06 21:03:01 history_0 2018-05-06 09:15:05: 45.38m² in 0.77h, finished cleaning
2018-05-06 21:03:01 history_1 2018-05-05 12:12:56: 43.55m² in 0.72h, finished cleaning
2018-05-06 21:03:01 history_2 2018-05-05 07:43:34: 45.67m² in 0.85h, finished cleaning
2018-05-06 21:03:01 history_3 2018-05-04 20:26:34: 2.49m² in 0.02h, not finished
2018-05-06 21:03:01 history_4 2018-05-04 20:13:47: 0.00m² in 0.00h, not finished
2018-05-06 21:03:01 history_5 2018-05-04 15:49:17: 4.40m² in 0.00h, not finished
2018-05-06 21:03:01 history_6 2018-05-04 15:39:38: 0.00m² in 0.00h, not finished
2018-05-06 21:03:01 history_7 2018-05-03 23:32:44: 0.00m² in 0.00h, not finished
2018-05-06 21:03:01 history_8 2018-05-03 22:33:19: 44.12m² in 0.72h, finished cleaning
2018-05-06 21:03:01 history_9 2018-05-03 19:03:36: 39.73m² in 0.56h, finished cleaning
2018-05-06 21:03:04 in_cleaning no
2018-05-06 21:03:04 last_clean_area 45.38
2018-05-06 21:03:04 last_clean_time 0.77
2018-05-06 21:03:01 last_timestamp 1525590905
2018-05-06 21:03:04 map_present yes
2018-05-06 21:02:58 serial_number 1387100816989
2018-05-06 21:03:04 state Docked
2018-05-06 21:02:58 timezone Europe/Berlin
2018-05-06 21:03:01 total_clean_area 289.36
2018-05-06 21:03:01 total_clean_time 4.55
2018-05-06 21:03:01 total_cleans 14
2018-05-06 21:03:01 volume 51
2018-05-06 21:02:58 wifi_auth_fail_count 0
2018-05-06 21:02:58 wifi_conn_fail_count 0
2018-05-06 21:02:58 wifi_conn_success_count 1
2018-05-06 21:02:58 wifi_dhcp_fail_count 0
2018-05-03 23:20:39 wifi_rssi -60
2018-05-06 21:02:58 wifi_state connecting
helper:
ConnectionState connected
cleanrecord 10
crypt AES
delay 0
dev 046f
historydays 10
id 219d
ip 192.168.0.28
last_read 1525633384
packetid 330
port 54321
sequence 1525550223
timers 0
token 70574973664564347839644d5a544542
day:
history:
packet:
1 wifi_stats
10 get_carpet_mode
11 get_status
122 app_start
123 get_status
125 device_info
171 get_status
173 device_info
2 device_info
207 device_info
241 device_info
25 device_info
261 get_status
262 get_status
264 device_info
296 get_status
3 get_serial_number
310 device_info
4 get_timezone
5 get_consumable
50 get_status
6 get_clean_summary
64 device_info
7 get_dnd_timer
8 get_timer
9 get_sound_volume
98 device_info
Attributes:
icon vacuum_top
room Diele
subType VacuumCleaner
Ich habe den Sauger mit der Original-App eingerichtet und dann die FW aktualisiert. Den Token musste ich mittels der alten App auslesen, da dieser bei der aktuellen App nicht mehr lokal vorgehalten wird. Danach habe ich dem WLAN das WAN abgeklemmt und den Zugriff ausschließlich auf die FHEM-Server-IP erlaubt.
Hab ich irgendwas vergessen oder falsch eingerichtet?
Besten Dank für eure Unterstützung!
Zitat von: nt86 am 06 Mai 2018, 21:06:53
Ich habe den Sauger mit der Original-App eingerichtet und dann die FW aktualisiert. Den Token musste ich mittels der alten App auslesen, da dieser bei der aktuellen App nicht mehr lokal vorgehalten wird. Danach habe ich dem WLAN das WAN abgeklemmt und den Zugriff ausschließlich auf die FHEM-Server-IP erlaubt.
Hab ich irgendwas vergessen oder falsch eingerichtet?
Nichts falsch eingerichtet aber übersehen, dass die lokale Kommunikation ohne Cloud Zugriff nicht mehr funktioniert.
Du musst also entweder das Internet wieder freigeben oder deinen Sauger rooten und Dustcloud installieren.
Alternativ schaffst du es via root Zugriff vielleicht auch, die lokale Kommunikation ohne Cloud wieder hinzubekommen.
Falls ja: sag Bescheid wie.
Hallo Markus,
nur zum Verständnis: wenn der Robbi keine WAN/Cloud Anbindung hat, sollte das Plug-In auch nie eine Verbindung aufbauen oder geschweige denn set/get Befehle absetzen können, richtig?
Habe gerade testweise ein set volume ausgeführt. Funktionierte auch (Status war auf connected). Start ging auch. Problem besteht, wenn der State disconnected ist.
Ich frage mich, warum der state immer zwischen disconnected und connected wechselt.
Kann die Ursache hierfür auch die fehlende Cloud Anbindung sein?
VG!
Eigentlich ist es mittlerweile so dass lokale Verbindungen nicht akzeptiert werden, wenn sich der Sauger nicht an der Cloud anmelden kann.
Dein Problem klingt erst mal etwas anders. Ausprobieren!
Meine neue Konfiguration mit Meldung, wenn man nach Hause kommt und Saugi sauber gemacht werden will.
Watchdog ist nicht mehr nötig, seit 2 Tagen macht er das, was er soll.
Problem waren die diversen states, die alle im Notify richtig ausgewertet werden mussten um zum richtigen Zeitpunkt den state "Error" nach Behälterentnahme ztu provozieren.
IP, Token und presence-device müssen natürlich eingetragen werden...
Für die Zonen- und Goto-Funktion ist immer noch der überlastete China-Server nötig, oder? :(
ZitatFür die Zonen- und Goto-Funktion ist immer noch der überlastete China-Server nötig, oder? :(
Also ich nutze das Zonen-Feature, ohne dass mein Robi Internet-Zugang hat (Ist in meiner FritzBox per Filter gesperrt)
Sollte allerdings jemand (meine Frau oder Kinder oder so :-[) auf den "Sauge"-Knopf drücken, muss ich die Zonen neu einlernen (wie in meinem vorherigen Post beschrieben), und dazu muss der Robi dann leider wieder ins Netz :(
Ist nun mal so - Clean Programm bedeutet neuer scan der Umgebung.
Das war aber nicht der Kern der Frage. Momentan bietet nach meinem Kenntnisstand nur der China-Server diese Funktion, andere Server können das noch nicht einmal.
Das ist ja der Mist. Alle melden sich nun auf dem China-Server an, und der bekommt davon dicke Backen.
Wird höchste Eisenbahn, daß die anderen Server dies auch bieten. (Nicht die dicken Backen)
Was meint ihr denn mit der Zonen-Funktion?
Also ich bin auf dem europäischen Server angemeldet und kann auch auf meiner Map die Zone einzeichnen und dann fährt er dort hin und säubert genau diesen Bereich bzw. Bereiche wenn ich mehrer Zonen eingezeichnet habe.
VG, Thomas
Zitat von: ToM_ToM am 09 Mai 2018, 20:29:31
Was meint ihr denn mit der Zonen-Funktion?
Also ich bin auf dem europäischen Server angemeldet und kann auch auf meiner Map die Zone einzeichnen und dann fährt er dort hin und säubert genau diesen Bereich bzw. Bereiche wenn ich mehrer Zonen eingezeichnet habe.
VG, Thomas
Genau das ist mit Zonenfunktion gemeint.
Wenn du die Koordinaten beim Attribut angibst inkl. Name, dann kannst du nicht nur clean starten sondern auch zoneclean...
Kurz, da Handy...
Gruß, Joachim
ZitatGenau das ist mit Zonenfunktion gemeint.
Aber das funktioniert bei mir einwandfrei. Und ich nutze den Europa-Server. Die App-Verbindung läuft erstaunlich stabil, Zone-Clean funktioniert super und auch die FHEM-Connection.
Probiert einfach mal den Europa-Server aus. Vielleicht gab es ja zwischenzeitlich ein Update. ;)
Sagt mal, wie komme ich denn mittlerweile an das Token, um den Vacuum in FHEM einzurichten?
Hatte das schon mal am laufen und gerade nach App-Update (auf Mi Home 5.1.30) und Firmware-Update den Robot zurückgesetzt und neu eingerichtet. Damals hatte ich den Token mit der Flole-App exportiert. Das klappt auch noch, auch wenn Flole den Robot nicht mehr steuern kann, aber das war da exportiert wurde, scheint in FHEM nicht als Token zu funktionieren. Gibt es mittlerweile einen anderen Weg um an das Token zu gelangen?
Sorry wenn ich irgendwas nicht mit bekommen habe, der Thread hier ist riesig.
lg
aeronaut
Also ich habe nun auch versucht auf den Europa Server umzusteigen. Leider bekomme ich dann den Sauger nicht in der App angelegt. Das Sauger Wlan ist da, aber die App findet den Robbi einfach nicht.
Bin jetzt erst mal wieder auf China Mainland umgestiegen.
Leider musste ich feststellen das sich bei der Aktion auch der Token ändert. Nach langer Recherche hab ich den dann endlich mit dieser Modifizierten App auslesen können.
https://cloud.mail.ru/public/55AA/RF3DYidFf/MiHome_5.1.30_vevs.apk
Hat es denn noch jemand geschafft mit einer Europa Server Verbindung den Robbi incl. Zone Funktion ans laufen zu bekommen. Lohnt es sich also es noch mal zu probieren. Mich nervt dieser lahme China Server auch extrem. Wäre toll wenn der Euro Server nun auch auf dem neuesten Stand ist und alle Funktionen des China Server bereitstellt.
Zitat von: ToM_ToM am 11 Mai 2018, 08:18:29
Aber das funktioniert bei mir einwandfrei. Und ich nutze den Europa-Server. Die App-Verbindung läuft erstaunlich stabil, Zone-Clean funktioniert super und auch die FHEM-Connection.
Probiert einfach mal den Europa-Server aus. Vielleicht gab es ja zwischenzeitlich ein Update. ;)
Welche Staubsauger Version hast Du denn?
ZitatWelche Staubsauger Version hast Du denn?
Roborock (Firmware 3.3.9_001232)
Die darf ja auch offiziell in Europa verkauft werden.
Hallo,
habe mir zusätzlich zu einem Roborock 2. Gen direkt in China bei Ali einen Roborock 3 Gen gekauft:
https://de.aliexpress.com/item/New-Roborock-Xiaowa-Xiaomi-MI-Robot-Vacuum-Cleaner-3-for-Home-Automatic-Sweeping-Dust-Sterilize-Smart/32863739611.html?spm=a2g0s.9042311.0.0.37e34c4dNUVSZW
Kann das Gerät nicht über das Xiaomi-Modul mit FHEM koppeln - FHEM hängt sich dabei irgendwie auf.
Bekomme im Log folgende Einträge:
2018.05.15 19:31:02 3: SaugMops: initialized, using Rijndael
2018.05.15 19:31:12 3: SaugMops: disconnecting
2018.05.15 19:31:12 2: SaugMops: connecting
2018.05.15 19:31:12 3: SaugMops: initialized
Can't use string ("R0203S81301612") as a HASH ref while "strict refs" in use at ./FHEM/72_XiaomiDevice.pm line 2354.
Hat jemand ne Idee?
P.
Vielleicht muss das Modul erst auf dieses Modell angepasst werden?
Gesendet von meinem ONEPLUS A5000 mit Tapatalk
Ist das ein Original Xiaomi Mi Robot?
Die Firma hat auf ihrer Website https://xiaomi-mi.com/appliances/ nur 2 Modelle gelistet.
hm ... dachte schon irgendwie - zumindest kann man mit der Xiaomi-App den Sauger steuern, allerdings nur über China-Landserver.
Habe inwischen noch ein Log mit Verbose Level 5 erstellt:
2018.05.15 23:25:14 4: WEB_172.23.23.45_51198 POST /fhem&fw_id=202&room=Unsorted&cmd=define+SaugMops+XiaomiDevice+172.23.23.30+b5bd5249ac54df914f7404d272a8dae6; BUFLEN:0
2018.05.15 23:25:14 5: Cmd: >define SaugMops XiaomiDevice 172.23.23.30 b5bd5249ac54df914f7404d272a8dae6<
2018.05.15 23:25:14 4: SaugMops: Crypt::Cipher::AES not found
2018.05.15 23:25:14 3: SaugMops: initialized, using Rijndael
2018.05.15 23:25:14 5: Starting notify loop for global, 1 event(s), first is DEFINED SaugMops
2018.05.15 23:25:14 5: createNotifyHash
2018.05.15 23:25:14 4: WEB_172.23.23.45_51198 GET /fhem?detail=SaugMops&fw_id=202; BUFLEN:0
2018.05.15 23:25:14 4: WEB: /fhem?detail=SaugMops&fw_id=202 / RL:3022 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2018.05.15 23:25:14 4: Connection closed for WEB_172.23.23.45_51203: EOF
2018.05.15 23:25:14 4: WEB_172.23.23.45_51197 GET /fhem?cmd=%7BReadingsVal(%22SaugMops%22%2C%22reconnect%22%2C%22%22)%7D&XHR=1; BUFLEN:0
2018.05.15 23:25:14 5: Cmd: >{ReadingsVal("SaugMops","reconnect","")}<
2018.05.15 23:25:14 4: WEB: /fhem?cmd=%7BReadingsVal(%22SaugMops%22%2C%22reconnect%22%2C%22%22)%7D&XHR=1 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.05.15 23:25:14 4: WEB_172.23.23.45_51199 GET /fhem?cmd=%7BAttrVal(%22SaugMops%22%2C%22room%22%2C%22%22)%7D&XHR=1; BUFLEN:0
2018.05.15 23:25:14 5: Cmd: >{AttrVal("SaugMops","room","")}<
2018.05.15 23:25:14 4: WEB: /fhem?cmd=%7BAttrVal(%22SaugMops%22%2C%22room%22%2C%22%22)%7D&XHR=1 / RL:21 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2018.05.15 23:25:15 4: Connection accepted from WEB_172.23.23.45_51204
2018.05.15 23:25:24 3: SaugMops: disconnecting
2018.05.15 23:25:24 2: SaugMops: connecting
2018.05.15 23:25:24 3: SaugMops: initialized
2018.05.15 23:25:24 5: SaugMops: initSend
2018.05.15 23:25:24 5: SaugMops Send SUCCESS
2018.05.15 23:25:24 5: SaugMops > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2018.05.15 23:25:24 5: SaugMops < 2131002000000000050ce4b400003fd400000000000000000000000000000000 (32)
2018.05.15 23:25:28 4: SaugMops: write {"id":1,"method":"miIO.wifi_assoc_state","params":[""]} (55)
2018.05.15 23:25:28 5: SaugMops: send 2131006000000000050ce4b400003fd8e8d6bb9538bfe935f3019a98438e858b4d6d24a5b50d7117453a57b00e9266a2da50e31ed1edc89510b76194e7cdb1f13216d3074249042ff7f8b81bb93d6df367ca0b6829f1bcf45264f46f999dc58f
2018.05.15 23:25:28 5: SaugMops Send SUCCESS
2018.05.15 23:25:28 5: SaugMops > 2131006000000000050ce4b400003fd8e8d6bb9538bfe935f3019a98438e858b4d6d24a5b50d7117453a57b00e9266a2da50e31ed1edc89510b76194e7cdb1f13216d3074249042ff7f8b81bb93d6df367ca0b6829f1bcf45264f46f999dc58f
2018.05.15 23:25:28 4: SaugMops: write {"id":2,"method":"miIO.info","params":[""]} (43)
2018.05.15 23:25:28 5: SaugMops: send 2131005000000000050ce4b400003fd84a92cc2b93b9c19a85a3484d6e1e444fce0324d9fcae709d1b3a728f6a12e6b0176d72ba88f57dbea1e65e6f909ef63ff8538a96355e48045f7129873289d97f
2018.05.15 23:25:28 5: SaugMops Send SUCCESS
2018.05.15 23:25:28 5: SaugMops > 2131005000000000050ce4b400003fd84a92cc2b93b9c19a85a3484d6e1e444fce0324d9fcae709d1b3a728f6a12e6b0176d72ba88f57dbea1e65e6f909ef63ff8538a96355e48045f7129873289d97f
2018.05.15 23:25:28 4: SaugMops: write {"id":3,"method":"get_serial_number","params":[""]} (51)
2018.05.15 23:25:28 5: SaugMops: send 2131006000000000050ce4b400003fd84cc064be0d8ed80a9c2ced5d2d800e023346020cb2ded2b98e57bf30244e56e66545ce6358768e4c3a1b4df225060734a9f813bd875ed2190a3dfa442afa93711079226bbffd658fb48678c5f74d90d4
2018.05.15 23:25:28 5: SaugMops Send SUCCESS
2018.05.15 23:25:28 5: SaugMops > 2131006000000000050ce4b400003fd84cc064be0d8ed80a9c2ced5d2d800e023346020cb2ded2b98e57bf30244e56e66545ce6358768e4c3a1b4df225060734a9f813bd875ed2190a3dfa442afa93711079226bbffd658fb48678c5f74d90d4
2018.05.15 23:25:28 4: SaugMops: write {"id":4,"method":"get_timezone","params":[""]} (46)
2018.05.15 23:25:28 5: SaugMops: send 2131005000000000050ce4b400003fd81bc047babcf3999c773793be9d5295e47234d596e40f6ba7123fea9d48315279639f40ea7f698344e966d25012fcd783dd883685f2ba41f489d2d5667f8bb3e2
2018.05.15 23:25:28 5: SaugMops Send SUCCESS
2018.05.15 23:25:28 5: SaugMops > 2131005000000000050ce4b400003fd81bc047babcf3999c773793be9d5295e47234d596e40f6ba7123fea9d48315279639f40ea7f698344e966d25012fcd783dd883685f2ba41f489d2d5667f8bb3e2
2018.05.15 23:25:28 5: SaugMops < 213100a000000000050ce4b400003fd82ff2770ae4ab142dce1fabda754e0068e26df2a838c0f4f99943044d4fdb003104d4d12eb9d9316d5bfcacc9bfc121cb27a3db50a1f38d7c2cdecd248895a287b4ffa33b0f31953daa70550843a97c9ccba85044646df02f3d3093eee11bcaee82a850776b597e090a910d7bcb445a266d3b067344d53e514187513d74f8500629e71145669c6626fe059f5a1b98ec05 (160)
2018.05.15 23:25:28 5: SaugMops: decrypted
{"result":{"state":"ONLINE","auth_fail_count":0,"conn_succes_count":1,"conn_fail_count":0,"dhcp_fail_count":0},"id":1}
2018.05.15 23:25:28 5: SaugMops: parse id 1
$VAR1 = {
'id' => 1,
'result' => {
'dhcp_fail_count' => 0,
'auth_fail_count' => 0,
'conn_fail_count' => 0,
'state' => 'ONLINE',
'conn_succes_count' => 1
}
};
2018.05.15 23:25:28 4: SaugMops: parse id 1 / wifi_stats
2018.05.15 23:25:28 4: SaugMops: msg ref is HASH
2018.05.15 23:25:28 5: Starting notify loop for SaugMops, 1 event(s), first is error: none
2018.05.15 23:25:28 5: Temperatur: not on any display, ignoring notify
2018.05.15 23:25:28 5: End notify loop for SaugMops
2018.05.15 23:25:28 5: Starting notify loop for SaugMops, 5 event(s), first is wifi_state: online
2018.05.15 23:25:28 5: Temperatur: not on any display, ignoring notify
2018.05.15 23:25:28 5: End notify loop for SaugMops
2018.05.15 23:25:28 5: SaugMops < 213101c000000000050ce4b400003fd8443608b9b9ff8a3b00595591e4b0e951efeb50f4731c2dcd8a3d6510cb819b195a3fcb6631e7739141ada6a4c05de80a592dbbbdd1352cd9a998d7c95fbbe29bf66f5450e9a1aeeadc2c5cb536c1a57da2a402476940763b885aeec41b995cd3eb275f551bb98c47c3ddbca00cf4dea88e4c3b2a47e47e94d6323b3dea653b1097f819b4b758e39cfaed27aefadfbfa7253e496488e2fb2c6eadb7dbc8cc8417001c4071997486e4d033653db9f7c01aedd4ac7f0d33cfeee6aae0e57dfdf2e0e825e5d7eb5fdfcb1e35bfef0fd0855b9d8280f6943dc1fd1bd33c617928d5d26736fb15fd63cecc6ebc28ba761652699bff5bc12080af3d5de4922f5fb38413809fe81914ee9e5c5dd1db0446de95ef32fe54abe86dd6d9fc28114798cad96342b66f8b86d241a30f9d045df90dc68eb8f5368bd7ad7641b8664c5adaf71d28134a9f6f9498a95ab70a40bdb6a16518798b0fb51db7dddc6f2875998798f735d7a91f0410bfe855dd18b08a8751796f57661790ebac7df499f0d677606c1a552a4d4b0886ca83f7c1305999769823db18a750ef5b38cd866e566e938ba974c19bafc85e0b2a5e8937035ec6c34bada8 (448)
2018.05.15 23:25:28 5: SaugMops: decrypted
{"result":{"life":16344,"token":"b5bd5249ac54df914f7404d272a8dae6","mac":"7C:49:EB:00:86:1B","fw_ver":"1.3.0","hw_ver":"ESP8266","uid":"1814712348","model":"roborock.vacuum.c1","mcu_fw_ver":"0254","wifi_fw_ver":"1.5.0-dev(1210f4f)","ap":{"rssi":-54,"ssid":"Casa-Stralau","bssid":"30:B5:C2:57:23:88"},"netif":{"localIp":"172.23.23.30","mask":"255.255.255.0","gw":"172.23.23.1"},"mmfree":16848},"id":2}
2018.05.15 23:25:28 5: SaugMops: parse id 2
$VAR1 = {
'result' => {
'model' => 'roborock.vacuum.c1',
'netif' => {
'localIp' => '172.23.23.30',
'mask' => '255.255.255.0',
'gw' => '172.23.23.1'
},
'fw_ver' => '1.3.0',
'mmfree' => 16848,
'ap' => {
'rssi' => -54,
'bssid' => '30:B5:C2:57:23:88',
'ssid' => 'Casa-Stralau'
},
'wifi_fw_ver' => '1.5.0-dev1210f4f',
'hw_ver' => 'ESP8266',
'uid' => '1814712348',
'mcu_fw_ver' => '0254',
'mac' => '7C:49:EB:00:86:1B',
'life' => 16344,
'token' => 'b5bd5249ac54df914f7404d272a8dae6'
},
'id' => 2
};
2018.05.15 23:25:28 4: SaugMops: parse id 2 / device_info
2018.05.15 23:25:28 4: SaugMops: msg ref is HASH
2018.05.15 23:25:28 5: Starting notify loop for SaugMops, 1 event(s), first is error: none
2018.05.15 23:25:28 5: Temperatur: not on any display, ignoring notify
2018.05.15 23:25:28 5: End notify loop for SaugMops
2018.05.15 23:25:28 5: Starting notify loop for SaugMops, 3 event(s), first is device_uptime: 4.54
2018.05.15 23:25:28 5: Temperatur: not on any display, ignoring notify
2018.05.15 23:25:28 5: End notify loop for SaugMops
2018.05.15 23:25:28 5: SaugMops < 2131005000000000050ce4b400003fd837f26d218af3901ec061ddb6a1bd6af00e1e552e6c37477fec61ade2945387349f1e6639ec33117da68f937cb2e350bed517d7cb94ac74a58d93dc80da41fcf4 (80)
2018.05.15 23:25:28 5: SaugMops: decrypted
{"result":["R0203S81301612"],"id":3}
2018.05.15 23:25:28 5: SaugMops: parse id 3
$VAR1 = {
'id' => 3,
'result' => [
'R0203S81301612'
]
};
2018.05.15 23:25:28 4: SaugMops: parse id 3 / get_serial_number
2018.05.15 23:25:28 4: SaugMops: msg ref is ARRAY
2018.05.15 23:25:28 5: Starting notify loop for SaugMops, 1 event(s), first is error: none
2018.05.15 23:25:28 5: Temperatur: not on any display, ignoring notify
2018.05.15 23:25:28 5: End notify loop for SaugMops
Can't use string ("R0203S81301612") as a HASH ref while "strict refs" in use at ./FHEM/72_XiaomiDevice.pm line 2354.
Hilft das jemanden weiter?
P.
Crypt::Cipher::AES not found
Installieren das doch Mal nach und starte FHEM neu
Gesendet von meinem ONEPLUS A5000 mit Tapatalk
sicher? benutze doch Rijndael anstatt AES
... initialized, using Rijndael ...
...
... 2018.05.15 23:25:28 5: SaugMops: decrypted
Men Roborock 2. Gen kann ich auch so ansprechen/koppeln.
Danke - Danke - Danke für das tolle Modul! :)
Zitat von: Markus M. am 12 April 2018, 16:11:34
Oder du legst dir über die passenden Attribute erst ein Alias an:
attr vacuum point_names dock:[25600,25200] entrance:[22000,23750]
attr vacuum zone_names home:[16200,27250,31650,27650,1],[23700,23050,25200,24200,2] livingroom:[16200,26250,23000,30150,1]
Bei den Alias für die Zonen Reinigung wird die Anzahl der Reinigungen mit angegeben.
Es wäre klasse, wenn dies ein separater Parameter wäre und der Aufruf dann, wie folgt aussehen könnte:
set vacuum zone livingroom 1 oder set vacumm zone livingroom 3
Um den bestehenden Zone-Reinigungsbefehl nicht anpassen zu müssen, evtl. einen weiteren Zone-Reinigungsbefehl (zone_repeat o.ä.) einführen, der dann die Anzahl der Reinigungen erlaubt? :o
... und das Eingabefeld vergrößern beim Eingeben der Zahlen wie z.B. bei dbLog?
Info zu meinem Post #1004, neuer Roborock...
Also, ich habe mir das Log-File nun mal selbst genauer angeschaut und habe das Problem gefunden und versucht zu fixen.
Dieses Roborock-Model ("vacuum.c1") gibt leicht abweichende Antworten auf die Requests "serialNb" und "timezone".
Das habe ich mal als Non-Perl-Experte versucht zu erweitern:
if($msgtype eq "get_serial_number")
{
return undef if(!defined($json->{result}));
return undef if(ref($json->{result}) ne "ARRAY");
if($hash->{model} ne "roborock.vacuum.c1")
{ readingsSingleUpdate( $hash, "serial_number", $json->{result}[0]{serial_number}, 1 ) if(defined($json->{result}[0]{serial_number})); }
else { readingsSingleUpdate( $hash, "serial_number", $json->{result}[0], 1 ) }
return undef;
}
.....
if($msgtype eq "get_timezone")
{
return undef if(!defined($json->{result}));
return undef if(ref($json->{result}) ne "ARRAY");
if($hash->{model} ne "roborock.vacuum.c1")
{ readingsSingleUpdate( $hash, "timezone", $json->{result}[0], 1 ) if(defined($json->{result}[0])); }
else{ readingsSingleUpdate( $hash, "timezone", $json->{result}[0]{olson}, 1 ); }
return undef;
}
Die übrigen Request scheinen unterstützt zu werden, soweit es der "C1" auch kann.
So werden Zonecleaning-Kommondos einfach ignoriert, da nicht von HW-Seite unterstützt.
Der Rest scheint soweit zu funktionieren
P-
Zitat von: olili am 16 Mai 2018, 22:30:09Also, ich habe mir das Log-File nun mal selbst genauer angeschaut und habe das Problem gefunden und versucht zu fixen.
Dieses Roborock-Model ("vacuum.c1") gibt leicht abweichende Antworten auf die Requests "serialNb" und "timezone".
Poste mal bitte noch den Log-Ausschnitt mit der Timezone und probier für die Serial den Anhang aus.
hier das log mit timezone, bei get_volume ist auch noch ein Problem.
Bitte testen.
Hat dein C1 Sprachausgabe und Sprachpakete?
Edit: Sprachpakete gibt es wahrscheinlich nicht.
werde ich heute abend ausprobieren. Melde mich dann.
Ja der C1 hateine Sprachausgabe.
Habe aber bisher noch keine Möglichkeit gefunden, eine andere Sprache als Chinesisch zu aktivieren.
Der Robot geht mit der Xiaomi-App bisher auch nur mit China-Land-Servern...
@Markus M.
tut. Bisher keine Abstürze ...
Woran machst Du fest, dass es kein dt. Sprachpaket gibt?
O.
Zitat von: olili am 17 Mai 2018, 22:47:10tut. Bisher keine Abstürze ...
Woran machst Du fest, dass es kein dt. Sprachpaket gibt?
Die Abstürze hatte ich ;)
In der Version die du runtergeladen hast sollte aber alles passen.
Daran dass du die Funktion in der App nicht findest, dein Sauger kein Linux hat und nur OK zurück gibt. Dass es dafür irgendwann noch Sprachpakete geben wird ist nicht unmöglich, aber eher unwahrscheinlich.
Hallo zusammen,
ich habe meinen ersten Xiaomi Robo erfolgreich in FHEM integriert.
An dieser Stelle vielen Dank für das Modul, mach bitte weiter. ;D
Dann allerdings auch noch eine Bitte. Könntest du eine Anleitung zum encpryton eines 96-stelligen Tokens noch in die erste Seite schreiben?
Du schreibst zwar, dass der verschlüsselte Token auch verwendet werden kann (aber wie?), doch bei mir kam immer ein Fehler und mein Device stand ständig auf disabled.
2018.05.21 10:12:14 3: XiaomiRobo: initialized, using AES
2018.05.21 10:12:14 3: XiaomiRobo: token decryption using Crypt::Cipher::AES
2018.05.21 10:12:14 1: XiaomiRobo: token decryption failed
Asked to truncate 153 bytes, which is greater than Crypt::Cipher::AES's blocksize (16 bytes).
Möglich das ich bei der Device Erstellung was falsch gemacht habe?
Nach einem händischen encrypten und eintragen eines 32 stelligen Tokens hats geklappt. :)
Ich suche das mal raus. Siehe 3. Post
Im Modul scheint es irgendwie nur bei mir zu funktionieren...
Wenn irgendwer Code findet mit dem es funktioniert, immer her damit ;)
Danke dir. :)
Es gab eine Diskussion zur Vereinheitlichung der Battery Readings (https://forum.fhem.de/index.php?topic=87575).
Da ich das unterstützen möchte, gibt es ein paar kleine Änderungen.
Bitte passt eure Notifys etc. nach dem nächsten Update entsprechend an:
battery -> batteryState (ok/low)
batteryLevel -> batteryPercent (0..100)
Die alten Readings werden nach einem Update nicht mehr befüllt und können z.B. so gelöscht werden:
deletereading xiaomi_.* (battery|batteryLevel)
Hallo Zusammen,
nun wo das ZonedClean und GoTo funktioniert, würde ich gerne wissen, was genau man den eingeben muss? Handelt es sich um Koordinaten? Ich habe mal 10,10 bei Goto versucht, da fährt er aber in Nirvana!
Grüße
Hessy
Hallo Hessy,
wichtig ist, dass Du zunächst einen ordentlichen Plan mittels "Clean" erstellt hast (in der Mi Home app) und sich dieser nicht bei jedem Reinigungsvorgang ändert.
Dann kannst Du point_names definieren, die du mit goto anfahren kannst. Ich habe dafür jeweils die Zimmermitten oder sinnvolle Startpunkte für die Zonenreinigung bestimmt (im try and error Verfahren). Beispielsweise:
attr vacuum point_names bathroom:[25500,31000] carpet:[26000,21150]
Startpunkt ist das dock mit x=25600 und y=25600. Ein Meter entspricht 1000 Einheiten. Theoretisch kannst Du Dir das Dock in einen Grundrißplan eintragen und dann die Zimmer ausmessen (z.B. bathroom:[25500,31000])
Wenn Du dass im Griff hast kannst Du die Zonen definieren. Etwa so:
attr vacuum zone_names bathroom:[24300,29800,26500,31900,1] carpet:[24500,21200,26050,23950,1]
Dabei bestimmen die ersten beiden Zahlen den linken unteren Eckpunkt des Rechtecks, die dritte und vierte Zahl den rechten oberen Eckpunkt. Die fünfte Zahl bestimmt die Anzahl der Durchläufe (1 bis 3).
Ab dann "clean" nicht mehr benutzen, sonst wird die Karte wieder neu erstellt. Noch nicht bekannte/gescannte Areale findet der Roboter nicht. Habe mir für den Fall, dass die Karte neu erstellt werden muss folgenden Zonen-Reinigung erstellt:
CreateMap:[23500,24500,23750,24750,1],[21250,22500,21500,22750,1],[23500,29750,23750,30000,1],[23500,31500,23750,31750,1]
Dabei fährt der Staubsauger durch den Flur (bei offenen Türen) und "reinigt" an Punkten mit "guter Aussicht" nur 25qcm große Flächen, dreht sich dabei und erstellt schon eine ziemlich gute Karte. Dauert keine 3 Minuten.
Alternativ kann man bei gerootetem Staubsauger auch Koordinaten aus dessen Betriebssystem auslesen. Musst mal weiter oben lesen.
Viel Erfolg!
Hey thymjan,
vielen Dank für die schnelle und präzise Antwort! Ich werde gleich mal ein Map erstellen lassen. Die Idee mit dem Raster ist wirklich gut. Noch eine Kleine Frage hätte ich da zu dem ZonedClean:
Du hast geschrieben, dass du dann ein Attribut erstellst, wie spreche ich das Attribut "vacuum zone_names bathroom" an? Ich hätte jetzt spontan den Befehl "set Saugroboter zone 25500,31000" ausgeführt.
Gruß
Hessy
Ne, geht viel einfacher über die DeviceOverview Seite in fhem:
Gleich oben bei der "set"-Taste im Dropdown-Menü "zone" auswählen. Dann erscheinen in einem weiteren Dropdown-Menü deine angelegten Zonen. Zone auswählen und "set" drücken und ab geht die Post!
set vacuum zone bathroom
Falls Du fhem-Neuling bist: Du kannst die point_names oder zone_names einfach editieren in dem du im Feld Attributes direkt darauf klickst. Nach dem Editieren auf "attr" klicken und mit "Save config" abspeichern.
Alles klar, ich probiere es mal aus und melde mich bei Erfolg/Misserfolg wieder. Nochmals vielen Dank und einen schönen Abend ;-)
Ich habe die Koordinaten aus der Flole App kopiert.
Zone auf der Karte justieren und ab in die Zwischenablage.
Sehr einfach.
Gruss Helmut
Moin,
nach vielen Seiten im dem Thread bin ich leider auch nicht schlauer. Mein neuer Xiaomi 2 bringt im Log nur das:
2018.05.28 08:56:49 3: Dobbi: disconnecting
2018.05.28 08:56:49 2: Dobbi: connecting
2018.05.28 08:56:49 3: Dobbi: initialized
Devive ist so angelegt:
Internals:
DEF 192.178.178.80 7a3956356b72797a354f44495a38xxxx
FD 31
NAME Dobbi
NR 1893
STATE ???
TYPE XiaomiDevice
helper:
ConnectionState initialized
crypt AES
delay 0
ip 192.178.178.80
packetid 1
port 54321
token 7a3956356b72797a354f44495a38xxxx
Attributes:
room Wohnzimmer
subType VacuumCleaner
Den Token habe ich verfremdet :) Ob das nötig ist weiß ich nicht, sicher ist sicher...
Token wurde manuell entschlüsselt.
Danke und Gruß RUDI
Zitat von: dl4fb am 23 Mai 2018, 21:17:19
Ich habe die Koordinaten aus der Flole App kopiert.
Zone auf der Karte justieren und ab in die Zwischenablage.
Sehr einfach.
Gruss Helmut
Welche App ist das? Die Standard Xiaomi App?
Ich hab nun genau das Problem, welches bereits angesprochen wurde... mein Saugroboter erstellt immer eine Mao mit unterschiedlicher Orientierung. Manchmal ist die Station oben in der Map, manchmal unten und ab und an auch einfach schräg. Gibt es da eine Methode, dass zu unterbinden?
Zitat von: Hessy_James am 28 Mai 2018, 12:31:59
Welche App ist das? Die Standard Xiaomi App?
Ich hab nun genau das Problem, welches bereits angesprochen wurde... mein Saugroboter erstellt immer eine Mao mit unterschiedlicher Orientierung. Manchmal ist die Station oben in der Map, manchmal unten und ab und an auch einfach schräg. Gibt es da eine Methode, dass zu unterbinden?
Nein, leider gibt's keine Möglichkeit bis dato. Die Flole app ist eine alternative app. Google sollte da weiter helfen.
Zum Map erstellen:
Habe mir ein Makro erstellt mit folgendem Inhalt:
set vacuum clean; sleep 20; set vacuum pause; sleep 10; set vacuum zone create_map
Damit habe ich ganz gute Erfolgschancen, dass die Ausrichtung immer gleich ist.
Wichtig ist das die Gegenstände (Stühle etc.) immer gleich stehen. In dieser Zeit sollte möglichst ein Bereich mit langen Strahlengängen einsehbar sein sowie eine Refernzwand mit "breitem Kreuz".
Nur selten muss ich das Makro 2x ausführen bis die Ausrichtung wieder stimmt.
Sprecht ihr hier von der 1. oder 2. Generation??
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: Marlen am 01 Juni 2018, 10:14:47
Sprecht ihr hier von der 1. oder 2. Generation??
Ist bunt gemischt, sollte aber für beide Versionen gelten.
Den Befehl "set vacuum zone create_map" kenne ich aber nicht. Was soll der denn bewirken?
Ich zitiere mal ;)
Zitat von: thymjan am 23 Mai 2018, 19:26:30
Habe mir für den Fall, dass die Karte neu erstellt werden muss folgenden Zonen-Reinigung erstellt:
CreateMap:[23500,24500,23750,24750,1],[21250,22500,21500,22750,1],[23500,29750,23750,30000,1],[23500,31500,23750,31750,1]
Dabei fährt der Staubsauger durch den Flur (bei offenen Türen) und "reinigt" an Punkten mit "guter Aussicht" nur 25qcm große Flächen, dreht sich dabei und erstellt schon eine ziemlich gute Karte. Dauert keine 3 Minuten.
Ja, leider - alles funktionierte Monate ausgezeichnet, aber nach einem Zurücksetzen des Vacuums funktioniert er in fhem nicht mehr.
Vermute, dass nach dem Reset ein neuer Token generiert wurde. Da es ursprünglich auch ein grosses Problem für mich war den Token auszulesen (unter Android) ersuche ich um Info, mit welchen Mitteln es heute möglich ist den Token wieder zu bekommen und wie ich gelesen habe auch zu entschlüsseln.
Ich habe natürlich bereits gesucht aber ein Ratschlag eines Praktikers wäre mir doch sehr wichtig!
Danke und LG
PS: Vacuum 1. Generation
@Shojo: Danke, hatte ich übersehen.
@raimundl: Es gibt eine alternative Android-app: http://www.kapiba.ru/2017/11/mi-home.html
Dort wird das token an einer Stelle angezeigt und kann entsprechend abgetippt und in FHEM eingegeben werden.
Zitat von: raimundl am 01 Juni 2018, 13:45:01
Ja, leider - alles funktionierte Monate ausgezeichnet, aber nach einem Zurücksetzen des Vacuums funktioniert er in fhem nicht mehr.
Vermute, dass nach dem Reset ein neuer Token generiert wurde. Da es ursprünglich auch ein grosses Problem für mich war den Token auszulesen (unter Android) ersuche ich um Info, mit welchen Mitteln es heute möglich ist den Token wieder zu bekommen und wie ich gelesen habe auch zu entschlüsseln.
Ich habe natürlich bereits gesucht aber ein Ratschlag eines Praktikers wäre mir doch sehr wichtig!
Danke und LG
PS: Vacuum 1. Generation
Hallo raimundl,
ich habe zwar die zweite Generation, aber es sollte bei beiden gleich sein.
Ich habe auch ewig versucht den Token auszulesen (unter Android; One Plus 3 (ohne root)) und habe nun eine recht zuverlässige Variante gefunden.
1. ich habe eine ältere XiaomiMi App auf meinem Phone installiert: https://www.apkmirror.com/apk/xiaomi...load/download/
2. In den Einstellungen der App habe ich bei der Länderauswahl Mainland China ausgewählt. Falls das nicht gehen sollte, kannst du alternativ auch Others auswählen.
3. Dann den Roboter in der App manuell installieren.
4. und zum Auslesen habe ich anschließend das MiToolkit 1.6 verwendet. Dieses Tool erstellt ein Mirror von deiner MeApp und liest anschließend den Token aus. Anleitungen zu dem Tool gibt es zu genüge.
Grüße
Hessy
Das würde auch gehen. Nachteil: Ältere app.
Ich habe auf einem alten Tablet die von mir erwähnte alternativ-app installiert. Dort wird der Token nach dem Login auf dem entsprechenden Server (bei mir Mainland China) angezeigt, wenn man den Sauger dort aufruft und anschließend General settings-Network info.
Hallo,
bin fasziniert von dem Modul! Super Arbeit!
Ich bin gerade dran mir auch so einen Roboter zu zulegen.
Hätte noch paar Fragen:
-kann man z.b. die ganze Wohnung bis auf einen Bereich ( wo das Katzenfutter steht, oder um der Garderobe wegen Schuhbendel) reinigen lassen?
- diese Zonen-funktion geht auch bei Gen 1?
- hat der roboter einen Sensor wenn der Behälter voll ist? Wenn ja, kann an das in FHEM auslesen?
- kann man den Roboter an einen Punkt hin fahren lassen (Mülleimer)?
- Gibt es ein Reading in welcher Zone er sich gerade befindet oder ob er auf den Weg zur Ladestation ist?
Gruß
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
1. Ja, mit mehreren Zonen.
2. Ja.
3. Nein.
4. Ja (goto)
5. Teils. Er gibt den Status "Zoned Clean" an, aber nicht, welche Zone. Hat man ja selber ausgelöst. Und wenn er auf dem Weg zur Docking Station ist, gibt er das auch als Status an.
Ich habe in den Attributen für die bestimmten Bereichte/Zimmer Zonen angelegt:
- Wohnzimmer
- Schlafzimmer
- Flur
...
Zudem habe ich eine Zone täglich / alle 3 Tage
Kann man in diesen Zonen die anderen Zonen einfach aufrufen, um mehrere hintereinander zu schalten?
Zitat von: TWART016 am 03 Juni 2018, 14:50:10
Ich habe in den Attributen für die bestimmten Bereichte/Zimmer Zonen angelegt:
Zudem habe ich eine Zone täglich / alle 3 Tage
Kann man in diesen Zonen die anderen Zonen einfach aufrufen, um mehrere hintereinander zu schalten?
Nicht die Zonennamen selbst, aber ihre Definitionen kannst du aneinanderhängen und erneut in zone_names packen.
Beispiel mit 2 Räumen und einer dritten Zone, die diese beiden Räume enthält:
room1:[a,b,c,d,1] room2:[e,f,g,h,1] bothrooms:[a,b,c,d,1],[e,f,g,h,1]
Cool, danke für die schnellen Antworten!
Was ist eigentlich der Hauptunterschied zwischen Gen 1 und Gen 2?
Die Wischfunktion und???
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
@Hessy_James, danke für den Vorschlag!
@RappaSan, danke zur Alternative:
Android-app: http://www.kapiba.ru/2017/11/mi-home.html
Habe versuchsweise die APK Dateien heruntergeladen, bin aber der Meinung, dass man aufgrund der sehr umfangreichen Berechtigungswünsche, diese App nur auf einen Testgerät installieren sollte.
Ich vermute, dass deine Aussage
"Ich habe auf einem alten Tablet die von mir erwähnte alternativ-app installiert"
dies bestätigt.
Werde ein altes Gerät freimachen und damit versuchen.
Ich konnte 2 APK Dateien downloaden: MiHome_5.3.4_vevs.apk und MiHome_5.3.4_vevs_stocksign-apk.
Kennst du den Unterschied?
LG
Ich glaube dass der neue auch noch etwas höher klettern kann und er hat einen Turret Bumper Sensor, der verhindern soll dass er sich unter zu niedrigen Möbeln festfährt.
Ansonsten fällt mir spontan nichts ein, der Hauptunterschied ist tatsächlich nur die Wischfunktion. Und dass es eine internationale Version mit CE gibt.
PSA: Es sei allen empfohlen die ihren Token kennen, ihren V1 Sauger jetzt noch mit der aktuellen Firmware 3194 zu rooten!
In der für den V2 aktuellen Firmware 1344 funktioniert das bereits nicht mehr.
Hier klappt bei bekanntem Token eventuell noch ein gerootetes Downgrade auf die Version vorher.
Zitat von: Markus M. am 03 Juni 2018, 15:32:27
Nicht die Zonennamen selbst, aber ihre Definitionen kannst du aneinanderhängen und erneut in zone_names packen.
Beispiel mit 2 Räumen und einer dritten Zone, die diese beiden Räume enthält:
room1:[a,b,c,d,1] room2:[e,f,g,h,1] bothrooms:[a,b,c,d,1],[e,f,g,h,1]
Schade, damit hätte ich doppelte Werten und Koordinaten, was ich eigentlich verhinden möchte. Mal schauen wie ich das hinkriege.
Trotzdem danke für die Antwort.
Zitat von: raimundl am 03 Juni 2018, 20:03:48
Ich konnte 2 APK Dateien downloaden: MiHome_5.3.4_vevs.apk und MiHome_5.3.4_vevs_stocksign-apk.
Kennst du den Unterschied?
Ich benutze die MiHome_5.3.4_vevs, den Unterschied zur 2. Version hab ich mir nicht angesehen.
Die etlichen Berechtigungen, die die app anfordert, sind wirklich ärgerlich. Aber das kennen die Android-Nutzer ja von vielen apps. Die aktuellen Android-Versionen lassen uns aber die Berechtigungen im Nachhinein wieder einsammeln. :)
Hallo,
um sehr mehr ich über den Roboter und die Möglichkeiten mit diesem Modul lese um so schneller brauch ich so einen Robi!
Problem is derzeit nur der Aufstellort.....wo habt ihr ihn stehen? Frei da? Oder unter der Küche, Couch....hab bei Youtube verrückte Sachen gesehen, mit Garage, wo das Tor auf geht und so....
Und dann fehlt mir noch der Robi.....ist hier vielleicht jemand, der auf Gen 2 umgestiegen ist und mir seinen Gen 1 verkaufen möchte?
LG
Marlen
Ich habe ein IKEA Regal einfach mit verstellbaren Möbelfüssen von eBay erhöht und parke ihn da drunter.
Aktuell gibt es die erste Version für 266 EUR bei Gearbest (China Warehouse, Code: CNMirobotDE, Versandart: Europe Railway)
https://uploads.tapatalk-cdn.com/20180604/4f5285f02a479e00b6ac64ee3770c163.png (https://uploads.tapatalk-cdn.com/20180604/4f5285f02a479e00b6ac64ee3770c163.png)
Zitat von: Markus M. am 04 Juni 2018, 12:37:12
Ich habe ein IKEA Regal einfach mit verstellbaren Möbelfüssen von eBay erhöht und parke ihn da drunter.
Aktuell gibt es die erste Version für 266 EUR bei Gearbest (China Warehouse, Code: CNMirobotDE, Versandart: Europe Railway)
https://uploads.tapatalk-cdn.com/20180604/4f5285f02a479e00b6ac64ee3770c163.png (https://uploads.tapatalk-cdn.com/20180604/4f5285f02a479e00b6ac64ee3770c163.png)
Für 266€ find ich nicht, kannst Mal den Link posten?
Ja, so wie unter deinem Regal hätte ich das auch gerne, aber dazu müsste ich meine gesamte Wohnzimmerwand hoch setzen, oder die Couch....aber das schaut dann auch wieder komisch aus.
Eine Klappe im Küchensockel würde mir noch einfallen....aber das müsste dann ein Schreiner machen glaub ich, dass das auch schön wird.
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Ganz "normal" auf Gearbest (Lager China) in den Warenkorb legen (aktuell 289EUR) und dann beim "Auschecken" den Gutscheincode 'CNMirobotDE' einlösen (-20EUR)...
Gruß, Joachim
Neben der Wischfunktion und höhere "Steigfähigkeit" hat die Gen 2 Version auch mehr Sensoren als die 1. Generation.
Ich bin von der 2. Generation begeistert und überlege mir noch einen weiteren Sauger zu kaufen und anfangs hatte ich auch die 1. Generation im Auge (weil für die 2.Etage benötige ich definitiv nicht die Wischfkt.) Allerdings sind einige Ersatzteile nicht komplett kombatibel; beispw. der Laserturm.
Aus diesem Grund werde ich wohl nur Gen 2 einsetzen; da wäre ich flexibler, falls ich mal ein Modell wg. Ersatzteile ausschlachten muss (nach hoffentlich langer Betriebsdauer).
Ja, das ist schon klar das der Gen 2 besser ist. Aber das ist halt leider alles eine Preisfrage!
Mal schauen, evtl. kann ich ja bei eBay einen "schießen".
LG
Marlen
In der Flole-app wird die zuletzt gescannte Karte ja mittlerweile dargestellt und man kann die goto- und Zoned Clean- Koordinaten kopieren.
Könnte man diese Dinge eventuell auch in das FHEM-Modul übertragen, damit sie dort direkt abrufbar wären?
So, doch bei Gearbest bestellt, das ist ja der Wahnsinn wie die gebrauchten bei eBay gehandelt werden.
Wenn ich jetzt noch wüsste wo ich ihn aufstelle???
Wie tief muss der Unterschlupf den sein, mit Ladestation.....doch bestimmt 40cm, da fallen ja schon viele Schränke weg. Unter dem Fernseher hab ich so ein Board, da sind unten Schubläden. Da müsste man halt was bauen mit servos oder so das die Front nach vorne klappt, das der Robi darauf hoch und runter kommt ( davon hab ich leider keine Ahnung).
Hat jemand sowas evtl. schon umgesetzt????
Noch ne Frage:
- Den Ladezustand bekommt man doch rein?
Dann könnte man ihn doch nach dem Laden irgendwo hinschicken zum parken....
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: Marlen am 05 Juni 2018, 22:18:34
Dann könnte man ihn doch nach dem Laden irgendwo hinschicken zum parken....
Am Besten zu der Ladestation ;D
ca. 43 cm in der Station mit dem Hintern an der Wand.
Gruß Otto
Zitat von: Skusi am 13 Mai 2018, 19:07:46
Also ich habe nun auch versucht auf den Europa Server umzusteigen. Leider bekomme ich dann den Sauger nicht in der App angelegt. Das Sauger Wlan ist da, aber die App findet den Robbi einfach nicht.
Bin jetzt erst mal wieder auf China Mainland umgestiegen.
Leider musste ich feststellen das sich bei der Aktion auch der Token ändert. Nach langer Recherche hab ich den dann endlich mit dieser Modifizierten App auslesen können.
https://cloud.mail.ru/public/55AA/RF3DYidFf/MiHome_5.1.30_vevs.apk
Hat es denn noch jemand geschafft mit einer Europa Server Verbindung den Robbi incl. Zone Funktion ans laufen zu bekommen. Lohnt es sich also es noch mal zu probieren. Mich nervt dieser lahme China Server auch extrem. Wäre toll wenn der Euro Server nun auch auf dem neuesten Stand ist und alle Funktionen des China Server bereitstellt.
Hallo Skusi, bist du weiter gekommen?
Ich habe mit der Firmware 3.3.9_003194 mittlerweile 2× einen Umzug erfolglos abgebrochen, immer mit der Notwendigkeit, das Token zu extrahieren.
Gruß Helmut
Gruß Helmut
Zitat von: Marlen am 05 Juni 2018, 22:18:34
Wie tief muss der Unterschlupf den sein, mit Ladestation.....doch bestimmt 40cm
- Den Ladezustand bekommt man doch rein?
Dann könnte man ihn doch nach dem Laden irgendwo hinschicken zum parken....
Nach vorne die schon erwähnten 43cm plus die Sockelleiste, wenn der Schrank erhöht steht.
Bei mir landet die vordere Kante des Saugers in der Station damit 45cm vor der Wand.
In einer Standard-Küche sollte das problemlos in den Sockel passen.
Irgendwo anders parken geht nicht, da sich der Sauger dann nicht mehr aufwecken lässt.
Mein derzeitiger Planung ist den Sauger in der untersten Schublade fahren zu lassen.
Dazu soll das so umgebaut werden, dass die Front nach unten schwenkt und sich dadurch eine kleine Rampe ergibt worüber der Sauger ein und ausfahren soll.
Stellt das ein Problem dar, wenn die Ladestation dann 5 cm über dem Boden steht?
Kann er dann die Ladestation finden?
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
:) Spannende Frage.
Ich würde mit Problemen rechnen. Aber wie immer: Versuch macht kluch.
Das würde heißen, ich muss warten bis er da is, bevor ich alles Umbau! [emoji25]
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: Marlen am 06 Juni 2018, 07:21:49
Mein derzeitiger Planung ist den Sauger in der untersten Schublade fahren zu lassen.
Dazu soll das so umgebaut werden, dass die Front nach unten schwenkt und sich dadurch eine kleine Rampe ergibt worüber der Sauger ein und ausfahren soll.
Stellt das ein Problem dar, wenn die Ladestation dann 5 cm über dem Boden steht?
Kann er dann die Ladestation finden?
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Moin,
das halte ich für eine ziemlich abenteuerliche Idee. Das stellt dann die Einfachheit der restlichen Anordnung (FHEM, Modul und Sauger) und die Suche nach dem günstigen Preis für das Gerät ziemlich in den Schatten. :o
Wenn der Sauger in einer Ecke oder irgendwo halbwegs drunter steht, sieht man ihn praktisch nicht mehr. Notfalls würde ich mir ne flache Bank (für Blume oder sonstwas) holen.
Warte erstmal bis das Teil da ist und ermittle dann die Optik, den Standort und die Schwachstellen Deiner Wohnung. Es ist ja nicht so, dass er alle Hindernisse einfach so wegsteckt.
Gruß Otto
Der Roboter würde mich ja nicht stören, ich will ihn nur schützen, wenn Kinder zu Besuch sind.....
der fährt doch rückwärts an die Ladestation? Kann jemand sagen wie viel cm davor er sich dreht? Das macht er ja dann auf der Stelle?
Hat nicht Mal jemand Lust das zu testen, ob er die Ladestation findet wenn sie 5cm erhöht steht?
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
er dreht sich etwa ein paar cm vor der Station.
Wenn Du dies bei google eingibst kannst Du zuschauen xiaomi saugroboter video
Die Kinder und der roboter haben sich bei mir bisher bestens vertragen. ;D Was soll den Kindern passieren? Oder dem Roboter?
Hi Marlen,
warte doch erstmal ab, bis du den Staubsauger hast. Bei mir steht er mit drei Kindern zwischen Couch und Wand relativ geschützt. Hatte ihn davor unter der Couch. Das war mir dann doch zu unsicher, nicht dass beim Couchspringen zuviel Druck von oben kommt, zudem hatte er schwierigkeiten die Basis zu finden. Laut Anleitung braucht er 1,5m vor der Station freie Fahrt und seitlich jeweils 0,5m. Die 1,5m halte ich ein, die seitlichen Abstände überhaupt nicht. Zur Info, ich hatte nach Erhalt auch die Basis an drei verschiedenen Stellen stehen, bis ich die von mir am Besten gefundene hatte. Also, schau doch (und probier herum), wenn du ihn in Händen hältst.
VG
Gesendet von meinem ONEPLUS A6003 mit Tapatalk
Zitat von: Otto123 am 06 Juni 2018, 09:50:01
er dreht sich etwa ein paar cm vor der Station.
Wenn Du dies bei google eingibst kannst Du zuschauen xiaomi saugroboter video
Die Kinder und der roboter haben sich bei mir bisher bestens vertragen. ;D Was soll den Kindern passieren? Oder dem Roboter?
Um den Kindern mach ich mir da Mal keine Sorgen, aber ich will halt nicht das sie auf ihn herum hüpfen oder einhalten.
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: Florie am 06 Juni 2018, 09:51:38
Laut Anleitung braucht er 1,5m vor der Station freie Fahrt und seitlich jeweils 0,5m. Die 1,5m halte ich ein, die seitlichen Abstände überhaupt nicht.
Bei mir steht er in der Station links seitig mit lediglich 1,5 cm Abstand. Ohne Probleme ...
Zitat von: Marlen am 06 Juni 2018, 07:21:49Stellt das ein Problem dar, wenn die Ladestation dann 5 cm über dem Boden steht? Kann er dann die Ladestation finden?
Nein. Durch die optische Erkennung der Station sieht er sie erst gar nicht und eine 5cm Rampe kommt er auch nicht hoch, wenn sie nicht sehr lang ist.
Deine hochkomplexe Idee ist aber immerhin mindestens so cool, wie sie in der Praxis bekloppt ist ;D
Zitat von: Florie am 06 Juni 2018, 09:51:38
Laut Anleitung braucht er 1,5m vor der Station freie Fahrt und seitlich jeweils 0,5m.
Nach vorne braucht er ungefähr 50cm freie Fläche vor dem Schrank. Meine Parkbucht ist ca. 60cm breit, 50cm sollten aber auch noch gehen.
Noch weniger Breite (z.B. zwischen den Beinen eines 60cm Küchenmoduls) könnte dann schon kritisch werden. Oder laut Otto auch nicht...
Zitat von: Markus M. am 06 Juni 2018, 10:20:28
Nein. Durch die optische Erkennung der Station sieht er sie erst gar nicht und eine 5cm Rampe kommt er auch nicht hoch, wenn sie nicht sehr lang ist.
Deine hochkomplexe Idee ist aber immerhin mindestens so cool, wie sie in der Praxis bekloppt ist ;D
Nach vorne braucht er ungefähr 50cm freie Fläche vor dem Schrank. Meine Parkbucht ist ca. 60cm breit, 50cm sollten aber auch noch gehen.
Noch weniger Breite (z.B. zwischen den Beinen eines 60cm Küchenmoduls) könnte dann schon kritisch werden. Oder laut Otto auch nicht...
Bekloppt....... dankeschön!!!!
Dann muss ich wohl die bodenplatte aus den Schrank sägen und eine schmale leise an der Schubladenfront hängen. [emoji58]
Den kleinen Schnitt vom durchtrennen der Bodenplatte würde man zwar sehen, aber besser als im Küchensockel.
LG
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: Markus M. am 06 Juni 2018, 10:20:28
Noch weniger Breite (z.B. zwischen den Beinen eines 60cm Küchenmoduls) könnte dann schon kritisch werden. Oder laut Otto auch nicht...
Das habe ich nicht gesagt! Meine Bucht ist ca. 1 meter breit, aber die Ladestation steht in der linken Hälfte eben so, das der Sauger am Ende mit 15 mm Abstand zur linken Wand steht. Und er kommt quasi nach getaner Arbeit immer von Vorn oder Rechts.
So wie er die Station anfährt, denke ich auch, dass es mit weniger als 60 cm knapp werden kann! Hab ich nicht probiert.
Meine Aussage ist eher: Richtig knapp in eine Ecke ist kein Problem.
@marlen Vorm Küche zersägen unbedingt erstmal Ruhe bewahren ;D ::) :o
Wenn der Sockel vom Schrank hoch genug ist, geht das.
Wahrscheinlich kannst du das vordere Brett komplett rausnehmen ohne dass die Statik zu sehr leidet.
Es kann aber sein, dass du wegen irgendwelcher Stützbretter nicht die volle Tiefe erreichst.
Über das bin ich letztendlich gestolpert, als ich mir einen automatischen Einzug für die Waage bauen wollte.
Allgemein ist es natürlich sinnvoller, eventuelle Sägearbeiten an den IKEA Möbeln durchzuführen statt an der massgeschreinerten Vollholz-Küche ;)
Hab noch paar Fragen:
- bekommt FHEM mit ob er Sauger in den jeden Raum war? Falls z.b. eine Tür zu war?
- kann mann Zonen auch über mehrere Räume legen?
Gesendet von meinem Aquaris U Plus mit Tapatalk
zu 1. im Prinzip ja -> last_clean_area
Wenn die Fläche kleiner war als üblich.
Der Aufstellungsort bestimmt auch die Ausrichtung der Karte und in welche Richtung (nachdem er den Rand der Fläche gegen den Uhrzeigersinn abgefahren ist) er seine Meander plant. Also macht es einen Unterschied ob er z.B. an einer Nord/Süd-Wand steht oder an einer Ost/West-Wand oder ob die Docking Station im 45-Grad Winkel zur Wand aufgestellt wird.
Rampen hochfahren kann er nur bis zu einem bestimmten Winkel, sonst meldet sich ein Sensor und er bleibt stehen. Am Berberteppich mit Höhe > 2cm und härterer Kante ist er bei uns gelegentlich gescheitert. Im Zonenmodus nimmt er Höhenunterschiede auch nicht so sportlich wie im Vollautomatikmodus "clean". Im Zonenmodus bleibt er an Teppicherhöhungen manchmal dumm hängen ohne seine Strategie zu ändern.
Das ist ja das! Wenn ich ständig den Standort der LS ändere, muss ich die Zonen neu einrichten!
Ich hatte schon Mal einen Samsung Roboter der ist nie am Teppich hängen geblieben..... ich wäre sehr enttäuscht wer Xiaomi das machen würde.
Gesendet von meinem Aquaris U Plus mit Tapatalk
Deswegen sollst du den Standort ja nicht ändern.
Du solltest auch darauf achten dass es drumherum keine schrägen Wandflächen gibt, da das die Chance erhöht dass deine Karte zwischendurch gedreht wird.
Mit Teppichen kommt er tatsächlich leider überhaupt nicht gut klar, da er dafür nicht entwickelt wurde.
...aber ansonsten kann ich den Sauger nur loben. Was der so wegsaugt auf scheinbar sauberem Boden - ich wundere mich jedes mal. :)
Für die Unzulänglichkeiten gibt es ja noch die Hoffnung auf updates. Und nicht zu vergessen dieses 1A FHEM Modul. 8)
Hi,
ich habe seit ca einem Monat das Problem, dass der move-Befehl nicht mehr richtig funktioniert.
Ich versetze ihn in den Remote-Control Modus und setze dann nur ein "move 0 50 5000" ab. Das mache ich schon seit langem so, um ihn aus seinem Versteck zu holen.
Entweder bewegt er sich nach der Ansage (Remote-Control activated) kein Stück oder er ruckelt immer wieder 2cm nach vorne und zurück.
Hat jemand ähnliche Problem?
Gruß
Andreas
Die V2 kommt besser mit Teppichen zurecht: https://www.youtube.com/watch?v=3yjiBvjCsV8
Stuhlbeine sind auch kein Problem: https://youtu.be/vOTzP1VI1xs?t=15s
Hallo Andreas,
funktioniert bei mir nach wie vor. Ich mache 10 sekunden Pause zwischen den Befehlen!
Gruß Otto
Zitat von: Otto123 am 07 Juni 2018, 10:04:35
Hallo Andreas,
funktioniert bei mir nach wie vor. Ich mache 10 sekunden Pause zwischen den Befehlen!
Gruß Otto
Hi Otto,
danke für die Rückmeldung. Die 10 Sekunden mache ich auch. Den Code-Schnipsel zum Rausfahren hatte ich mir auch ursprünglich von dir geklaut ;D
Dann muss ich wohl noch ein bisschen rumprobieren. Verschiedene Geschwindigkeiten und Dauer haben leider keine Änderung gebracht.
Gruß Andreas
Logge mal alle Events mit, bei mir macht er nur Blödsinn wenn die Verbindung zur Heimat abreisst.
Gruß Otto
Zitat von: duke am 07 Juni 2018, 09:53:11
Hi,
ich habe seit ca einem Monat das Problem, dass der move-Befehl nicht mehr richtig funktioniert.
Ich versetze ihn in den Remote-Control Modus und setze dann nur ein "move 0 50 5000" ab. Das mache ich schon seit langem so, um ihn aus seinem Versteck zu holen.
Entweder bewegt er sich nach der Ansage (Remote-Control activated) kein Stück oder er ruckelt immer wieder 2cm nach vorne und zurück.
Hat jemand ähnliche Problem?
Gruß
Andreas
Ich verwende es nicht mehr oft aber das hatte ich ab und an bei einem Sauger auch.
Ist der einzige der auf Parket unterwegs ist (unterschiedlich hell/dunkel nicht viel/schlimm aber...) nachdem ich die Sensorik sauber gemacht habe hat es eigentlich wieder gut funktioniert...
...manchmal auch wenn er schon etwas gezuckelt war und dann noch mal der Befehl abgesetzt wurde...
(evtl. war er da dann schon über eine "problematische Stelle" [hell/dunkel oder was auch immer] drüber gezuckelt)
Gruß, Joachim
Zitat von: MadMax-FHEM am 07 Juni 2018, 17:48:24
Ich verwende es nicht mehr oft aber das hatte ich ab und an bei einem Sauger auch.
Ist der einzige der auf Parket unterwegs ist (unterschiedlich hell/dunkel nicht viel/schlimm aber...) nachdem ich die Sensorik sauber gemacht habe hat es eigentlich wieder gut funktioniert...
...manchmal auch wenn er schon etwas gezuckelt war und dann noch mal der Befehl abgesetzt wurde...
(evtl. war er da dann schon über eine "problematische Stelle" [hell/dunkel oder was auch immer] drüber gezuckelt)
Gruß, Joachim
Hallo Joachim,
die Reinigung der Sensorik hat es behoben. Vielen Dank! Da wär ich nicht drauf gekommen, da er im normalen Reinigungsmodus kein merkwürdiges Verhalten beim Ausfahren aus der Station zeigt....
Gruß
Andreas
Zitat von: duke am 08 Juni 2018, 08:35:12
Hallo Joachim,
die Reinigung der Sensorik hat es behoben. Vielen Dank! Da wär ich nicht drauf gekommen, da er im normalen Reinigungsmodus kein merkwürdiges Verhalten beim Ausfahren aus der Station zeigt....
Gruß
Andreas
Gerne!
Ja hat er bei mir auch nicht ;)
Reinigen ging immer wunderbar...
...nur aus der Station raus nicht immer (ohne Zuckeln)...
Aber auch nur bei diesem Boden/dieser Position.
In der Küche mit Fliesen nie ein Thema...
Gruß, Joachim
Hi, nochmal.eine Frage, da ich mir ganz schön Gedanken mach, bis das Teil da ist.
Wenn ich wie weiter oben schon erwähnt eine Garage in einen Schrank baue und das Tor mit einen Linearantrieb öffne, welcher aktiviert wird, mittels Endschalter wenn der Sauger von der Station fährt, dauert es aber ca. 7 - 10 Sek. bis das Tor auf ist.
Was meint ihr wie sich der Robi verhält, wenn er nach 10-15cm gleich auf eine Wand stößt?
Oder funktioniert ein goto 5 cm vor der Station??
Alternativ muss ich das Tor halt an FHEM anbinden.
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: MadMax-FHEM am 08 Juni 2018, 11:08:52
Gerne!
Ja hat er bei mir auch nicht ;)
Reinigen ging immer wunderbar...
...nur aus der Station raus nicht immer (ohne Zuckeln)...
Aber auch nur bei diesem Boden/dieser Position.
In der Küche mit Fliesen nie ein Thema...
Gruß, Joachim
Ich habe sogar auch überall dunkles Parkett, aber da ich nen Teppich mit sehr schwarzem Stoff habe, sind bei mir alle Absturzsensoren abgeklebt. Daran konnte es also nicht liegen.
@ Marlen:
Wenn Du den Öffnungsmechanismus mittels FHEM steuern kannst, hast Du die Möglichkeit, eine gewisse Zeitspanne vorher das "Garagentor" zu öffnen.
Ansonsten sehe ich schwarz.
Also meinst es ist nicht möglich den Sauger 5cm vor der LS zu fahren, dort 10 Sek. Stehen zu lassen und dann ein zone_clean?
Wollte es halt unnötig kompliziert machen!
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Schwer zu beantworten, ich habe eine solche "Garage" nicht, um's auszuprobieren.
Unser Wohnzimmer ist groß genug, um ihm eine nicht gut einsehbare Stelle zu spendieren. :)
Mir fällt gerade noch ein: Otto hatte - glaub' ich - mal ein ähnliches Szenario mit zwischendurch geschlossener Tür. Da ist der Sauger mittels "Goto" bis kurz vor die Türe gefahren und hat dabei scannen können, ob sie auf ist und der Raum somit befahrbar.
Ja, aber du könntest doch auch ohne Garage einfach mal probieren ob er ein goto 5cm vor der LS akzeptiert, oder was er da macht?
Gesendet von meinem Aquaris U Plus mit Tapatalk
Ein goto macht er natürlich. Wird nur spannend nach einem clean, wenn sich die Karte gedreht hat. Das goto wird recht rigoros ausgeführt...
Naja, das mein ich doch, hätte ja auch sein können, das er weng 5 cm nicht aufwacht! [emoji12]
Gesendet von meinem Aquaris U Plus mit Tapatalk
Ja, aber das, Problem, dass sich die Karte evtl. dreht, hat man ja immer, oder?
Hat ja jetzt nichts mit der Garage zu tun!
Gesendet von meinem Aquaris U Plus mit Tapatalk
Ola!
Ich habe ein kleines Problem mit meinem Luftreiniger... die neueste Version des Moduls ist über Update drin. Aber er meckert über STATE Crypt::Cipher::AES or Crypt::Rijndael_PP is required!
Internals:
DEF 10.11.xx.xxx 982213ca62xxx
NAME Luftreiniger
NR 1212
STATE Crypt::Cipher::AES or Crypt::Rijndael_PP is required!
TYPE XiaomiDevice
helper:
crypt AES
delay 0
ip 10.11.33.38
packetid 1
port 54321
token 982213ca628d6d2xxxx
Attributes:
disable 1
stateFormat state
subType VacuumCleaner
Allerdings sollte alles auf dem System sein, was er braucht:
b:~$ sudo apt-get install libssl-dev
[sudo] Passwort für bb:
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
»libssl-dev« ist bereits die neuste Version (1.0.2g-1ubuntu4.12).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 2 nicht aktualisiert.
b:~$ sudo cpan install Crypt::CBC
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/home/bb/.cpan/Metadata'
Database was generated on Sun, 10 Jun 2018 16:41:03 GMT
Crypt::CBC is up to date (2.33).
b:~$ sudo cpan install Crypt::Cipher::AES
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/home/bb/.cpan/Metadata'
Database was generated on Sun, 10 Jun 2018 16:41:03 GMT
Crypt::Cipher::AES is up to date (0.061).
b:~$ pt-get install libjson-perl
Der Befehl »pt-get« wurde nicht gefunden, meinten Sie vielleicht:
Befehl »apt-get« aus dem Paket »apt« (main)
pt-get: Befehl nicht gefunden.
b:~$ sudo apt-get install libjson-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
»libjson-perl« ist bereits die neuste Version (2.90-1).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 2 nicht aktualisiert.
Hat jemand eine Idee, was ich übersehen habe?
Viele Grüße
doc
Zitat von: docb am 11 Juni 2018, 08:46:16
Hat jemand eine Idee, was ich übersehen habe?
Viele Grüße
doc
Moin, dir fehlt bestimmt libcrypt-rijndael-perl
Schau auch mal auf der ersten Seite, da gibts noch mehr benötigte Pakete:
Benötigte Perl Module:
- JSON libjson-perl
- Digest::MD5 libdigest-md5-perl
- Crypt::CBC libcrypt-cbc-perl
- Crypt::Cipher::AES oder Crypt::Rijndael_PP CPAN
- Crypt::ECB libcrypt-ecb-perl (bei verschlüsseltem Token)
Hallo zusammen,
schon einer die 3.3.9-003170 installiert?
Gruß Michael
Zitat von: ahlermi am 11 Juni 2018, 17:00:07
Hallo zusammen,
schon einer die 3.3.9-003170 installiert?
Gruß Michael
Die ist doch alt?! Firmware 3.3.9_003194 ist aktuell. Die läuft bei mir seit einiger Zeit mit root.
Viele Grüße
Mark
Hallo,
danke für den Tip Mark, aber das war schon drauf. Lediglich EBC hat gefehlt, aber das hillft nichts. Der State bleibt (auch nach Reboots) bei Crypt::Cipher::AES or Crypt::Rijndael_PP is required!
b:~$ sudo apt-get install libdigest-md5-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Hinweis: »libperl5.22« wird an Stelle von »libdigest-md5-perl« gewählt.
»libperl5.22« ist bereits die neuste Version (5.22.1-9ubuntu0.3).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 8 nicht aktualisiert.
b:~$ sudo apt-get install libcrypt-cbc-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
»libcrypt-cbc-perl« ist bereits die neuste Version (2.33-1).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 8 nicht aktualisiert.
b:~$ sudo apt-get install libjson-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
»libjson-perl« ist bereits die neuste Version (2.90-1).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 8 nicht aktualisiert.
b:~$ sudo apt-get install libcrypt-ecb-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden Installiert
libcrypt-blowfish-perl
Vorgeschlagene Pakete:
libcrypt-cast5-perl libcrypt-des-ede3-perl libcrypt-des-perl
libcrypt-eksblowfish-perl libcrypt-twofish-perl
Die folgenden NEUEN Pakete werden installiert:
libcrypt-blowfish-perl libcrypt-ecb-perl
0 aktualisiert, 2 neu installiert, 0 zu entfernen und 8 nicht aktualisiert.
Es müssen 31,9 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 119 kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] J
Holen:1 http://de.archive.ubuntu.com/ubuntu xenial/universe amd64 libcrypt-blowf ish-perl amd64 2.14-1build2 [17,2 kB]
Holen:2 http://de.archive.ubuntu.com/ubuntu xenial/universe amd64 libcrypt-ecb-p erl all 1.45-1 [14,7 kB]
Es wurden 31,9 kB in 0 s geholt (198 kB/s).
Vormals nicht ausgewähltes Paket libcrypt-blowfish-perl wird gewählt.
(Lese Datenbank ... 122795 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../libcrypt-blowfish-perl_2.14-1build2_amd64.deb ...
Entpacken von libcrypt-blowfish-perl (2.14-1build2) ...
Vormals nicht ausgewähltes Paket libcrypt-ecb-perl wird gewählt.
Vorbereitung zum Entpacken von .../libcrypt-ecb-perl_1.45-1_all.deb ...
Entpacken von libcrypt-ecb-perl (1.45-1) ...
Trigger für man-db (2.7.5-1) werden verarbeitet ...
libcrypt-blowfish-perl (2.14-1build2) wird eingerichtet ...
libcrypt-ecb-perl (1.45-1) wird eingerichtet ...
b:~$ sudo apt-get install libcrypt-aes-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
E: Paket libcrypt-aes-perl kann nicht gefunden werden.
b:~$ sudo apt-get install libcrypt-rijndael-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
»libcrypt-rijndael-perl« ist bereits die neuste Version (1.13-1build1).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 8 nicht aktualisiert.
Bin über Ideen dankbar!
Viele Grüße
doc
Hey docb,
installiere mal die Pakete Crypt::Cipher::AES und Crypt::Rijndael_PP einmal mit "sudo" und einmal ohne.
VG, Thomas
Hi,
beide Module sind mit CPAN zu installieren. Die sind so nicht in irgendwelchen ähnlich lautenden debian Paketen enthalten
Siehe auch den initialen Post in diesem Thread.
Crypt::Cipher::AES Crypt::Rijndael_PP
Gruß Otto
Hallo,
wie steuert ihr eueren Saugi?
Ich hab mir gedacht einen Plan zu erstellen z.B. in Heating_Control.
Und dann soll der Saugi immer wenn wir beide weg sind das geplante abarbeiten!
Wie macht ihr das so?
Wie macht ihr das mit dem Staubbehälter entleeren? Einen Sensor für Behälter voll gibt es ja nicht, bzw. kommt in FHEM nicht an!?
Daher hab ich mir gedacht ich mach das pauschal nach m², der Saugi soll mir dann eine Nachricht auf mein Handy schicken, dass ich dann wenn es passt die Nachricht bestätige und er zum Abfalleimer fährt. Nach einsetzen des Behälters (diese Meldung gibt es hab ich iwo gelesen) soll er wieder zurück in die LS.
LG
Marlen
Hallo,
einfach einmal täglich säubern, nicht perfekt aber tut :) Ohne Plan...
defmod di_Staubi1 DOIF ([AlleAnwesend:"absent"] and ([?Staubi1] eq "Docked" or [?Staubi1] eq "connected") and [?$SELF:saugen] eq "active") \
(set Staubi1 cleaning_mode turbo,set Staubi1 start) \
DOELSEIF\
([Staubi1:"Charging"] and [?$SELF:saugen] eq "active")(setreading $SELF saugen done)\
DOELSEIF\
([AlleAnwesend:"present"] and ([?Staubi1] eq "Docked" or [?Staubi1] eq "connected") and [?$SELF:saugen] eq "done")\
(set Staubi1 fan_power 1)(set Staubi1 remotecontrol start)(set Staubi1 move 0 50 5000)(set Staubi1 remotecontrol stop)\
DOELSEIF ([Staubi1:"Sleeping"])(set Staubi1 charge)(set Staubi1 cleaning_mode turbo,setreading $SELF saugen dustbin)\
DOELSEIF ([04:00]) (set Staubi1 charge,setreading $SELF saugen active)
attr di_Staubi1 room Sauger
attr di_Staubi1 wait 0:0:0,10,10,10:0,10:0
Funktion: maximal einmal am Tag saugen wenn die Leute raus sind
- wenn alle weg dann saugen
- wenn einer wieder da dann "zeigen" wenn heute gesaugt wurde (hier kann der Behälter geleert werden)
- nach ca. 15 min (Sauger ist eingepennt) zurück ins Versteck egal ob Behälter geleert oder nicht
- Nachts um 4 Uhr reset des Vorganges.
Nachteil: Wenn immer alle da: wird nicht gesaugt - aber auch nicht gestört.
Gruß Otto
Und täglich Behälter leeren?
Aber cool, danke für deinen Code!
Ich sehe schon h
Muss mich doch mal mit doif beschäftigen!
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: Marlen am 13 Juni 2018, 07:21:28
Und täglich Behälter leeren?
Du wirst Dich wundern :) :D ;D
Aber der Sauger bietet sich ja nur an um den Behälter zu leeren, wenn man ihn ignoriert fährt er einfach wieder zurück und gut ist.
Komisch, ich habe den Install auch mal ohne sudo versucht (je mit cpan) - aber die Dinger schreinen drauf zu sein...
b:~$ cpan Crypt::Cipher::AES
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/home/b/.cpan/Metadata'
Database was generated on Wed, 13 Jun 2018 06:41:02 GMT
Crypt::Cipher::AES is up to date (0.061).
b:~$ sudo cpan Crypt::Rijndael_PP
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/home/b/.cpan/Metadata'
Database was generated on Wed, 13 Jun 2018 06:41:02 GMT
Crypt::Rijndael_PP is up to date (0.05).
b:~$ cpan Crypt::Rijndael_PP
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/home/b/.cpan/Metadata'
Database was generated on Wed, 13 Jun 2018 06:41:02 GMT
Crypt::Rijndael_PP is up to date (0.05).
Sowas... irgendwie klappt das nicht.
Notify auf länger leere Wohnung und im Urlaub ein at um 14 Uhr, danach wird jeweils noch geprüft ob die letzte erfolgreiche Reinigung 2/3 Tage her ist.
Ausgeleert wird nur manuell.
Das klappt so ganz gut, die Fehlermeldung dass der Behälter voll ist (gibt's als Error) kam bisher nur ein mal.
Ich habe das aktuell so umgesetzt, auch ich leere den Behälter Täglich manuell.
defmod HA.DOIF.Geraet.SaugRobot.AutonomeReinigung DOIF ([Bewohner] eq "absent")\
(\
set HA.Geraet.SaugRobot start, \
msgtelegram "HA.Geraet.SaugRobot\nStarte autonome Bodenreinigung,\nalle Bewohner außer Haus.",\
(SpeakWohnzimmer 20 |gong| Starte autonome Bodenreinigung, alle Bewohner außer Haus!)\
) \
DOELSEIF ([Bewohner] eq "home" and [HA.Geraet.SaugRobot] eq "Cleaning")\
(\
set HA.Geraet.SaugRobot pause,\
msgtelegram "HA.Geraet.SaugRobot\nPausiere autonome Bodenreinigung,\nBewohner im Haus.",\
(SpeakWohnzimmer 20 |gong| Pausiere autonome Bodenreinigung, Bewohner im Haus!)\
) \
DOELSEIF ([22:00] and [?HA.Geraet.SaugRobot] eq "Waiting")\
(\
set HA.Geraet.SaugRobot charge,\
msgtelegram "HA.Geraet.SaugRobot\n Autonome Bodenreinigung ist immer noch Pausiere,\nfahre zurück zur Dock." \
)\
DOELSEIF ([22:01])\
(\
##DoIf zurücksetzten\
)
Gruß
Dennis
Hallo,
ZitatDas klappt so ganz gut, die Fehlermeldung dass der Behälter voll ist (gibt's als Error) kam bisher nur ein mal.
Also gibt es doch einen Error, wenn der Behälter voll ist!? Bleibt er dann stehen??? Oder wie verhält sich der Sauger?
ZitatDOELSEIF ([Bewohner] eq "home" and [HA.Geraet.SaugRobot] eq "Cleaning")\
(\
set HA.Geraet.SaugRobot pause,\
Ja, da hab ich auch noch keine Idee, wie ich damit umgehe, wenn während des saugens jemand heim kommt.
Pause geht bei mir nicht, da ist meist mein Sohn und mind. ein Besucher Kind dabei....da kann der Sauger auf keinen Fall irgendwo herum stehen!
Aber was gibt es für andere Lösung? Wenn man Zoneclean abbricht, ihn in die Dock schickt und dann neu startet, macht der das wahrscheinlich komplett von vorne...dazu müsste man ihn einen leeren Akku vorgauckeln.....
Zitatauch ich leere den Behälter Täglich manuell
Ist der Behälter so klein? Ich dachte das ich das über die gereinigten m² machen kann....
LG
Marlen
Zitat von: Marlen am 13 Juni 2018, 13:05:19
Ist der Behälter so klein? Ich dachte das ich das über die gereinigten m² machen kann....
Wenn schon über dreck /m² ;D
Der hat Schätzungsweise 1 Liter Inhalt?
Zitat von: Marlen am 13 Juni 2018, 13:05:19
Ist der Behälter so klein? Ich dachte das ich das über die gereinigten m² machen kann....
Bei mir sind es pro Saugvorgang so ca. 65 m², zwei Saugvorgang schaffe ich so mit einen Behälter (es leben 3 Personen und 2 Katzen im Haushalt)
Gruß
Dennis
Zitat von: Marlen am 13 Juni 2018, 13:05:19
Also gibt es doch einen Error, wenn der Behälter voll ist!? Bleibt er dann stehen???
Soweit ich mich erinnere bleibt er stehen. Das ist ein Fehlercode wenn nichts mehr geht, keine einfache Meldung.
Erkannt wird das wahrscheinlich über das Gebläse, es soweit kommen zu lassen ist also vermutlich nicht gut für die Hardware.
ZitatIst der Behälter so klein? Ich dachte das ich das über die gereinigten m² machen kann....
Wenn du die aufsummierst, sollte das klappen.
Es sind aber eigentlich eher
Quadratmeter * Zeit seit letzter Leerung * X (oder so ähnlich), da nach einer Woche ohne Saugen mehr Staub anfällt als nach einem Tag.
Hm, kann es sein, dass da irgendwas mit dem Paket hier
sudo apt-get install libcrypt-rijndael-perl
(brauche ich für mein HM-LGW) interferiert?
Zitat von: docb am 13 Juni 2018, 09:28:43
Komisch, ich habe den Install auch mal ohne sudo versucht (je mit cpan) - aber die Dinger schreinen drauf zu sein...
b:~$ cpan Crypt::Cipher::AES
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/home/b/.cpan/Metadata'
Database was generated on Wed, 13 Jun 2018 06:41:02 GMT
Crypt::Cipher::AES is up to date (0.061).
b:~$ sudo cpan Crypt::Rijndael_PP
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/home/b/.cpan/Metadata'
Database was generated on Wed, 13 Jun 2018 06:41:02 GMT
Crypt::Rijndael_PP is up to date (0.05).
b:~$ cpan Crypt::Rijndael_PP
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/home/b/.cpan/Metadata'
Database was generated on Wed, 13 Jun 2018 06:41:02 GMT
Crypt::Rijndael_PP is up to date (0.05).
Sowas... irgendwie klappt das nicht.
OH MEIN GOTT - Problem gelöst - falls nochmal jemand so auf dem Schlauch steht - nach der Installation der Pakete einfach mal das Device wieder enablen (attr disable 0) - dann wird es nämlich wieder aktiv, prüft auf die Pakete und erkennt, das sie da sind ;)
Hey, mein Robi ist heute schon gekommen!
Jetzt komm ich aber schon da nicht weiter, beim Token auslesen!!
Wie erstell ich denn ein BackUp von der MI Home App????
Ich finde in der App keine Möglichkeit!
LG
Marlen
Zitat von: Marlen am 13 Juni 2018, 16:42:50
Hey, mein Robi ist heute schon gekommen!
Jetzt komm ich aber schon da nicht weiter, beim Token auslesen!!
Wie erstell ich denn ein BackUp von der MI Home App????
Ich finde in der App keine Möglichkeit!
LG
Marlen
Auch wenn ich neu hier im Forum bin, freue ich mich auch mal kluge Ratschläge geben zu können. :P
Im Großen und Ganzen hilft, wie ich selbst schon erfahren habe, erstmal gugeln...
Das führt schnell zu einem Ergebnis wie diesem hier (https://github.com/ioBroker/ioBroker.mihome-vacuum#iobroker-mihome-vacuum-adapter).
Hat bei meinem Roborock funktioniert.
Zitat von: Marlen am 13 Juni 2018, 16:42:50
Hey, mein Robi ist heute schon gekommen!
Jetzt komm ich aber schon da nicht weiter, beim Token auslesen!!
Wie erstell ich denn ein BackUp von der MI Home App????
Ich finde in der App keine Möglichkeit!
LG
Marlen
Hallo,
falls du ein Android gerät hast gibt es eine Alternative Xiaomi App die den Token in den Einstellungen anzeigt
Zitat von: pumabaer am 13 Juni 2018, 19:27:04
Hallo,
falls du ein Android gerät hast gibt es eine Alternative Xiaomi App die den Token in den Einstellungen anzeigt
Falls du "FloleVac" meinst, funktioniert nicht mehr.
Ne, die ist quasi die original Xiaomi App nur ein bisschen modifiziert
Ich finde leider nicht mehr den link wo es die gab
Zitat von: lukeman11 am 13 Juni 2018, 19:24:26
Das führt schnell zu einem Ergebnis wie diesem hier (https://github.com/ioBroker/ioBroker.mihome-vacuum#iobroker-mihome-vacuum-adapter).
ist der link hier
https://github.com/ioBroker/ioBroker.mihome-vacuum#easy-token-discovery-on-android
Zitat von: pumabaer am 13 Juni 2018, 19:29:41
Ne, die ist quasi die original Xiaomi App nur ein bisschen modifiziert
Ich finde leider nicht mehr den link wo es die gab
Achso, dann könnte das evtl die verlinkte App aus meinem Link oben sein. Bin leider auf der Arbeit, deshalb sind die Links gesperrt, sodass ich es nicht nachprüfen kann.
Hallo,
ich habe Android.
Das Mi-Tool macht das Backup und dann bringt es diese Meldung
ZitatUnhandled exception has occurrend in your application
Ich komm mit dem Handy auch bis zur miio2.db, aber kann sie nicht lesen und wenn dann ist alles auf chinesich!
Grrr.....
Könnt ihr mir weiter helfen?
LG
Malren
Zitat von: Marlen am 13 Juni 2018, 20:02:46
Hallo,
ich habe Android.
Das Mi-Tool macht das Backup und dann bringt es diese Meldung
Ich komm mit dem Handy auch bis zur miio2.db, aber kann sie nicht lesen und wenn dann ist alles auf chinesich!
Grrr.....
Könnt ihr mir weiter helfen?
LG
Malren
Hast du die MiHome App in einer Version zwischen 4.xx und 5.029 installiert?
Ja, hab 4.23 oder so, wie weiter oben beschrieben
Zitat von: Marlen am 13 Juni 2018, 20:54:51
Ja, hab 4.23 oder so, wie weiter oben beschrieben
Hmm. Wenn der Sauger komplett eingerichtet ist, kann ich dir nicht weiterhelfen. Das ist vermutlich eher was für die Profis hier....Ich könnte nur weiter mutmaßen.
Zitat von: Marlen am 12 Juni 2018, 22:45:02
Hallo,
wie steuert ihr eueren Saugi?
Ich mache es aktuell so:
([10:00|135] and ([?Bewohner] eq "abwesend"))
(set Staubsauger start,set TeleBot message Herr Nilsson macht sauber)
DOELSEIF
([15:00|135] and [?Bewohner] eq "abwesend" and ($cmd eq "1" or $cmd eq "3"))
(set Staubsauger start,set TeleBot message Herr Nilsson macht sauber)
DOELSEIF
([?Staubsauger] eq "Cleaning" and [?Bewohner] eq "zuhause" and ($cmd eq "1" or $cmd eq "2"))
(set Staubsauger charge)
- Montag, Mittwoch und Freitag um 10Uhr saugen, wenn keiner zu Hause ist, sonst nochmal um 15Uhr probieren.
- Wenn während der Reinigung jemand nach Hause kommt, Abbruch und zurück zur Station.
Nachteil:
- er fängt wieder von vorne an zu saugen, wenn der Saugvorgang abgebrochen wurde
- wenn man den Code ändert und weiter DOELSIFs hinzufügt, passen die Bedingungen mit den Cmd-nummern nicht mehr unbedingt, deshalb überlege ich, ob ich das ganze auf Ottos DOIF (https://forum.fhem.de/index.php/topic,73052.msg811003.html#msg811003) anpasse.
Des Weiteren locke ich ihn noch händisch mit "attr Staubsauger point_names Dustbin:[25000,27000]" und "set goto Dustbin" unter dem Sofa hervor, da mein eigentlicher Plan ist ihn nicht nur hervorzuholen, sondern auch bis zum Mülleimer in der Küche fahren zu lassen. Da weiß ich aber noch nicht, wie ich an die Koordinaten komme :/
Nur schnell, hab den Token jetzt! ;D
Danke! :-* :-* :-*
Zitat von: Marlen am 13 Juni 2018, 22:30:05
Nur schnell, hab den Token jetzt! ;D
Danke! :-* :-* :-*
wie hast du es denn geschafft?
Es ging dann plötzlich mit mitool. Aber aus der Datei miio2.db kann man sie ja auch einfach lesen :D
Wie kann man denn aus der Flole - App die Zone Koordinaten auslesen?
LG
Marlen
Einfach die Zone setzten und dann länger auf "Reinigen" drücken. Funktioniert auch mit der Goto Funktion.
Die Koordinaten werden dann in die Zwischenablage kopiert.
Hi,
ZitatEinfach die Zone setzten und dann länger auf "Reinigen" drücken
Muss ich mal versuchen!
Noch mal zur Steuerung per FHEM:
Vielleicht solle man besser die Anwesenheitszeiten nehmen für eine regelmäßige Reinigung, dann müsste man aber das irgendwie festhalten wenn ich den Robi manuell die Küche saugen lasse, nicht das er am nächsten Tag die wieder saugt weil die eingestellte Abwesenheitszeit erreicht ist!
Mal generell, wie könnte man denn die Zeit ermitteln wie lange eine Dummy auf Abwesend steht?
LG
Marlen
Das Residents Modul zeigt so was an, wann man gegangen ist, wie lange man weg ist und seit wann man wieder da ist:
http://fhem.de/commandref_DE.html#RESIDENTS
Puhhh..... da müsste ich dann die Bewohner als Roommate anlegen.....
Da gibt es aber nur die State
Zitat
◾ home - Mitbewohner ist zu Hause und wach
◾ gotosleep - Mitbewohner ist auf dem Weg ins Bett
◾ asleep - Mitbewohner schläft
◾ awoken - Mitbewohner ist gerade aufgewacht
◾ absent - Mitbewohner ist momentan nicht zu Hause, wird aber bald zurück sein
◾ gone - Mitbewohner ist für längere Zeit verreist
Ich hab da halt kommt, geht, da, schläft ..... kann man das irgendwie anpassen?
LG
Marlen
Zitat von: Marlen am 14 Juni 2018, 12:37:14
Puhhh..... da müsste ich dann die Bewohner als Roommate anlegen.....
Da gibt es aber nur die State
Ich hab da halt kommt, geht, da, schläft ..... kann man das irgendwie anpassen?
LG
Marlen
wie lange jemand weg ist, ist dann nicht als state zu sehen sondern in den readings.
@marlen Ich hoffte eher auf Bilder von Deiner Garage mit Rampe - jetzt hältst Du Dich mit solchen Nebenplätzen vom Hauptthema ab. ;D
Garage, jaja......
Ihr habt ja hier gemeint, dass er die LS nicht findet wenn sie erhoben steht.
Werde jetzt dann doch einen Stichsägen Einsatz machen und die Bodenplatte heraus sägen, das der Robi dann auf den Boden bleiben kann.
Bild kann ich ja dann, wenn ich das umgesetzt habe hier Posten!
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Moin,
hatte heute Nacht so eine "parallel Idee"! [emoji1]
Ich nutze msgdialog mit Telegramm, könntet man darüber die Zonen konfigurieren?
Also das man das Reading wo die Namen mit den Koordinaten stehen, dementsprechend zerteilt, dann die Zone wählt die man neu konfigurieren will, dann die Koordinaten einfügt, anschließend das Reading wieder zusammen gesetzt und geschrieben wird.
Hat sowas vielleicht schon jemand?
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Hallo Ihr lieben,
gibt es nicht eine Meldung wenn man den Staubbehälter entnimmt, bzw. wieder einsetzt?
LG
Marlen
Akustisch am Gerät ja, FHEM technisch nein.
Guten Abend,
kann mir jemand sagen, warum bei folgenden Befehl in einem doif der Robi sich rückwärts versucht in die LS zu bohren, anstatt langsam davon herunter zu fahren?
(set Xiaomi fan_power 1;set Xiaomi volume 1;set Xiaomi remotecontrol start;sleep 1;set Xiaomi move 0 10 10000;sleep 1;set Xiaomi remotecontrol stop;set Xiaomi goto [Reinige];set sleep 30;set Xiaomi volume 84;set Xiaomi cleaning_mode max;set Xiaomi zone [Reinige])
LG
Marlen
Weil sleep 1 zu wenig ist. 10 wäre gut.
Und im DOIF solltest Du wait nehmen und keine ; zum Befehle trennen sondern Komma.
Und ein list ist immer besser als Fragmente, solltest Du langsam wissen. ;)
Gruß Otto
Meinst du das sleep zwischen remotecontrol start und move??
Aber auch wenn ich es "von Hand" im Modul mache, er fährt immer rückwärts auf die LS!
Die Koordinaten haben doch nichts mit move zu tun!?
LG
Malren
Moin,
er steht in der LS, ist docked und Du startest manuell ein
(set Staubi1 remotecontrol start)
(set Staubi1 move 0 50 5000)
(set Staubi1 remotecontrol stop)
Da versucht er es rückwärts?
Gruß Otto
Ja, is wie ein blöder auf die LS drauf gefahren.
Lag wohl daran, dass er in der Ecke stand und recht's die Wand zu na war.
Macht ihr bei einer Zonen-Reinigung davor ein goto zur jeweiligen Zone?
Hab den eindruck, dass er sonst auf dem weg zur Zone ein bisschen dumm ist.
LG
Marlen
Moin,
gibt die Mi Desk Lamp auch irgendwie Rückmeldung beim Drücken des Schalters an der Lampe?
Der state wird leider beim manuellen Einschalten nicht aktualisiert (zumindest nicht automatisch).
Viele Grüße
Zitat von: Breaked am 18 Juni 2018, 17:21:04gibt die Mi Desk Lamp auch irgendwie Rückmeldung beim Drücken des Schalters an der Lampe?
Der state wird leider beim manuellen Einschalten nicht aktualisiert (zumindest nicht automatisch).
Das Modul arbeitet nach dem Pull Prinzip, das Attribut das du suchst ist
intervalData.
Danke Markus!
Minimum ist 60 sec.?
Zitat von: Breaked am 18 Juni 2018, 17:29:03Minimum ist 60 sec.?
Ja, zumindest bis zur nächsten Aktualisierung des Moduls ;)
Seitdem ich meinen AirPurifier 2 hinzugefügt habe, wird mein rockrobo als disconnected angezeigt. Hat sonst noch jemand dieses Problem?
Sorry, mein Fehler! Hatte vergessen, dass ich den rockrobo resettet habe. Damit hatte er auch nen neuen Token. Mit dem neuen klappts jetzt einwandfrei :-)
Hi,
ich habe festgestellt, das man nur 3 Zonenquadrate zu einer Zone zusammen fassen kann.
Wie macht ihr dass? Ich benötige für die gesamte Wohnung mehr.
Wie kann man 2 Zonen hintereinander abarbeiten lassen?
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: Marlen am 19 Juni 2018, 14:43:26Wie macht ihr dass? Ich benötige für die gesamte Wohnung mehr.
Ich habe neben den einzelnen Räumen zusätzlich noch eins über die komplette Wohnung (und darin ein überlappendes für den Eingangsbereich, der so 2x gereinigt wird).
Sorry ich meinte max. 5 ist möglich.
Ich hab mir das so gebaut, das ich die Räume per Telegram pflegen kann und dann wir immer ein Raum mit allen einzel Zonen erstellt, jetzt ist mir eben aufgefallen das nur 5 Zonen abgearbeitet werden.
Hintergrund ist der: ich hab im Wohnzimmer einen Hochflor Teppich, da würgt er immer drauf herum bis es zu einem Fehler führt, deshalb brauch ich da schon 3 Einzelzonen.
Dann brauch ich noch eine Zone für Wohnzimmer, Küche und Flur.
Man bekommt ja keine Rückmeldung wenn ein Raum erledigt ist, so dass man ihn in den nächsten schicken könnte.
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: Marlen am 19 Juni 2018, 18:59:00
Man bekommt ja keine Rückmeldung wenn ein Raum erledigt ist, so dass man ihn in den nächsten schicken könnte.
Hi Marlen,
es gibt zwar keine richtige Rückmeldung wenn der Raum fertig ist, aber man kann den Status "Charging" / "Docking" vom Sauger überprüfen.
Wenn er mit der Zone fertig ist geht er zurück zur Ladestation. Bei der Gelegenheit könnte man auch überprüfen wie der Ladestand des Akku ist
und ihn nur zur nächsten Zone schicken wenn er voll genug ist.
Just my 2 Cents ...
Gruss Wendano
Hallo,
ich komm einfach nicht weiter!
Warum funktioniert das DOIF nicht so wie ich will?
(set Xiaomi volume 1) ## 2
(set Xiaomi remotecontrol start) ## 2
(set Xiaomi move 0 10 1000) ## 10
(set Xiaomi move 0 100 10000) ## 7
(set Xiaomi remotecontrol stop) ## 10
(set Xiaomi volume 84) ## 1
(set Xiaomi locate) ## 1
wait 0,2,2,10,7,10,1,1
Manchmal fährt der Robi, manchmal geht er irgendwie nur in den Manual mode (Bürste dreht sich, bewegt sich aber kein Stück).
Wenn er sich dann aber bewegt, fährt er bei move 0 100 10000)
auch nur paar cm auf jeden Fall weniger als wenn ich das von Hand eingebe!
LG
Marlen
weil die Zeiten zu kurz sind, das habe ich doch schon mal gesagt!? (https://forum.fhem.de/index.php/topic,73052.msg812353.html#msg812353) :'(
Hast aber nicht gesagt wo.....zwischen jeden Befehl? Also auch wenn ich die Lautstärke herunter stelle???
Gleich noch eine Frage....wann verliert der Robi seine Karte? Wenn man ihn hochhebt?
LG
Marlen
Weil alle Zeiten zu kurz waren. Und Du hattest doch mein Beispielcode, da waren zwischen jedem Befehl 10 sec. ::)
Er verliert m.M. die Karte wenn er neu normal (aus der Ladestation) startet.
... oder wenn die Position vor und nach einer Pause zu sehr abweicht: Am Mülleimer kurz auf den Kopf drehen, Bürste sauber machen und ihn dann mit anderer Orientierung wieder hinstellen kann auch die Karte killen.
Kann das sein, das die Zeit vom 1. move auch für alle folgenden genommen wird, egal was man angibt?
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Nein, denke ich nicht. Aber es kann sein, dass er zwischen den move Befehlen ein remotecontrol stop un dwieder start haben will.
Zumindest hatte ich das mal so ermittelt bei Verkettung von move Befehlen.
Irgendwo in der Region -> https://forum.fhem.de/index.php?topic=73052.525
O.k. da muss ich da noch ein bisschen herumprobieren, mit dem move.
Aber ich hab noch ein Problem.
Warum geht das DOIF (das ist mein erstes DOIF) nicht auf cmd_2? Der Xiaomi ist doch "Docked"!
([Reinige] ne "0" and ([?Xiaomi] eq "Charging" or [?Xiaomi] eq "Docked" or [?Xiaomi] eq "connected" or [?Xiaomi] eq "Returning to base"))
(set Xiaomi remotecontrol start)
(set Xiaomi move 0 4 2000)
(set Xiaomi move 10 80 4500)
(set Xiaomi remotecontrol stop)
## Herausfahren ENDE ##
(set Xiaomi volume 84)
(set Xiaomi cleaning_mode max)
(set Xiaomi zone [Reinige])
DOELSEIF
([Xiaomi:"Docked"] and $cmd eq "1")
(set Reinige 0)
LG
Marlen
Zitat von: Marlen am 23 Juni 2018, 19:15:36
Warum geht das DOIF (das ist mein erstes DOIF) nicht auf cmd_2? Der Xiaomi ist doch "Docked"!
Vielleicht tut er es und springt hin und her?
Wenn der Event [Xiaomi:"Docked"] kommt machst Du set Reinige 0 -> das ist der einzige Trigger der Abfrage für cmd 1 auslöst und wenn einer in der Klammer () wahr ist (er ist docked) dann macht er wieder cmd 1
Gruß Otto
Dann müsse aber Reinige 0 sein!
Wird cmd_2 nicht erst ausgeführt wenn das Ereignis eintritt (springt auf "docked") ?
Ich glaube du must ein "do always" als Attribut setzen damit es regelmäßig überprüft wird.
Aber das würde dann ständig cmd_2 auslösen so lange er "docked" ist ... das willst du
bestimmt auch nicht
Zitat von: Wendano am 23 Juni 2018, 19:54:24
Wird cmd_2 nicht erst ausgeführt wenn das Ereignis eintritt (springt auf "docked") ?
Ich glaube du must ein "do always" als Attribut setzen damit es regelmäßig überprüft wird.
Aber das würde dann ständig cmd_2 auslösen so lange er "docked" ist ... das willst du
bestimmt auch nicht
Jetzt bin ich verwirrt!
Ja, wenn er auf docked springt, soll cmd2 ausgeführt werden, macht das Doif aber nicht.
Gesendet von meinem Aquaris U Plus mit Tapatalk
Kannst Du auch. Ich halte die Bemerkung zu do always für falsch.
Aber der Sinn Deines DOIFs erschließt sich mir auch nicht.
Mein Rat: mach es kleiner, teste die Schritte einzeln. In den readings des DOIF sieht man relativ gut was passiert und was nicht.
Gruß Otto
Kleiner?
Ich hab doch nur 2 Teile, der 1 wird ausgelöst und abgearbeitet cmd_1 aber/und dann geht es nicht weiter!
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Hallo,
ohhhh man, manchmal bleibt einen echt nix erspart! Jetzt ging mir doch mein Accesspoint abgeraucht....hab dann das WLAN an der FB eingeschalten mit der gleichen SSID und Password....trotzdem hat das der Robi nicht erkannt.
Also, alles zurück auf 0 App gelöscht Robi Werkseinstellung.....das ganze 3-4 mal bis ich den Token wieder hatte.
Jetzt hab ich nur das Problem, dass in der Flole App ich nicht auf die Karte komm. Es kommt immer die Meldung "Bitte Login-Daten angeben". Diese sind aber angegeben und korrekt.
Hatte schon mal jemand das Problem? Und eine Lösung dafür?
LG
Marlen
Hiho,
in den Settings must du noch deinen "Server" einstellen .. keine Ahnung warum die APP das nicht von selbst erledigt.
Das Feld ist leer und die Software hätte da gerne etwas drinnen stehen.
Gruss Mirko
Super, danke!
Manchmal ist die Lösung auch mal ganz einfach!
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Hi,
also, ich versteh ja echt nicht WANN er die Map neu macht bzw. löscht?
Hab nur ein goto gemacht, dann den Staubbehälter geleert, auf den Home-Button gedrückt und schon war die Map scheinbar weg! (ich hab die Position des Robis nicht verändert, nur geleert)
Dann wenn er eine neue Map erstellt, is die LS mal rechts mal links......warum??? Der Raum ist ja immer gleich!
Da gibt es keine Möglichkeit heraus zu finden, wie die Map liegt?
Ich hab mir jetzt für jeden Raum ein reading gesetzt z.B. rechts_zone_Wohnzimmer, links...., oben... und unten... und einen dummy dazu wo die LS auf der Map steht, dann werden die zonen schnell neu geschrieben.
Ich hab echt nicht gedacht, dass er die Map im selben Raum ständig neu ausrichtet.
LG
Marlen
Zitat von: Otto123 am 14 Juni 2018, 12:54:46
@marlen Ich hoffte eher auf Bilder von Deiner Garage mit Rampe - jetzt hältst Du Dich mit solchen Nebenplätzen vom Hauptthema ab. ;D
So, jetzt ist das Video auch fertig! [emoji8]
http://cloud.tapatalk.com/s/5b34b70857490/verkleinert_f%C3%BCr_forum.mp4 (http://cloud.tapatalk.com/s/5b34b70857490/verkleinert_f%C3%BCr_forum.mp4)
LG
Marlen
Hallo Marlen.
Wow - Klasse deine Garage. Tolle Arbeit ! ;)
VG
Zitat von: gsbox am 28 Juni 2018, 12:34:52
Hallo Marlen.
Wow - Klasse deine Garage. Tolle Arbeit ! ;)
VG
Danke! [emoji2]
Eigentlich gar nicht wild! Stichsäge, Akkuschrauber und ein bisschen Mut!
In 3 Std. war das umgebaut!
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Klasse Lösung!
Wie steuerst du das an und welche Hardware hast du dafür verbaut?
Ich brauche demnächst noch was, das meine Withings Waage vor dem Staubsauger versteckt - die beiden vertragen sich nicht wirklich.
Das ist einfach ein Linearantrieb und ein Endschalter, den der Robi selbst drückt.
Hab mir zwar schon einen Wemos bestellt womit ich das steuern wollte, aber warum unnütz kompliziert machen?
Hab dann aber noch zusätzlich Sicherheitsvorkehrungen getroffen, da der Antrieb 750N hat, da ne Hand rein, wäre nicht so gut!
Warum machst du nicht einfach Magnetband um der Waage? Oder stellst sie auf ein Brettchen?
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
@Marlen Klasse!
@Markus Meine Waage steht auf dem glatten hartem Boden, da hat der Sauger kein Problem. Steht die Waage auf Teppich?
Gruß Otto
@Marlen: Was für nen Linearantrieb hast Du denn benutzt? Kostenpunkt?
https://rover.ebay.com/rover/0/0/0?mpre=https%3A%2F%2Fwww.ebay.de%2Fulk%2Fitm%2F232620364899
29€
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: Otto123 am 28 Juni 2018, 13:32:49Meine Waage steht auf dem glatten hartem Boden, da hat der Sauger kein Problem. Steht die Waage auf Teppich?
Die Body Cardio ist zu flach, da versucht er draufzuklettern und hat dabei auch mehr Erfolg als gut für ihn ist.
Ach ok, ich habe die ganz aller Erste, die ist gerade hoch genug ;)
Von der Garage bin ich begeistert!
Ich hätte nur noch 2 Fragen: ;D
- lt. Ebay Beschreibung können die Endabschalter nachträglich nicht eingestellt werden. Wie fkt. dann die Abschaltung bei der Garagenlösung hier? Demnach den Motor exakt nach dessen max. Hub. befestigt?
- wie wird der Motor angesteuert? Mit einen HM Aktor?
Danke vorab.
Zitat von: Marlen am 28 Juni 2018, 14:04:58
https://rover.ebay.com/rover/0/0/0?mpre=https%3A%2F%2Fwww.ebay.de%2Fulk%2Fitm%2F232620364899
29€
Gesendet von meinem Aquaris U Plus mit Tapatalk
@Marlen: geile Garage ;D
Hallo zusammen,
meinen Roborock hab ich jetzt seit einer Woche, integration in FHEM/FTUI und Alexa ist abgeschlossen..
Wie bekomm ich das denn mit z.B nem DOIF hin, das wenn die Bewohner ausser Haus sind, der Sauger mit dem saugen beginnt, aber wenn jemand nach Hause kommt er quasi pause macht, zur Ladestation fährt und wenn dann wieder die Bewohner weg sind, an der letzten Stelle weiter macht?
Aktuell habe ich folgendes als DOIF
([10:00-16:00] and [Bewohner:state] eq "absent") (set sauger start) DOELSE (set sauger charge)
Das würde aber bedeuten das immer wenn die Wohnung zwischen 10 und 16 Uhr verlassen wird, ein neuer Saugvorgang gestartet wird...
Habt Ihr einen Tip für mich? Danke.
Gruß Andreas
Zitat von: Raven am 28 Juni 2018, 21:07:24
Von der Garage bin ich begeistert!
Ich hätte nur noch 2 Fragen: ;D
- lt. Ebay Beschreibung können die Endabschalter nachträglich nicht eingestellt werden. Wie fkt. dann die Abschaltung bei der Garagenlösung hier? Demnach den Motor exakt nach dessen max. Hub. befestigt?
- wie wird der Motor angesteuert? Mit einen HM Aktor?
Danke vorab.
Hi Raven,
der Antrieb ist fest mit dem "Tor" verbunden. Die andere Seite läuft in einem Schlitten, welcher von einer Feder nach hinten gezogen wird.
Wenn das Tor geöffnet wird, drückt der Schlitten gegen einen Anschlag, beim schließen wird die Feder ca. 1cm gespannt. Wenn sich der Schlitten weiter vom Anschlag entfernt, hab ich einen Endschalter, der das ganze Stromlos macht.
Ich wollte das ganze mit einen Wemos steuern, dich der ist noch unterwegs. Hab das jetzt mit einen Endschalter gelöst, den der Robi betätigt wenn er in der LS steht.
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: scourge am 28 Juni 2018, 21:08:15
@Marlen: geile Garage ;D
Hallo zusammen,
meinen Roborock hab ich jetzt seit einer Woche, integration in FHEM/FTUI und Alexa ist abgeschlossen..
Wie bekomm ich das denn mit z.B nem DOIF hin, das wenn die Bewohner ausser Haus sind, der Sauger mit dem saugen beginnt, aber wenn jemand nach Hause kommt er quasi pause macht, zur Ladestation fährt und wenn dann wieder die Bewohner weg sind, an der letzten Stelle weiter macht?
Aktuell habe ich folgendes als DOIF
([10:00-16:00] and [Bewohner:state] eq "absent") (set sauger start) DOELSE (set sauger charge)
Das würde aber bedeuten das immer wenn die Wohnung zwischen 10 und 16 Uhr verlassen wird, ein neuer Saugvorgang gestartet wird...
Habt Ihr einen Tip für mich? Danke.
Gruß Andreas
Danke!
Ich missbrauche dazu das Heating_Control und las mir damit an den Tagen an den gereinigt werden soll ein Reading setzen.
Bei Abwesenheit wird gereinigt und das Reading zurückgesetzten.
Reinigung abbrechen, zurück zur Basis und dann dort weiter machen ist nicht möglich....soweit ich weiß, das macht er nur wenn der Akku leer ist.
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: scourge am 28 Juni 2018, 21:08:15
Wie bekomm ich das denn mit z.B nem DOIF hin, das wenn die Bewohner ausser Haus sind, der Sauger mit dem saugen beginnt, aber wenn jemand nach Hause kommt er quasi pause macht, zur Ladestation fährt und wenn dann wieder die Bewohner weg sind, an der letzten Stelle weiter macht?
Das hatte ich auch erst, funktioniert aber praktisch nicht. Ich weiß nicht mehr genau, das Verhalten war dann auch immer mal unterschiedlich. Ich wollte ihn einfach anhalten damit er nicht nervt und dann sollte er weiter machen. Da hat er aber meist noch einmal komplett gesaugt.
Das habe ich wieder rausgenommen und der Fall, dass wirklich Einer geht, damit alle weg sind und der Andere nach 10 min wieder kommt ist sooo selten.
Und selbst wenn man ihn dann einfach wieder wegfährt und entweder an dem Tag dann einfach verzichtet oder nochmal neu startet ist doch im Leben des Roboters relativ egal. :)
Gruß Otto
Zitat von: scourge am 28 Juni 2018, 21:08:15
Aktuell habe ich folgendes als DOIF
([10:00-16:00] and [Bewohner:state] eq "absent") (set sauger start) DOELSE (set sauger charge)
Das würde aber bedeuten das immer wenn die Wohnung zwischen 10 und 16 Uhr verlassen wird, ein neuer Saugvorgang gestartet wird...
Habt Ihr einen Tip für mich? Danke.
Gruß Andreas
Um das mehrfache Starten pro Tag zu vermeiden würde ich beim start ein reading oder Dummy setzten das ich dann abfrage. Dann eine weiteres DOIF oder notify das bei Tageswechsel dieses Reading / Dummy wieder zurücksetzt.
Beispiel:
([10:00-16:00] and [Bewohner:state] eq "absent" and [?sauger:schongesaugt] eq "ja") (set sauger start, setreading sauger:schongesaugt ja) DOELSE (set sauger charge)
Dann noch ein lösch DOIF:
([00:00]) (setreading sauger:schongesaugt nein)
--- Schnellschuß aus dem Kopf ---
Danke Skusi,
der Denkanstoss hat mich ans Ziel gebracht... geht bestimmt noch schöner, mit nem Watchdog oder so, aber es macht was es soll :)
Wenn die Bewohner weg sind, das Saugen auf automatik steht, wird zwischen 10 und 16 Uhr gesaugt und das dummy bereits gesaugt auf on gesetzt.
Wenn Bewohner wieder da sind, wird der Saugvorgang beendet, das dummy bereits gesaugt bleibt aber bis 0 Uhr gesetzt.
Wenn die Wohnung wieder zwischendurch verlassen wird, wird nicht wieder erneut gesaugt..
Für alle Interessiertem hier der Code mit ein paar Dummys
Saugen:
defmod di_sauger DOIF ([10:00-16:00] and [Bewohner:state] eq "absent" and [bereits_gesaugt:state] eq "off" and [saugen_auto:state] eq "on" ) (set sauger start;; wait 10;; set bereits_gesaugt on) DOELSE (set sauger charge)
attr di_sauger room Sauger
Saugabfrage:
defmod bereits_gesaugt dummy
attr bereits_gesaugt event-on-change-reading state
attr bereits_gesaugt genericDeviceType switch
attr bereits_gesaugt room Sauger
attr bereits_gesaugt setList on off
attr bereits_gesaugt webCmd on:off
Saugabfrage zurücksetzen:
defmod di_bereits_gesaugt DOIF ([00:00]) (set bereits_gesaugt off)
attr di_bereits_gesaugt room Sauger
Automatik Modus:
defmod saugen_auto dummy
attr saugen_auto event-on-change-reading state
attr saugen_auto genericDeviceType switch
attr saugen_auto room Sauger
attr saugen_auto setList on off
attr saugen_auto webCmd on:off
Danke Leute :)
Jetzt bin ich wieder verwirrt, dachte man muss nach der Klammer ein Fragezeichen "[?" setzen, dann werden diese nur abgefragt, oder???
Ansonsten sind das doch alles Auslöser, oder hab ich da was falsch verstanden?
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Hi scourge,
wait 10
Was ist das? ::)
Und DOIF will eigentlich , anstatt ;; zwischen den FHEM Befehlen.
Etwas zurück gab es auch schon mal ein Code Beispiel (https://forum.fhem.de/index.php/topic,73052.msg811003.html#msg811003) in einem DOIF.
Gruß Otto
Zitat von: Otto123 am 30 Juni 2018, 15:56:55
Hi scourge,
wait 10
Was ist das? ::)
Und DOIF will eigentlich , anstatt ;; zwischen den FHEM Befehlen.
Etwas zurück gab es auch schon mal ein Code Beispiel (https://forum.fhem.de/index.php/topic,73052.msg811003.html#msg811003) in einem DOIF.
Gruß Otto
oh hatte ich übersehen...
mit wait 10 wollte ich eigentlich das er das bereits gesaugt dummy etwas später setzt.
Das mit den "," anstatt ";" hab ich mal geändert.. hat vorher aber auch funktioniert :)
aber wait ist ein attribute im DOIF, kein Befehl zwischen den anderen FHEM Befehlen :)
Ja die ;; gehen auch. Damian hatte letztens mal eine Begründung warum "," besser ist. Der alte Mann hat es vergessen. :-[
Hallo, versteh das mit DOIF nicht:
Warum springt das DOIF bei Alarmanlage "Unscharf" gleich auf cmd_2? Muss nicht die erste Bedingung erfüllt sein, dass die 2. abgefragt wird?
([?Putzplan:komplett] eq "1" and [Alarmanlage_Status:"Scharf"] and [?Xiaomi] eq "Docked" and [?Autonome_Reinigung] eq "AN")
### Herausfahren START
(set Xiaomi remotecontrol start, sleep 10, set Xiaomi move 0 4 5000, sleep 3, set Xiaomi move 0 0 5000, sleep 4.5, set Xiaomi move 0 30 5000, sleep 4, set Xiaomi move 30 80 1500, sleep 1.5, set Xiaomi move 0 90 4500, sleep 5.5, set Xiaomi remotecontrol stop)
## Herausfahren ENDE
(set Xiaomi volume 84)
(set Xiaomi cleaning_mode max)
(set Xiaomi zone komplett)
(set saugBot silentmsg @-17055839 Autonome Reinigung gestartet)
DOELSEIF
([Alarmanlage_Status:"Unscharf"] and $cmd ne "3" and $cmd eq "1") ## Abbruch
(set saugBot silentmsg @-17055839 Reinigung wird abgebrochen)
(set Xiaomi charge)
DOELSEIF
([Xiaomi:history_0] =~ " finished cleaning") ## Reinigung erfolgreich beendet
(set saugBot silentmsg @-17055839 EG komplett mit [Xiaomi:last_clean_area] m² in [Xiaomi:last_clean_time] h gesaugt.)
(setreading Putzplan komplett 0)
DOELSEIF
(([Xiaomi:"Docked"] or [Xiaomi:"charge"]) and $cmd eq "2") ## zurücksetzen damit bei "Scharf" doif neu startet
LG & schönen Sonntag
Marlan
Marlen: Du bist uneinsichtig mit den Zeiten, ich sage Dir: Ein Krümel zuviel im Wlan oder sonstwo und Deine 4.5 sec (alles unter 10) kannst Du vergessen. Aber egal.
Die $cmdx abfragen, das Problem hatten wir schon mal. Das war meines Wissen etwas kompliziert in der Abfolge. Diese Frage sollte Du dann im DOIF Board stellen.
Aber ich würde das einfach nicht so machen. Ich würde im DOIF einfach meinen eigenen Status (ein Reading) verwalten. Der wird am Ende eines Vorganges gesetzt und bei Bedarf abgefragt. Wer sagt Dir denn, dass er nur weil Du los gesagt hast wirklich gefahren ist?
Nur meine Meinung :)
Gruß Otto
Ja Otto, ich weiß das dass mit den Zeiten so glückssache ist und ich so auch noch nicht ganz glücklich bin.
Vielleicht löse ich das auch besser mit goto.....mal schauen.
Hab das DOIF jetzt mal mit einen "eigenen" Status/Reading umgebaut, mal schauen ob es morgen läuft.
LG
Marlen
Hallo,
seid ihr sicher das dass stimmt?
Zitat25500,25500 ist die Koordinate der Ladestation.
Kommt mir so vor als wäre es eher 26000,26000.
LG
Marlen
Hi,
Ist das relevant? Man kann ihn mit den Koordinaten eh nicht da rein fahren, er muss immer ca. 60 cm davor stehen und dann per "Suchkommando" einfahren.
Und wenn es unterwegs mal rutschig war stimmt eh nicht mehr alles.
Gruß Otto
@Otto: irgendwie kommt es mir so vor als ob du mich nicht besonders gut leiden kannst.
Ich will ihn nicht rein fahren sondern 5cm gerade aus nach links.
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
@marlen keine Sorge, ich kenn Dich ja gar nicht. :D
ich weiß in Deiner Garage :) aber das würde ich "relativ" also nur mit move machen.
Das geht doch in einem Schritt mit leichter Drehung.
Ich habe ehrlich gesagt die Sache mit den Koordinaten ausgiebig probiert und für mich als unbrauchbar gefunden. Wen er einmal die Karte gedreht hat ist eh alles vorbei. Das "lustige" daran: Ich hatte bis zur Einführung der Koordinaten den Eindruck die Karte ist in 95% immer gleich. Nachdem ich die Koordinaten probiert und Zonen eingerichtet habe bin ich der Meinung: Die Karte ist jedesmal anders.
Und dann macht er eben völlig unkontrollierte Dinge :-[
Gruß Otto
Hallo Marlen,
ich stimme Otto 100%ig zu. Die Karte kann sich schnell verändern.
Ich habe meinem Sauger beigebracht, daß er zum Entladen nach meiner Ankunft an einen (ungefähren) zugänglichen Punkt fährt und dort dann wartet, bis ich den Behälter gesäubert und wieder zurück gebracht habe. Anschließend fährt er wieder zur Ladestation zurück.
Vielleicht reicht das ja auch für Deine Belange. :)
Ich habe den ganzen Saugerkram in eine separate cfg gepackt.
Momentan überlege ich, ob ich das normale "Full clean" (immer Mo, Mi und Fr) durch ein vollflächiges "Zoned clean" ersetze, da die Karte sich gerne dabei verdreht und dann die Zones und Points sich komplett verschieben und wieder angepasst werden müssen.
Das nervt ein wenig...
Btw.: Da hast Du wirklich eine schicke Garage gebaut.
Hallo,
lese zwar schon länger hier im Forum mit, aber das ist meiner erster Beitrag. ;D
Ist vielleicht eine dumme Frage, aber ich habe erfolgreich meine Xiaomi Eyecare Gen2 zu meiner FHEM Konfiguration hinzugefügt, aber irgendwie sehe ich nicht, wie ich sie steuern kann.
Es wäre nett, wenn mir da jemand auf die Sprünge helfen kann.
Gruß
m0nKeY
Zitat von: m0nKeY am 03 Juli 2018, 23:00:55
ich habe erfolgreich meine Xiaomi Eyecare Gen2 zu meiner FHEM Konfiguration hinzugefügt, aber irgendwie sehe ich nicht, wie ich sie steuern kann.
Hast du das Attribut
subType auf
EyeCare gesetzt?
Welche Readings werden denn angezeigt?
Zitat von: RappaSan am 03 Juli 2018, 14:56:07
Hallo Marlen,
ich stimme Otto 100%ig zu. Die Karte kann sich schnell verändern.
Ich habe meinem Sauger beigebracht, daß er zum Entladen nach meiner Ankunft an einen (ungefähren) zugänglichen Punkt fährt und dort dann wartet, bis ich den Behälter gesäubert und wieder zurück gebracht habe. Anschließend fährt er wieder zur Ladestation zurück.
Vielleicht reicht das ja auch für Deine Belange. :)
Und das hast du denn mit move gemacht?
Zitat
Ich habe den ganzen Saugerkram in eine separate cfg gepackt.
Cool.....und wie macht man das dass die denn auch geladen wird? Muss man das was in die fhem.cfg schreiben?
Wenn du aber etwas änderst, musst du das in der cfg Datei machen, oder?
Zitat
Momentan überlege ich, ob ich das normale "Full clean" (immer Mo, Mi und Fr) durch ein vollflächiges "Zoned clean" ersetze, da die Karte sich gerne dabei verdreht und dann die Zones und Points sich komplett verschieben und wieder angepasst werden müssen.
Das nervt ein wenig...
Naja, ich hab das jetzt so gemacht, das ich das alles mit Telegram festlege, das geht ganz flott, aus Flole-App die Koordinaten direkt in Telegram.
Und jeden Raum für alle vier Fälle (bis jetzt gab es aber nur 2, LS rechts oder links) definiert. Wenn die Karte jetzt neu erstellt werden würde und die LS plötzlich rechts statt link ist, kann ich das mit einen klick ändern.
Zitat
Btw.: Da hast Du wirklich eine schicke Garage gebaut.
DANKE ;D
(https://uploads.tapatalk-cdn.com/20180704/546e85c77f71f7879a9c53d566d2ddb0.jpg)
Genau. In die fhem.cfg kommt dann z.B:
include ./FHEM/SauBaer.cfg
Zitat von: Marlen am 04 Juli 2018, 12:17:24
Wenn du aber etwas änderst, musst du das in der cfg Datei machen, oder?
Kannst Du auch wie immer ändern, aber anschließend mit "Save config" sichern. Die Änderungen werden dann in der entsprechenden cfg Datei übernommen.
Oder direkt in der cfg Datei ändern und speichern mit anschließendem neuem Laden (shutdown restart)..
Zitat von: RappaSan am 04 Juli 2018, 13:26:31
Genau. In die fhem.cfg kommt dann z.B:
include ./FHEM/SauBaer.cfg
Und was hat das für einen Vorteil?
Gesendet von meinem Aquaris U Plus mit Tapatalk
Vorteil liegt im Auge des Betrachters :)
Ich hab etwas mehr Übersicht, wenn ich mich nicht durch die ganze fhem.cfg wühlen muß. Das, was ich ändere, betrifft ja nur den Teil rund um den Sauger.
In Hochsprachen wie C werden solche includes auch gerne eingesetzt, um den code übersichtlich zu halten.
Man könnte dort auch alles in eine große Datei packen, aber das wäre arg unübersichtlich bei Änderungen.
Zitat von: Marlen am 04 Juli 2018, 12:17:24
Und das hast du denn mit move gemacht?
Hier mal meine Bewegungstestergebnisse:
Zitatset MyRobot move 0 50 5000 -> 72 cm
set MyRobot move 0 100 5000 -> 144cm
set MyRobot move 0 50 10000 -> 143cm
set MyRobot move 0 50 15000 -> 143cm
set MyRobot move 0 100 10000 -> 268 cm
10000 ist die längste Zeit die man angeben kann.
Allerdings nur beim ersten Befehl nach dem start von remotecontrol, danach ist es wirklich egal was man angibt, er nimmt immer die Zeit aus dem ersten Befehl. Offenbar interessiert ihn dann nur noch Geschwindigkeit und Drehung.
Zumindest gibt mir diese Erkenntnis einen neuen Ansatz, Wege zu planen ohne immer remotecontrol stop einfügen zu müssen. Nur danach wird die Zeitangabe wieder akzeptiert. :D
Die Pausenzeiten müssen länger als die Fahr und Reaktionsdauer sein.
set MyRobot move 41 0 5000 dreht ihn einmal um die eigene Achse(Mitte)
set MyRobot move 41 41 5000 dreht ihn einmal im Uhrzeigersinn um die eigene Achse (rechtes Rad)
set MyRobot move -41 41 5000 dreht ihn einmal gegen den Uhrzeigersinn um die eigene Achse (linkes Rad)
set MyRobot move 41 82 5000 dreht einen Kreis im Uhrzeigersinn mit der Mitte etwas neben der Außenkante
Und das ist der DOIF Teil bei Ankunft, damit fährt er einfach ein Stück ins Zimmer:)
([AlleAnwesend:"present"] and ([?Staubi1] eq "Docked" or [?Staubi1] eq "connected") and [?$SELF:saugen] eq "done")
(set Staubi1 fan_power 1)(set Staubi1 remotecontrol start)(set Staubi1 move 0 50 5000)(set Staubi1 remotecontrol stop)
Gruß Otto
Was ist denn der Vorteil von move gegenüber goto? Goto kann doch beinahe Zentimetergenau jeden Ort anfahren und die Intelligenz des Staubsaugers wird dabei benutzt, oder? Move sieht aus wie Steueranweisungen auf der untersten Ebene ohne die hilfreichen Sensoren zu benutzen.
Zitatgoto pointX,pointY (VacuumCleaner)
Go to point X/Y (needs to be valid on the map)
Der Vorteil ist, wenn er in der Station steht (da diese sich bei mir selten bewegt ;)) stimmt das mit move ziemlich sicher cm genau.
Wenn sich die Karte gedreht hat stimmt mit goto gar nix, nicht mal meter genau.
Gruß Otto
Ja, aber zwischen jeden move Befehl 10 Sek Pause!?
Und dann nimmt er immer nur die Zeit vom 1. move Befehl.
Und das funktioniert dann cm genau?????
Wenn ich mit move zum Abfall steuern will.....hab ich schon paar Kurven und insgesamt eine weite Strecke.
Und wenn ich dann halt so viele Befehle mit je 10 Sek Pause hab, dauert das ja ewig bis er am Ziel ist, oder?
LG
Marlen
Marlen, wir reden von zwei unterschiedlichen Fällen.
Deine Frage, auf die sich meine Antwort bezog war: Du wolltest 5 cm vor fahren. ::) Oder eben ein Stück aus der Garage.
ZitatIch will ihn nicht rein fahren sondern 5cm gerade aus nach links.
Und man könnte ihn mit etwas Mühe an einen Punkt schicken und dort Spot Cleanup machen. Meine Test waren aus der Zeit vor den Koordinaten. Und ich wollte Dir die ermittelte Tabelle an die Hand geben um ihn 5cm gerade aus nach links zu schicken.
In der Praxis ist aus meiner Sicht sowohl goto als auch move für große Bewegung im Raum ungeeignet. Aber jeder wie er will.
Gruß Otto
Ich komm nicht an den token.
Android, aktuelle App, token verschlüsselt, alte apk ist der link tot.
Gibt es noch andere Wege?
Gesendet von meinem Doogee S60 mit Tapatalk
Zitat von: Frank_Huber am 05 Juli 2018, 23:25:29
Ich komm nicht an den token.
Android, aktuelle App, token verschlüsselt, alte apk ist der link tot.
Gibt es noch andere Wege?
Gesendet von meinem Doogee S60 mit Tapatalk
Rooten bzw. mit "eigener" FW versorgen und dann per ssh drauf und auslesen...
Hab ich bei meinem letzten so gemacht...
https://forum.fhem.de/index.php/topic,86535.msg789573.html#msg789573
Wenn man die "eigene" FW mal "gebaut" hat, kann man auch direkt auf das WLAN des Saugers und quasi direkt "updaten"...
Danach dann ins gewünschte WLAN und jederzeit den Token per ssh auslesen...
Werde das im verlinkten Thread noch ergänzen...
...nachdem ich es mit einem V2 auch noch getestet hab...
Der kommt demnäxt...
...hoffe ich...
Gruß, Joachim
Asche auf mein Haupt.....
Hab mit dicken Fingern den iOS Link der alten App angeklickt.
die Android App lässt sich noch laden.
Ich versuch es dann erstmal so. :)
Danke aber für die Info mit eigener Firmware. klingt auf jeden Fall interessant!
EDIT:
die 4.2 App konnte sich nicht an der Cloud anmelden.
Ich habe dann die 5.0.19 installiert und mit dieser konnte ich den Token aus der miio2.db auslesen.
(Handy mit root, direkt geöffnet mit der App xplore.)
Auch das MIToolkit kann mit der 5.0.19 umgehen.
Für alle die schnell den Token auslesen möchten, die Kollegen aus dem IoBroker Forum haben eine Lösung gefunden:
Einfach die russische modifizierte Mi Home App installieren, dort steht der Token in den Einstellungen unter "Network information" direkt im Klartext.
Kein Auslesen oder Backup nötig.
Ich hoffe ich darf den Link zu GitHub hier posten:
https://github.com/MeisterTR/ioBroker.mihome-vacuum/blob/master/README.md#easy-token-discovery-on-android (https://github.com/MeisterTR/ioBroker.mihome-vacuum/blob/master/README.md#easy-token-discovery-on-android)
Gruß
Scourge
Zitat von: Markus M. am 03 Juli 2018, 23:38:01
Hast du das Attribut subType auf EyeCare gesetzt?
Welche Readings werden denn angezeigt?
Danke Markus,
der subtype "EyeCare". Ich hatte schon "eyecare" und "smartlamp" gestestet, aber die gingen eben nicht. Wo find ich eigentlich raus welchen subtype ich nehmen muss? In der Modulbeschreibung hab ich nichts gefunden.
Gruß
m0nKeY
Zitat von: m0nKeY am 07 Juli 2018, 14:14:17der subtype "EyeCare". Ich hatte schon "eyecare" und "smartlamp" gestestet, aber die gingen eben nicht. Wo find ich eigentlich raus welchen subtype ich nehmen muss? In der Modulbeschreibung hab ich nichts gefunden.
Der Token stimmt? Poste doch mal ein
list, nachdem du versucht hast die Lampe zu verbinden.
Hallo,
seit heute (also gestern) habe ich meinen V2 (Saug&Wisch für Küche und Bad)...
Habe ihn wie meinen V1 auch gleich "gerooted" ;)
Somit ist auslesen vom Token kein Problem...
Aber:
der V1 ist Mainland China und ich kann die Map abrufen mit der MII-App
der V2 weigert sich bei Mainland China die Karte rauszurücken und auch sonst...
Es kommt immer die Meldung: bitte den Server zum aktuellen Standort wählen...
Dummerweise habe ich der App erlaubt beim ersten Einbinden auf die Ortsangabe zuzugreifen (hat sie gewollt um Geräte in der Nähe hinzuzufügen)...
...war das der Fehler?
Habe auch bereits die Daten in der MII-App gelöscht, Ortszugriff gesperrt und neu angemeldet sowohl Europa, dann sind aber alle meine Sauger und sonstigen Geräte "weg" (weil sind ja Mainland China), komischerweise auch der V2 (obwohl ja wahrsch. irgendwie Europa!?)...
...und wenn ich wieder Mainland China einstelle, dann habe ich meine Geräte wieder und es geht, bis auf halt den neuen V2...
Bei der Flole-App geht ja Mixed-Server ;)
D.h. da wo ich Mainland China habe/brauche habe ich das eingestellt (also V1) und für den V2 eben Europa...
Funktioniert...
Aber gemischt finde ich auf Dauer irgendwie doof...
Es gibt ja einige die komplett auf Europa umgestellt haben...
...wie habt ihr das gemacht?
Reset und neu anlernen?
(dann wären/sind wohl Karten und Punkte etc. alle weg)
Danke schon mal, Joachim
Hallo RoboFans,
hat schon eine/r die Firmware 3.3.9_003254 installiert und getestet?
Ich trau mich nicht. Hab meinen Robi noch nicht gerootet (trau mich auch da nicht, suche gerade Anleitungen, hat jemand eine idiotensichere ... ::) )
Danke vorab
erdnar
Hier hab ich beschrieben wie bzw. nach welchen anderen Quellen ich es gemacht habe: https://forum.fhem.de/index.php/topic,86535.msg789573.html#msg789573
Ich kann dort auch noch etwas ausführlicher Berichten...
...sollte es nicht reichen...
Hab allerdings die nächste Zeit (so 1 oder 2 Wochen) nicht viel Zeit...
Ich habe: 3.3.9_003194 und MII-App sagt aktuell...
Gruß, Joachim
Danke Joachim,
deinen Post hatte ich schon gelesen inkl. der Link´s aber eben nicht alles "wirklich" verstanden.
Daher meine Bedenken.
Im Roboterforum https://www.roboter-forum.com/index.php?thread/25097-root-zugriff-auf-xiaomi-mi-vacuum-robot/&pageNo=25 (https://www.roboter-forum.com/index.php?thread/25097-root-zugriff-auf-xiaomi-mi-vacuum-robot/&pageNo=25) gibt es eine umfangreiche Anleitung für´s rooten, evtl. wag ich mich da mal ran ...
Schönes WE
erdnar
Ist gar nicht so wild...
Hast du einen PI dafür?
Ausnahmsweise mal mit Stretch Desktop installieren, damit du dich einfacher mit dem WLAN des Saugers verbinden kannst. Wenn du ihn bereits ins WLAN integriert hast und den Token kennst, dann geht nat. auch ohne, also Lite...
Dann einfach auf der verlinkten Seite die paar Schritte bzgl. Installation der miio-Umgebung (oder wie das jetzt heißt / bin grad unterwegs) folgen.
Die Linux-Beschreibung für PI fand ich ganz übersichtlich und kurz ;)
Dann die Original-FW und Sprachpaket en runterladen und FW "bauen"...
Wobei da ja "nur" ssh "eingebaut" wird...
Und dann entweder mit dem dort genannten Aufruf und vorher Verbinden mit dem WLAN des Saugers (falls neu/zurück gesetzt) oder eben einen "gezielten" FW-Update unter Angabe mit IP und Token...
Man kann auch einfach mit ein paar von den miio-Befehlen "rumspielen", dann sieht man ja ob's geht...
Also wenn man IP und Token kennt...
Viel Erfolg!
Gruß, Joachim
Vielleicht interessant für diejenigen die ihren Vacuum gerootet haben:
https://www.roboter-forum.com/index.php?thread/29822-valetudo-alternatives-cloudfreies-webinterface-ohne-dustcloud-mit-livemap-auf-de/
Zitat von: Ma_Bo am 13 Juli 2018, 18:13:10
Vielleicht interessant für diejenigen die ihren Vacuum gerootet haben:
https://www.roboter-forum.com/index.php?thread/29822-valetudo-alternatives-cloudfreies-webinterface-ohne-dustcloud-mit-livemap-auf-de/
Wenn ich wieder mal (viel) Zeit hab werde ich mir das und dustcloud mal ansehen...
Danke, Joachim
Hallo,
welches Magnetklebeband könnt ihr empfehlen?
Hab einen Hochflor Teppich und da rennt er immer rein.
Und könnte man ihn davon abhalten, wenn man das klebeband knapp drunter kebt?
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Ich habe das (https://www.gearbest.com/brushes/pp_447816.html). Er überfährt das Band aber ein Stück. Ob er sich dann vielleicht trotzdem im Teppich verhakt musst Du probieren.
Wie lang brauchst Du es? Ich habe von meinem nur ca 30 cm gebraucht. Sollte noch 150 cm oder mehr da sein.
Gruß Otto
Bei mir klappt es wenn er mal auf dem Teppich ist. Habe eine Ecke ausgesucht wo er hochkommt. Dort macht er erst eine mini 25x25cm Zone dann den Rest. Den Teppich-Modus habe ich dafür eingeschalten. Manchmal behauptet er dennoch das die Bürste blockiert sei obwohl sie einfach etwas mehr arbeiten muss. Dann einfach die Pause beenden und weiterschicken (in der App). Und dann halt Zonen um den Teppich rum definieren.
Zitat von: Ma_Bo am 13 Juli 2018, 18:13:10
Vielleicht interessant für diejenigen die ihren Vacuum gerootet haben:
https://www.roboter-forum.com/index.php?thread/29822-valetudo-alternatives-cloudfreies-webinterface-ohne-dustcloud-mit-livemap-auf-de/
Jepp, steht auf meiner viel zu langen To-Do Liste ;)
Hat jemand schon die neuste Firmware für den V1 gerootet? Funktioniert das ohne Probleme?
Weiß jemand auf welchem Server der Zonenmodus funktioniert? Mainlaind China kann man im Moment leider keinen neuen Vacuum hinzufügen. Singapur funktioniert, aber ohne Zonenmodus.
@dominik: ios oder android app?
Was passiert wenn Du "Mainland China" auswählst?
Zitat von: thymjan am 16 Juli 2018, 17:14:53
Was passiert wenn Du "Mainland China" auswählst?
Wenn ich den Saugroboter nach dem Hinzufügen auswähle, erscheint die Meldung "Please select your local server."
Hast Du Deinen Staubsauger schon mit dem Europa Server verbunden?
Falls ja, dort zunächst entfernen. Dann auf dem China Server anmelden und dort hinzufügen?
Zitat von: Otto123 am 16 Juli 2018, 09:06:42
Ich habe das (https://www.gearbest.com/brushes/pp_447816.html). Er überfährt das Band aber ein Stück. Ob er sich dann vielleicht trotzdem im Teppich verhakt musst Du probieren.
Wie lang brauchst Du es? Ich habe von meinem nur ca 30 cm gebraucht. Sollte noch 150 cm oder mehr da sein.
Gruß Otto
Bräuchte bestimmt für den Teppich 5 Meter und für das Katzenfutter noch 1,5 Meter. Gibt es keine billigeres als das Original?
Aber wenn er es erst überfährt, dann fährt er ja wieder in den Teppich und meldet irgendwann Cliff-Sensor.
LG
Marlen
Zitat von: thymjan am 16 Juli 2018, 19:45:13
Hast Du Deinen Staubsauger schon mit dem Europa Server verbunden?
Falls ja, dort zunächst entfernen. Dann auf dem China Server anmelden und dort hinzufügen?
Habe ihn anfangs nur mit dem Mainland China verbunden. Dort kam dann der Fehler bei der Auswahl. Mit Europa kann ich ihn gar nicht verbinden, da wird er nicht gefunden.
Zitat von: Marlen am 16 Juli 2018, 20:01:00Gibt es keine billigeres als das Original?
Das von Vorwerk, aber nur wenn du einen Laden in der Nähe hast und somit die Versandkosten umgehen kannst.
Ich hab insgesamt 10 m von diesem:
https://www.magnet-shop.net/magnetband-magnetfolie/magnetband/2119/staubsauger-magnetband-magnetstreifen-25-mm-5-meter-rolle
Echt top, klappt auch hochkant und unter dickem Teppich.
Gesendet von meinem ONEPLUS A6003 mit Tapatalk
Zitat von: Florie am 16 Juli 2018, 20:53:51
Ich hab insgesamt 10 m von diesem:
https://www.magnet-shop.net/magnetband-magnetfolie/magnetband/2119/staubsauger-magnetband-magnetstreifen-25-mm-5-meter-rolle
Echt top, klappt auch hochkant und unter dickem Teppich.
Gesendet von meinem ONEPLUS A6003 mit Tapatalk
Hochkant???
Unter dicken Teppich? Aber er fährt erst darüber, dass er es erkennt?
LG
Marlen
Hochkant habe ich das an Schwellen, wo er zwar auf dem Hinweg drüber kommen würde, beim Rückweg aber nicht zurück, da zu hoch. Nun geht er eben nicht über diese Schwellen.
Habe den Roborock (du hast V1 oder?) und ich würde sagen, dass er "dran schnuppert" aber nicht drüber fährt.
Gesendet von meinem ONEPLUS A6003 mit Tapatalk
Ja, hab den V1
Zitat von: dominik am 16 Juli 2018, 19:16:36
Wenn ich den Saugroboter nach dem Hinzufügen auswähle, erscheint die Meldung "Please select your local server."
Habe ja bereits ein ähnliches/das gleiche Problem geschildert: https://forum.fhem.de/index.php/topic,73052.msg817102.html#msg817102
Aktuell nutze ich daher die Flole-App (Android), da man dort pro Roboter angeben kann welchen Server man will...
Dachte zuerst es liegt an V1/V2...
...ist aber dann aktuell wohl generell!?
Konnte seither nicht viel weiter testen, also bzgl. Zonen etc. bin grad länger unterwegs...
Zitat von: Markus M. am 16 Juli 2018, 13:52:44
Jepp, steht auf meiner viel zu langen To-Do Liste ;)
Hat jemand schon die neuste Firmware für den V1 gerootet? Funktioniert das ohne Probleme?
Werde ich dann auch mal angehen...
Gruß, Joachim
Wer traut sich ... ?
Zitat von: thymjan am 19 Juli 2018, 20:58:15
Wer traut sich ... ?
Gestern Abend samt Root erledigt, ob sich was gravierendes geändert hat kann ich noch nicht sagen.
Im 3. Post auf Seite 1 findet sich übrigens auch noch ein Binary, um den Sauger in einen Airport Speaker zu verwandeln - warum auch immer man das tun wollte 😂
Hab' das update auch gewagt. Noch keine Unterschiede festgestellt. Lässt sich noch mit fhem steuern. Hat Karte und Token nicht vergessen.
Zitat von: dominik am 16 Juli 2018, 20:40:43
Habe ihn anfangs nur mit dem Mainland China verbunden. Dort kam dann der Fehler bei der Auswahl. Mit Europa kann ich ihn gar nicht verbinden, da wird er nicht gefunden.
Habe ein ähnliches Problem mit meinem 2. Sauger und habe folgendes soweit aus dem roboter-forum verstanden:
Hängt wohl mit der "internationalen" Version des Saugers zusammen.
Ich denke du hast auch V1 aber als internationale Version (hatte auch einen deutschen Stecker an der Ladestation)
Die dürfen sich wohl aktuell nicht an den "Mainland China" Servern anmelden.
Leider sind sie aber auch nicht an den europäischen zugelassen. Sieht man auch wenn man manuell eine V1 hinzufügen will, der taucht garnicht in der Liste auf.
Also mache ich aktuell folgendes vorgehen:
Den V1 internationale Version auf dem Singapur Server anmelden und mit der Flole App Zonenreinigung nutzen bzw. ebenfalls in FHEM einbinden.
Die "Vögel" zwitschern aber schon, das bald die V1 international auch auf die europäischen Server dürfen.
Ob dann dort aber Zonenreinigung und GoTo gehen, das weiß man noch nicht.
Ich habe meine CeilingLamp eingebunden, jetzt geht die Lampe immer Hart an und aus, kann ich der das Einfaden und Ausfaden beibringen? So wie es bei der Originalen App geht?
Zitat von: Typ1er am 26 Juli 2018, 23:43:23
Ich habe meine CeilingLamp eingebunden, jetzt geht die Lampe immer Hart an und aus, kann ich der das Einfaden und Ausfaden beibringen? So wie es bei der Originalen App geht?
Hast du schon mal probiert, noch einen Parameter mit den Sekunden dran zu hängen?
Was für einen Gerätetyp und welche Kommandos verwendest du genau?
Anhängen von Sekunden klappt nicht. (ohne Fehler, schaltet sofort von 0 auf 100%) Subtype ist "SmartLamp"
Lampe ist diese https://de.gearbest.com/ceiling-lights/pp_596249.html (https://de.gearbest.com/ceiling-lights/pp_596249.html)
hänge mal ein List an:
Internals:
CFGFN
DEF 192.168.178.25 92788facd88a4fd7fee8Token
FD 47
NAME CeilingLampe
NR 1376
STATE ???
TYPE XiaomiDevice
hardware MTK7697
mac 12:34:12:34:12:34
model yeelink.light.ceiling1
token 92788facd88a4fd7fee8Token
wifi_firmware 4.3.0
READINGS:
2018-07-27 22:36:12 brightness 33
2018-07-27 22:36:12 brightness_on 33
2018-07-27 22:36:12 color_mode 2
2018-07-27 22:36:12 ct 3900
2018-07-27 22:36:10 device_firmware 1.5.5_0182
2018-07-27 22:36:10 device_uptime 22.93
2018-07-27 22:36:14 error none
2018-07-27 22:36:12 flowing 0
2018-07-27 22:36:12 lan_ctrl 1
2018-07-27 22:36:12 power on
2018-07-27 22:36:12 poweroff_time 0
2018-07-27 22:36:14 wifi_auth_fail_count 0
2018-07-27 22:36:14 wifi_conn_fail_count 0
2018-07-27 22:36:14 wifi_conn_success_count 1
2018-07-27 22:36:14 wifi_dhcp_fail_count 0
2018-07-27 22:36:10 wifi_rssi -65
2018-07-27 22:36:14 wifi_state connecting
helper:
ConnectionState connected
crypt AES
delay 0
dev 04a2
id 03cc
ip 192.168.178.25
last_read 1532723774
packetid 25
port 54321
sequence 1532641226
token 92788facd88a4fd7fee8Token
packet:
Attributes:
subType SmartLamp
Habe die Lampe jetzt über ein Yeelight Plugin eingebunden, da klappt es besser (sieht ähnlich dem einer Hue Lampe aus)
Wenn du rausfindest was ich dafür senden muss, kann ich das Modul gerne aktualisieren.
Aber wenn es yeelight nochmal extra gibt, braucht es das eigentlich nicht.
Dass es mit den anderen Leuchten rudimentär funktioniert ist eher ein Abfallprodukt der Schreibtischlampe :)
Hallo FHEM Gemeinde,
habe die letzten Tage etwas mit dem Xiaomi Vacuumcleaner herumgespielt.
Da ich unbedingt über FHEM die LiveMap anfordern wollte, habe ich, aufbauend auf das GitHub Projekt https://github.com/Hypfer/Valetudo mir die png selbst gezeichnet.
Den Code dafür möchte ich euch zur Verfügung stellen. Vielleicht findet es ja der eine oder andere sinnvoll. Evtl kann er ja in ein größeres Projekt integriert werden ;).
sub getLiveMap($$){
my ($ip, $filePath) = @_;
my $buildMap = sub{
my ($param, $err, $data) = @_;
if($err){
Log3 "getLiveMap", 3, "$err";
return;
}
my $path = decode_json($data)->{path};
my $map = decode_json($data)->{map};
my $im = new GD::Image(1024,1024);
my $grey = $im->colorAllocate(125,125,125);
my $lightblue = $im->colorAllocate(102,153,255);
my $darkblue = $im->colorAllocate(0,118,255);
for (my $i=0;$i < int(@$map);$i+=1){
my $y = (@$map[$i]->[0]/4) % 1024;
my $x = ((@$map[$i]->[0]/4) - $y) / 1024;
if(@$map[$i]->[1] == 0 && @$map[$i]->[2] == 0 && @$map[$i]->[3] == 0){
$im->setPixel($x,$y,$lightblue);
}elsif(@$map[$i]->[1] == 255 && @$map[$i]->[2] == 255 && @$map[$i]->[3] == 255){
$im->setPixel($x,$y,$darkblue);
}else{
$im->setPixel($x,$y,$darkblue);
}
}
$im = $im->copyRotate270();
$im->flipVertical();
my $imScaled = new GD::Image(4096,4096);
$imScaled->copyResized($im,0,0,0,0,4096,4096,1024,1024);
my $grey = $imScaled->colorAllocate(125,125,125);
my $white = $imScaled->colorAllocate(255,255,255);
my $red = $imScaled->colorAllocate(255,0,0);
my $green = $imScaled->colorAllocate(0,255,0);
$imScaled->setThickness("2");
for (my $i=0;$i < (int(@$path)-1);$i+=1){
my $x1 = (@$path[$i]->[0]);
my $y1 = (@$path[$i]->[1]);
my $x2 = (@$path[$i+1]->[0]);
my $y2 = (@$path[$i+1]->[1]);
$imScaled->line($x1,$y1,$x2,$y2,$white);
}
$imScaled->filledArc(2048,2048,20,20,0,360,$red);
my $x1 = @$path[int(@$path)-1]->[0];
my $y1 = @$path[int(@$path)-1]->[1];
$imScaled->filledArc($x1,$y1,20,20,0,360,$green);
$imScaled = $imScaled->copyRotate90();
open (FH, ">$filePath") or print "Kann Datei nicht zum Schreiben oeffnen!\n";
print FH $imScaled->png;
close (FH);
};
HttpUtils_NonblockingGet({
method => "GET",
url => "http://".$ip.":80/api/map/latest",
timeout => "5",
noshutdown => "1",
callback => $buildMap
});
}
Ab in die myUtils damit. Die Perl Module für decode_json und gd::image müssen vorhanden sein. Aufruf mit getLiveMap("IP","PATH/WHERE/TO/WRITE/FILE.png");
Der Code ist alles andere als perfekt. Wer Fehler findet, darf diese gerne kundtun.
Für die Zukunft interessant wäre noch ein automatisches Trimmen der png.
Freundliche Grüße
Quantum
Dazu muss der Sauger aber gerootet sein?
LG
Marlen
ja. Es muss die valetudo Binärtdatei auf den Robot eingebracht werden. Dafür ist root notwendig.
Das zu erreichen ist aber wirklich keine große Sache.
Freundliche Grüße
Quantum
[emoji848]
an die Map-ausrichtung kommt man dann aber auch nicht ran, oder?
Gesendet von meinem Aquaris U Plus mit Tapatalk
wenn du mit Map-Ausrichtung meinst, dass mithilfe dieser Karte bestimmte Punkte angefahren werden können zwecks Spot oder Zone Cleaning, dann nein.
Das ist eine planare Karte mit eingezeichnetem Pfad damit der Fortschritt und die Position des Robots erkannt werden kann. Mehr nicht.
Lasse seit gestern auch saugen :)
Dickes Danke an Markus für die Integration in FHEM.
Vermeide wo es nur geht die dummy > notify,doif Variante zur Steuerung über Alexa wie sie im Wiki beschrieben wird.
Hier meine Lösung mit readingsproxy:
defmod rp_xd_vacuum1 readingsProxy xd_vacuum1:state
attr rp_xd_vacuum1 alexaName sauger
attr rp_xd_vacuum1 event-on-change-reading .*
attr rp_xd_vacuum1 genericDeviceType switch
attr rp_xd_vacuum1 room Alexacontrol,readingsproxy
attr rp_xd_vacuum1 setFn {($CMD eq "on")?"start":"charge"}
attr rp_xd_vacuum1 setList on off
Vieleicht kann man das ja auch als weiteren Lösungsansatz im Wiki erweitern.
Gruß
Thomas
Hallo, ich bräuchte bitte mal Hilfe mit der Installation der Perl-Module. JSON, MD5, Cipher::AES oder Crypt::Rijndael_PP habe ich erfolgreich installiert, ich bekomme aber weder CBC noch ECB installiert.
Der Versuch apt-get install libcrypt-cbc-perl liefert immer nur
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
E: Paket libcrypt-cbc-perl kann nicht gefunden werden.
Analog kommt die Meldung für ECB. Was mache ich falsch?
Danke und Grüße,
Tom
Suche im thread weiter oben nach den Modulen. Wenn apt-get nicht geht, dann mit CPAN installieren:
https://forum.fhem.de/index.php/topic,73052.msg651489/topicseen.html#msg651489
Zitat von: thymjan am 06 August 2018, 23:44:48
Suche im thread weiter oben nach den Modulen. Wenn apt-get nicht geht, dann mit CPAN installieren:
https://forum.fhem.de/index.php/topic,73052.msg651489/topicseen.html#msg651489
Hallo, die Module AES und Rijndael konnte ich ja mit CPAN installieren, aber ich scheitere an den Modulen libcrypt-cbc-perl und libcrypt-ECB-perl. Die muss ich doch mit app-get installieren, oder geht das auch mit CPAN? Wie würde dann dafür die Sytax lauten? Sorry, bin nicht der Linux Profi ;-)
Danke und Grüße,
Tom
Edit: hab es gefunden: habe mit sudo cpan install Crypt::ECB installiert, dann hat es funktioniert.
Danke und Grüße,
Tom
Hallo, noch eine Frage: hat jemand den Xiaomi in einem WLAN Gastzugang verbunden und den Raspi mit FHEM im normalen WLAN? Läuft das so über FHEM überhaupt oder müssen beide im gleichen WLAN sein?
Habe bei meiner Fritzbox den Xiaomi nämlich nur im Gastzugang eingebunden.
Danke und Grüße,
Tom
Die sehen sich lokal doch nicht, das ist ja quasi der Sinn des Gastzugangs.
Gesendet von meinem ONEPLUS A6003 mit Tapatalk
Moin,
ich habe mich mal der Automation meines Roborock gewidmet und den Code angepasst, da ich die Idee von Otto123 (https://forum.fhem.de/index.php/topic,73052.msg811003.html#msg811003) mit dem Status nicht schlecht fand.
Jetzt stehe ich vor dem Problem, dass mein Robi nicht hervorkommen mag, wenn er gesaugt hat und ich nach Hause komme. Habe ich da am Code etwas verbockt und sehe ich den Wald vor lauter Bäumen nicht mehr? (es geht um cmd_6 ... vermutlich dann auch um cmd_7.) Es klappt jedoch ganz normal, wenn ich das Ganze per set di_Saugroboter_schedule cmd_6 anstoße.
###############################################################################################################
## Staubsaugen Mo, Mi, Fr um 10:00Uhr oder 15:00Uhr, wenn keiner zuhause ist.
###############################################################################################################
([10:00|135] and [?Bewohner:"abwesend"] and [?Saugroboter:"Docked"] and [?$SELF:saugen] eq "active")
(set Saugroboter start,set TeleBot msg Herr Nilsson macht sauber)
DOELSEIF
([15:00|135] and [?Bewohner:"abwesend"] and [?Saugroboter:"Docked"] and [?$SELF:saugen] eq "active")
(set Saugroboter start,set TeleBot msg Herr Nilsson macht sauber)
DOELSEIF
([10:00|3] and [?Bewohner:"verreist"] and [?Saugroboter:"Docked"] and [?$SELF:saugen] eq "active")
(set Saugroboter start,set TeleBot msg Herr Nilsson macht sauber)
DOELSEIF
([Saugroboter:"Charging"] and [?$SELF:saugen] eq "active")
(setreading $SELF saugen done)
## Abbruch der automatisierten Reinigung, wenn jemand nach Hause kommt.
DOELSEIF
([Bewohner:"zuhause"] and [?Saugroboter:"Cleaning"] and ($cmd eq "1" or "2"))
(set Saugroboter charge)
## Hervorkommen zur Leerung des Staubbehälters, wenn Daniel nach Hause kommt.
DOELSEIF
([Daniel:"zuhause"] and [?Saugroboter:"Docked"] and [?$SELF:saugen] eq "done")
(set Saugroboter goto Dustbin,setreading $SELF saugen emptied)
## Hervorkommen zur Leerung des Staubbehälters, wenn Bewohner im Urlaub und Merle die Wohnung betritt.
DOELSEIF
([Motion_MagicMirror:"on"] and [?Merle:"zuhause"] and [?Bewohner:"verreist"] and ([?Saugroboter] eq "Docked" or "Charging") and [?$SELF:saugen] eq "done")
(set Saugroboter goto Dustbin,setreading $SELF saugen emptied)
## Reset des Status
DOELSEIF
(([08:05] and ![?Bewohner:verreist]) or ([08:05|2] and [?Bewohner:verreist]))
(setreading $SELF saugen active)
###############################################################################################################
(Abgesehen davon habe ich festgestellt, dass Merle, die im Residents-Modul als Guest hinterlegt ist, den Bewohnerstatus auch auf "zuhause" setzt, wodurch das Cmd auch nicht wahr werden kann. Das ist aber zunächst ein anderes Problem. Evtl kennt hierzu aber auch jemand eine Lösung? Zum Beispiel, dass der Gueststatus nicht den Bewohnerstatus ändert?)
EDIT: Ich glaube, ich habe das Problem, welches scheinbar keins war, mit attr Merle do_not_notify 1 gelöst.
Moin,
switch er denn in cmd_6 wenn Du nach hause kommst? Sieht man im list aber nicht in der DEF, die Du hier zeigst.
Funktioniert denn set Saugroboter goto Dustbin
Wenn er nach dem saugen ne neue Karte gebaut hat? ::)
Gruß Otto
Zitat von: Otto123 am 08 August 2018, 11:51:22
Moin,
switch er denn in cmd_6 wenn Du nach hause kommst? Sieht man im list aber nicht in der DEF, die Du hier zeigst.
Funktioniert denn set Saugroboter goto Dustbin
Wenn er nach dem saugen ne neue Karte gebaut hat? ::)
Gruß Otto
Nein, er switcht nicht auf cmd_6.
Ja, das hat bisher immer funktioniert. (er hat die Ausrichtung der Karte bisher immer gleich aufgebaut.)
hier mal das list:
Internals:
DEF ###############################################################################################################
## Staubsaugen Mo, Mi, Fr um 10:00Uhr oder 15:00Uhr, wenn keiner zuhause ist.
###############################################################################################################
([10:00|135] and [?Bewohner:"abwesend"] and [?Saugroboter:"Docked"] and [?$SELF:saugen] eq "active")
(set Saugroboter start,set TeleBot msg Herr Nilsson macht sauber)
DOELSEIF
([15:00|135] and [?Bewohner:"abwesend"] and [?Saugroboter:"Docked"] and [?$SELF:saugen] eq "active")
(set Saugroboter start,set TeleBot msg Herr Nilsson macht sauber)
DOELSEIF
([10:00|3] and [?Bewohner:"verreist"] and [?Saugroboter:"Docked"] and [?$SELF:saugen] eq "active")
(set Saugroboter start,set TeleBot msg Herr Nilsson macht sauber)
DOELSEIF
([Saugroboter:"Charging"] and [?$SELF:saugen] eq "active")
(setreading $SELF saugen done)
## Abbruch der automatisierten Reinigung, wenn jemand nach Hause kommt.
DOELSEIF
([Bewohner:"zuhause"] and [?Saugroboter:"Cleaning"] and ($cmd eq "1" or "2"))
(set Saugroboter charge)
## Hervorkommen zur Leerung des Staubbehälters, wenn Daniel nach Hause kommt.
DOELSEIF
([Daniel:"zuhause"] and [?Saugroboter:"Docked"] and [?$SELF:saugen] eq "done")
(set Saugroboter goto Dustbin,setreading $SELF saugen emptied)
## Hervorkommen zur Leerung des Staubbehälters, wenn Bewohner im Urlaub und Merle die Wohnung betritt.
DOELSEIF
([Motion_MagicMirror:"on"] and [?Merle:"zuhause"] and [?Bewohner:"verreist"] and ([?Saugroboter] eq "Docked" or "Charging") and [?$SELF:saugen] eq "done")
(set Saugroboter goto Dustbin,setreading $SELF saugen emptied)
## Reset des Status
DOELSEIF
(([08:05] and ![?Bewohner:verreist]) or ([08:05|2] and [?Bewohner:verreist]))
(setreading $SELF saugen active)
###############################################################################################################
MODEL FHEM
NAME di_Saugroboter_schedule
NR 133
NTFY_ORDER 50-di_Saugroboter_schedule
STATE initialized
TYPE DOIF
.attraggr:
.attreocr:
.*
.attrminint:
READINGS:
2018-08-08 11:51:59 Device Bewohner
2018-08-08 11:26:12 cmd 0
2018-08-08 11:51:59 e_Bewohner_events durTimerPresence_cr: 1,durTimerPresence: 00:01:00
2018-08-08 11:51:59 e_Daniel_events durTimerPresence_cr: 1,durTimerPresence: 00:01:00
2018-08-08 11:50:42 e_Saugroboter_STATE Software update
2018-08-08 11:50:42 e_Saugroboter_events Software update
2018-08-08 11:26:12 mode enabled
2018-08-08 11:17:55 saugen done
2018-08-08 11:26:12 state initialized
2018-08-08 11:26:12 timer_01_c01 09.08.2018 10:00:00|135
2018-08-08 11:26:12 timer_02_c02 08.08.2018 15:00:00|135
2018-08-08 11:26:12 timer_03_c03 09.08.2018 10:00:00|3
2018-08-08 11:26:12 timer_04_c08 09.08.2018 08:05:00
2018-08-08 11:26:12 timer_05_c08 09.08.2018 08:05:00|2
Regex:
attr:
cmdState:
wait:
waitdel:
condition:
0 DOIF_time_once($hash,0,$wday,"135") and EventDoIf('Bewohner',$hash,'abwesend',1) and EventDoIf('Saugroboter',$hash,'Docked',1) and ReadingValDoIf($hash,'di_Saugroboter_schedule','saugen') eq "active"
1 DOIF_time_once($hash,1,$wday,"135") and EventDoIf('Bewohner',$hash,'abwesend',1) and EventDoIf('Saugroboter',$hash,'Docked',1) and ReadingValDoIf($hash,'di_Saugroboter_schedule','saugen') eq "active"
2 DOIF_time_once($hash,2,$wday,"3") and EventDoIf('Bewohner',$hash,'verreist',1) and EventDoIf('Saugroboter',$hash,'Docked',1) and ReadingValDoIf($hash,'di_Saugroboter_schedule','saugen') eq "active"
3 EventDoIf('Saugroboter',$hash,'Charging',1) and ReadingValDoIf($hash,'di_Saugroboter_schedule','saugen') eq "active"
4 EventDoIf('Bewohner',$hash,'zuhause',1) and EventDoIf('Saugroboter',$hash,'Cleaning',1) and ($cmd eq "1" or "2")
5 EventDoIf('Daniel',$hash,'zuhause',1) and EventDoIf('Saugroboter',$hash,'Docked',1) and ReadingValDoIf($hash,'di_Saugroboter_schedule','saugen') eq "done"
6 EventDoIf('Motion_MagicMirror',$hash,'on',1) and EventDoIf('Merle',$hash,'zuhause',1) and EventDoIf('Bewohner',$hash,'verreist',1) and (InternalDoIf($hash,'Saugroboter','STATE') eq "Docked" or "Charging") and ReadingValDoIf($hash,'di_Saugroboter_schedule','saugen') eq "done"
7 (DOIF_time_once($hash,3,$wday) and !ReadingValDoIf($hash,'Bewohner','verreist')) or (DOIF_time_once($hash,4,$wday,"2") and ReadingValDoIf($hash,'Bewohner','verreist'))
days:
0 135
1 135
2 3
4 2
devices:
3 Saugroboter
4 Bewohner
5 Daniel
6 Motion_MagicMirror
all Saugroboter Bewohner Daniel Motion_MagicMirror
do:
0:
0 set Saugroboter start,set TeleBot msg Herr Nilsson macht sauber
1:
0 set Saugroboter start,set TeleBot msg Herr Nilsson macht sauber
2:
0 set Saugroboter start,set TeleBot msg Herr Nilsson macht sauber
3:
0 setreading di_Saugroboter_schedule saugen done
4:
0 set Saugroboter charge
5:
0 set Saugroboter goto Dustbin,setreading di_Saugroboter_schedule saugen emptied
6:
0 set Saugroboter goto Dustbin,setreading di_Saugroboter_schedule saugen emptied
7:
0 setreading di_Saugroboter_schedule saugen active
8:
helper:
event durTimerPresence_cr: 1,durTimerPresence: 00:01:00
globalinit 1
last_timer 5
sleeptimer -1
triggerDev Bewohner
triggerEvents:
durTimerPresence_cr: 1
durTimerPresence: 00:01:00
triggerEventsState:
durTimerPresence_cr: 1
durTimerPresence: 00:01:00
internals:
6 Saugroboter:STATE
all Saugroboter:STATE
intervalfunc:
itimer:
localtime:
0 1533801600
1 1533733200
2 1533801600
3 1533794700
4 1533794700
readings:
realtime:
0 10:00:00
1 15:00:00
2 10:00:00
3 08:05:00
4 08:05:00
time:
0 10:00:00
1 15:00:00
2 10:00:00
3 08:05:00
4 08:05:00
timeCond:
0 0
1 1
2 2
3 7
4 7
timer:
0 0
1 0
2 0
3 0
4 0
timers:
0 0
1 1
2 2
7 3 4
trigger:
all Bewohner Saugroboter Daniel Motion_MagicMirror Merle
triggertime:
1533733200:
localtime 1533733200
hash:
1533794700:
localtime 1533794700
hash:
1533801600:
localtime 1533801600
hash:
uiState:
uiTable:
Attributes:
alias Saugroboter Zeitsteuerung
do always
event-on-change-reading .*
room Saugroboter,zz_System
Naja sehe ich jetzt erst-> nach meiner Meinung ist das Quark: [?Saugroboter:"Docked"] Einen Event mit ? abfragen. :o
Und zwei Events mit and verknüpft funktioniert nicht. Die können nicht zur gleichen Zeit verarbeitet werden.
[?Saugroboter] eq "Docked"
ginge.
gruß Otto
oh. ich dachte, das sei das selbe....
probiere ich nachher Mal aus.Muss jetzt erstmal zur Arbeit.
Nö das ist die Abfrage des Zustandes mit Trigger ->[Saugroboter] eq "Docked"
das ist die Abfrage des Zustandes ohne Trigger ->[?Saugroboter] eq "Docked"
das ist der Trigger durch Event -> [Saugroboter:"Docked"]
gruß Otto
Zitat von: Otto123 am 08 August 2018, 12:47:13
Nö das ist die Abfrage des Zustandes mit Trigger ->[Saugroboter] eq "Docked"
das ist die Abfrage des Zustandes ohne Trigger ->[?Saugroboter] eq "Docked"
das ist der Trigger durch Event -> [Saugroboter:"Docked"]
gruß Otto
letzteres verstehe ich nicht so recht..
Du meinst gruß Otto? ;D ;D ;D
Ist aber OT ;)
Ich zitiere mal erst die Doku zum Unterschied der beiden Trigger Möglichkeiten:
Zitatdefine di_garage DOIF ([remotecontrol] eq "on") (set garage on) DOELSEIF ([remotecontrol] eq "off") (set garage off)
Das Modul wird getriggert, sobald das angegebene Device hier "remotecontrol" ein Event erzeugt. Das geschieht, wenn irgendein Reading oder der Status von "remotecontrol" aktualisiert wird. Ausgewertet wird hier der Zustand des Status von remotecontrol nicht das Event selbst.
ZitatEine Alternative zur Auswertung von Status oder Readings ist das Auswerten von Ereignissen (Events) mit Hilfe von regulären Ausdrücken. Der Suchstring wird als regulärer Ausdruck in Anführungszeichen angegeben. Die Syntax lautet: [<devicename>:"<regex>"]
Anwendungsbeispiel: wie oben, jedoch wird hier nur das Ereignis (welches im Eventmonitor erscheint) ausgewertet und nicht der Status von "remotecontrol" wie im vorherigen Beispiel
define di_garage DOIF ([remotecontrol:"on"]) (set garage on) DOELSEIF ([remotecontrol:"off"]) (set garage off)
In diesem Beispiel wird nach dem Vorkommen von "on" innerhalb des Events gesucht. Falls "on" gefunden wird, wird der Ausdruck wahr und der DOIF-Fall wird ausgeführt, ansonsten wird der DOELSEIF-Fall entsprechend ausgewertet. Die Auswertung von reinen Ereignissen bietet sich dann an, wenn ein Modul keinen Status oder Readings benutzt, die man abfragen kann, wie z. B. beim Modul "sequence".
Hallo,
ich habe gestern meinen Cleaner auf Firmware Version 3.3.9_003254 gesetzt (neueste, welche ich via app gekriegt habe). Es scheint seither, dass der STATE immer auf connected (und nie mehr auf Charging,...) steht.
Ich kann seither nicht mehr die verschiedenen Stati abfangen.
Haben andere dasselbe Problem/eine Loesung?
Gruss
Omer
Hallo Omer,
kann ich nicht bestätigen.
Der Sauger ist allerdings jetzt scheinbar im Zonen-Modus nicht mehr so doof wie vorher.
Erdnar
Zitat von: erdnar am 11 August 2018, 20:25:33
Hallo Omer,
kann ich nicht bestätigen.
Der Sauger ist allerdings jetzt scheinbar im Zonen-Modus nicht mehr so doof wie vorher.
Erdnar
wie fragst Du den Status ab bei Dir, Vielleicht mache ich da was falsch. Hast Du vielleicht einen Tipp?
Omer
Zitat von: omer1143 am 11 August 2018, 21:07:00
wie fragst Du den Status ab bei Dir, Vielleicht mache ich da was falsch. Hast Du vielleicht einen Tipp?
Omer
Hi Omer,
versuch mal mit get data beim Sauger die readings neu einzulesen.. Bei mir blieb das auch alle Nase lang hängen. Ich habs jetzt mit ner automatisierten get data Abfrage (alle 2 Minuten ) gelöst, seitdem keine Probleme mit dem Status.
defmod at_sauger_data_update at +*00:02:00 get sauger data
Eigentlich gibt es auch Attribute für das Intervall.
Wenn der Sauger öfter bei disconnect landet hat er eventuell Netzprobleme.
Und die Cloud darf natürlich nicht gesperrt sein.
Hallo zusammen,
ich habe heute meinen Xiaomi SmartFan mit der Firmware Version 1.3.1.0090 erhalten. Leider funktioniert die Einbindung in FHEM nicht.
Internals:
DEF 192.168.1.71
FD 55
NAME XD_AZ_Ventilator
NR 713
STATE ???
TYPE XiaomiDevice
helper:
ConnectionState connected
crypt Rijndael
delay 0
dev 0519
id b55d
ip 192.168.1.71
last_read 1534505113
packetid 36
port 54321
sequence 1534497510
token 00000000000000000000000000000000
packet:
1 power_off
10 device_info
11 fan_data
12 fan_data
13 device_info
14 fan_data
15 fan_data
16 fan_data
17 fan_data
18 fan_data
19 fan_data
2 fan_data
20 fan_data
21 fan_data
22 fan_data
23 fan_data
24 fan_data
25 fan_data
26 fan_data
27 fan_data
28 fan_data
29 fan_data
3 fan_data
30 device_info
31 power_on
32 fan_status
33 fan_data
34 fan_data
35 fan_data
4 power_off
5 power_off
6 power_on
7 fan_status
8 fan_data
9 fan_data
Attributes:
alias Ventilator
room Arbeitszimmer
subType SmartFan
verbose 5
Ich habe es mit und ohne Token probiert, leider bekomme ich immer die Antwort "invalid JSON:".
Hier ein Log-Auszug:
2018.08.17 13:13:46 4: XD_AZ_Ventilator: write {"id":30,"method":"miIO.info","params":[""]} (44)
2018.08.17 13:13:46 5: XD_AZ_Ventilator: initSend
2018.08.17 13:13:46 5: XD_AZ_Ventilator Send SUCCESS
2018.08.17 13:13:46 5: XD_AZ_Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2018.08.17 13:13:46 5: XD_AZ_Ventilator: send 21310050000000000519b55d00001b04f458a8664e85b16151728fc3f475d64a57973f5639464511bd94fcbf687541d908f9a17a947df9337f1885b85cefad98610a84dcbd7f2c0351c50a10b5e18bad
2018.08.17 13:13:46 5: XD_AZ_Ventilator Send SUCCESS
2018.08.17 13:13:46 5: XD_AZ_Ventilator > 21310050000000000519b55d00001b04f458a8664e85b16151728fc3f475d64a57973f5639464511bd94fcbf687541d908f9a17a947df9337f1885b85cefad98610a84dcbd7f2c0351c50a10b5e18bad
2018.08.17 13:13:46 5: XD_AZ_Ventilator < 21310020000000000519b55d00001b0300000000000000000000000000000000 (32)
2018.08.17 13:13:46 5: XD_AZ_Ventilator < 21310050000000000519b55d00001b04ffffffffffffffffffffffffffffffff (80)
2018.08.17 13:13:46 5: XD_AZ_Ventilator: decrypted
2018.08.17 13:13:46 2: XD_AZ_Ventilator: invalid JSON:
2018.08.17 13:13:49 4: XD_AZ_Ventilator: write {"id":31,"method":"set_power","params":["on"]} (46)
2018.08.17 13:13:49 5: XD_AZ_Ventilator: send 21310050000000000519b55d00001b072d68ea16690e67013e0a74f67f13956cecac977103d103f01beaf99adfadcaebd2902f8e4c2a21cdcee1374f71f156a78c772eb0269f10a99f45da7f4f75e01a
2018.08.17 13:13:49 5: XD_AZ_Ventilator Send SUCCESS
2018.08.17 13:13:49 5: XD_AZ_Ventilator > 21310050000000000519b55d00001b072d68ea16690e67013e0a74f67f13956cecac977103d103f01beaf99adfadcaebd2902f8e4c2a21cdcee1374f71f156a78c772eb0269f10a99f45da7f4f75e01a
2018.08.17 13:13:49 5: XD_AZ_Ventilator < 21310050000000000519b55d00001b07ffffffffffffffffffffffffffffffff (80)
2018.08.17 13:13:49 5: XD_AZ_Ventilator: decrypted
2018.08.17 13:13:49 2: XD_AZ_Ventilator: invalid JSON:
2018.08.17 13:13:59 4: XD_AZ_Ventilator: write {"id":32,"method":"get_prop","params":["power","speed_level","natural_level","speed"]} (86)
2018.08.17 13:13:59 5: XD_AZ_Ventilator: send 21310080000000000519b55d00001b119f632c3594d23638c50273507bd9ef24fb1d6230096cfeced26ec2644f406b290763ef54311974611cc43fc20fa57732c7da47fd8447ed724e440d6fbe1f5b0a89c5e38cfebc61fd732552de4da9182ff39bacef0028abb286aa9a7345ca4e6cb932208ccf8c1821c914dcd678ff4a46
2018.08.17 13:13:59 5: XD_AZ_Ventilator Send SUCCESS
2018.08.17 13:13:59 5: XD_AZ_Ventilator > 21310080000000000519b55d00001b119f632c3594d23638c50273507bd9ef24fb1d6230096cfeced26ec2644f406b290763ef54311974611cc43fc20fa57732c7da47fd8447ed724e440d6fbe1f5b0a89c5e38cfebc61fd732552de4da9182ff39bacef0028abb286aa9a7345ca4e6cb932208ccf8c1821c914dcd678ff4a46
2018.08.17 13:13:59 5: XD_AZ_Ventilator < 21310080000000000519b55d00001b11ffffffffffffffffffffffffffffffff (128)
2018.08.17 13:13:59 5: XD_AZ_Ventilator: decrypted
2018.08.17 13:13:59 2: XD_AZ_Ventilator: invalid JSON:
2018.08.17 13:15:13 4: XD_AZ_Ventilator: write {"id":33,"method":"get_prop","params":["angle","angle_enable","power","bat_charge","battery","speed_level","natural_level","buzzer","led_b","poweroff_time","ac_power","child_lock","temp_dec","humidity","speed"]} (211)
2018.08.17 13:15:13 5: XD_AZ_Ventilator: send 21310100000000000519b55d00001b5b3d84d17103330c58b6e8761d1902469a3bb4b1b6a0cec0b7ea9008e9d9210d4803bccfa1d252dc0b907aa49a44ee65df1f1a8131205a5dae433fc066c07823a94681d101ae211d3c9a4f2f64801656c31d39630482d0a551362117bc294d037594d1a0cc65873204d518fcaed1ea14ce0e0f187da8fa91f8c5515e7467cdfd106d60bb0cb13f6e2ed8cc0fc765c3cbfadd9a0b4c243559115ae464ec609a5616185871451fa358de615b333ba94fc2c901bbeed9c0c3a104ecdf781a5ad4a6fa93f775c1d12e0307f362aae45c3690b62d465038f9e5c59b90dbc905be5229073572eb4dfec359bbeb3fcc47134f8b90
2018.08.17 13:15:13 5: XD_AZ_Ventilator Send SUCCESS
2018.08.17 13:15:13 5: XD_AZ_Ventilator > 21310100000000000519b55d00001b5b3d84d17103330c58b6e8761d1902469a3bb4b1b6a0cec0b7ea9008e9d9210d4803bccfa1d252dc0b907aa49a44ee65df1f1a8131205a5dae433fc066c07823a94681d101ae211d3c9a4f2f64801656c31d39630482d0a551362117bc294d037594d1a0cc65873204d518fcaed1ea14ce0e0f187da8fa91f8c5515e7467cdfd106d60bb0cb13f6e2ed8cc0fc765c3cbfadd9a0b4c243559115ae464ec609a5616185871451fa358de615b333ba94fc2c901bbeed9c0c3a104ecdf781a5ad4a6fa93f775c1d12e0307f362aae45c3690b62d465038f9e5c59b90dbc905be5229073572eb4dfec359bbeb3fcc47134f8b90
2018.08.17 13:15:13 5: XD_AZ_Ventilator < 21310100000000000519b55d00001b5bffffffffffffffffffffffffffffffff (256)
2018.08.17 13:15:13 5: XD_AZ_Ventilator: decrypted
2018.08.17 13:15:13 2: XD_AZ_Ventilator: invalid JSON:
Hat jemand eine Idee, woran das liegen könnte?
Viele Grüße
Slanesh
Daran dass der Ventilator mit aktueller Software den Token nicht mehr preisgibt, nehme ich an.
Versuchs mit Auslesen aus nem Backup / der Android Debug App analog zum Sauger.
Hallo zusammen,
ich finde in der SQLite Datenbank von meinem iPhone nur den Token des Staubsaugers aber keinen für den Ventilator. Bin grade noch am Installieren eines Android Emulators, dann teste ich auch nochmal den anderen Weg.
Gruß Slanesh
Zitat von: scourge am 06 Juli 2018, 12:20:47
Für alle die schnell den Token auslesen möchten, die Kollegen aus dem IoBroker Forum haben eine Lösung gefunden:
Einfach die russische modifizierte Mi Home App installieren, dort steht der Token in den Einstellungen unter "Network information" direkt im Klartext.
Kein Auslesen oder Backup nötig.
Ich hoffe ich darf den Link zu GitHub hier posten:
https://github.com/MeisterTR/ioBroker.mihome-vacuum/blob/master/README.md#easy-token-discovery-on-android (https://github.com/MeisterTR/ioBroker.mihome-vacuum/blob/master/README.md#easy-token-discovery-on-android)
Gruß
Scourge
Vll funktioniert der Weg bei dir! Hat vor kurzen auch bei mir geklappt.Zumindest mit dem Roboter! Hast du die Variante mit oder ohne akku?Würde gern den mit Akku haben,aber die sind mittlerweile arsch teuer geworden.
Grüße
Zitat von: scourge am 14 August 2018, 21:30:50
Hi Omer,
versuch mal mit get data beim Sauger die readings neu einzulesen.. Bei mir blieb das auch alle Nase lang hängen. Ich habs jetzt mit ner automatisierten get data Abfrage (alle 2 Minuten ) gelöst, seitdem keine Probleme mit dem Status.
defmod at_sauger_data_update at +*00:02:00 get sauger data
Hallo, habe ich gemacht. Leider kein improvement. In der Vergangenheit hatte ich stati wie 'charging', 'cleaning',... welche ich lesen konnte (ich habe damit LEDs in verschiedenen Raeumen gesteuert) und das ist jetzt nicht mehr moeglich da ich irgendwie nur noch den Status 'connected' kriege.
Kannst Du die verschiedenen Statusmeldungen kriegen?
Omer
Seltsam. Ich habe hier einen v.1 Sauger ohne CE Zeichen mit der neuesten Software drauf.
In FHEM:
define Sauger XiaomiDevice rockrobo.fritz.box <Token>
Dort wird mir auch der Status mitgeteilt. Hat bisher immer bestens funktioniert. Auch ohne "Tricks".
Wird in der app auch keine Statusänderung angezeigt? Dann ist FHEM wohlmöglich nicht dran schuld...
Das Konstrukt:
"defmod at_sauger_data_update at +*00:02:00 get sauger data"
Kannst du auch mit
"attr sauger intervalData 120"
im entspechenden define erreichen.
Zitat von: RappaSan am 18 August 2018, 09:05:24
Das Konstrukt:
"defmod at_sauger_data_update at +*00:02:00 get sauger data"
Kannst du auch mit
"attr sauger intervalData 120"
im entspechenden define erreichen.
Hallo,
der Tipp mit
attr sauger intervalData 120 hat geholfen.
Jetzt sind die Stati wieder alle verfügbar.
Vielen Dank.
Omer
P.S. Gibt es einen Tipp wie häufig man die Daten auslesen soll (ich habe einen Raspi 3+)?
Das ist glaub ich eher unkritisch und kommt auf die eigene Situation an. :)
Kürzer als 60 Sekunden geht eh nicht, länger schon.
Zitat von: omer1143 am 18 August 2018, 15:52:45Gibt es einen Tipp wie häufig man die Daten auslesen soll (ich habe einen Raspi 3+)?
Kommt darauf an, was du mit den Daten machst und wie du den Sauger startest.
Wenn du ihn nur von FHEM aus startest ist es komplett egal.
Wenn du ihn auch von der App aus startest und nur zeitnah mitbekommen willst dass gesaugt wurde, reicht ein Intervall das kleiner ist, als ein Saugvorgang deiner Wohnung.
Kritisch wird es, wenn du auf einen extern gestarteten Saugvorgang direkt reagieren musst. Dann solltest du ein kürzeres Intervall wählen.
Ich steuere ihn mittlerweile auch nur noch über FHEM. Die app benutze ich nur zwischendurch zur Beobachtung und zum Firmware-update.
Mit FHEM kann ich ihn viel umfangreicher steuern (z.B. Zonenreinigung zu bestimmten Zeiten, Komplettreinigung zu anderen Zeiten, automatisches fahren zum Entladepunkt, wenn ich nach Hause komme).
Zitat von: Esjay am 17 August 2018, 23:56:59
Vll funktioniert der Weg bei dir! Hat vor kurzen auch bei mir geklappt.Zumindest mit dem Roboter! Hast du die Variante mit oder ohne akku?Würde gern den mit Akku haben,aber die sind mittlerweile arsch teuer geworden.
Grüße
Danke, habe es jetzt hinbekommen. Ich hatte nach der Registrierung des Ventilators in der Mi Home App ein Backup der sqlite Datenbank gezogen in dem nur der Sauger auftauchte. Als ich das ganze dann 6 Stunden später wiederholt habe, war dann plötzlich der Ventilator drin.
Ich habe die Version des Ventilators ohne Akku. Der Versand hat ca. 6 Wochen gedauert, angegeben waren 10-12 Tage. Die Nachfrage nach Ventilatoren ist wohl gerade nicht nur bei uns recht hoch ;)
Gruß Slanesh
Zitat von: RappaSan am 19 August 2018, 12:12:25
Ich steuere ihn mittlerweile auch nur noch über FHEM. Die app benutze ich nur zwischendurch zur Beobachtung und zum Firmware-update.
Mit FHEM kann ich ihn viel umfangreicher steuern (z.B. Zonenreinigung zu bestimmten Zeiten, Komplettreinigung zu anderen Zeiten, automatisches fahren zum Entladepunkt, wenn ich nach Hause komme).
Wie hast du denn die Zonenreinigung in FHEM umgesetzt? Das ist etwas was ich momentan nur per App durch markieren des zu reinigenden Bereichs hinbekomme. Mich würde interessieren wie man eine Zone definierne kann, da ich den Sauger gerne öfter nur in die Küche schicken würde statt die komplette Wohnung reinigen zu lassen.
Gruß Slanesh
Hallo,
ich hab dazu einen msg_dialog geschrieben, wo mit ich die Räume für alle 4 Map-Aurichtungen hinterlegen kann.
Besteht daran Interesse?
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Gerne, nur her damit. Man kann sich immer etwas an/abkucken... :D
Die Zonen kopiere ich mittels Flole-app und trage sie entsprechend in zone_names ein.
O.k.
einmal das msg_dialog:
defmod Roboter_Dialog msgDialog {\
"5. Saugroboter": {\
"match": "\/?Robot",\
"message": [\
"{return('(Stop|zur Dock) ') if(ReadingsVal('Xiaomi', 'state', '') ne 'Docked' && ReadingsVal('Xiaomi', 'state', '') ne 'Charging')}",\
"{return('(Wohnzimmer|Küche) ') if(ReadingsVal('Xiaomi', 'state', '') eq 'Docked' || ReadingsVal('Xiaomi', 'state', '') eq 'Charging')}",\
"{return('(Esszimmer|Flur) ') if(ReadingsVal('Xiaomi', 'state', '') eq 'Docked' || ReadingsVal('Xiaomi', 'state', '') eq 'Charging')}",\
"{return('(komplett) ') if(ReadingsVal('Xiaomi', 'state', '') eq 'Docked' || ReadingsVal('Xiaomi', 'state', '') eq 'Charging')}",\
"{return('(Staubbehälter leeren) ') if(ReadingsVal('Behaelter', 'state', '') ne '0')}",\
"{return('(quiet| balanced| turbo| max) ') if(ReadingsVal('Xiaomi', 'state', '') ne 'Docked' && ReadingsVal('Xiaomi', 'state', '') ne 'Charging')}",\
"(Setup|Menü) ",\
"Status: [Xiaomi:state]",\
"Modus: [Xiaomi:cleaning_mode]",\
"Akku: [Xiaomi:batteryPercent]%",\
"Staubbehälter: [Behaelter:prozent]%",\
"Map-Ausrichtung: [MapAusrichtung:state]",\
"Autonome Reinigung: [Autonome_Reinigung:state]",\
" ",\
"Wo soll gesaugt werden?"\
],\
"Setup": {\
"message": [\
"(Autonome Reinigung AN ) ",\
"(Autonome Reinigung AUS ) ",\
"(Map Ausrichtung ) ",\
"(Zonen-Koordinaten ) ",\
"(Point-Koordinaten ) ",\
"(heraus fahren|auf Dock ) ",\
"(abbrechen|zurück) ",\
" ",\
"Map-Ausrichtung: [MapAusrichtung:state]",\
"Was möchtest du tun?"\
],\
"Map Ausrichtung": {\
"message": [\
"( |oben | ) ",\
"(links | |rechts ) ",\
"( |unten | ) ",\
"(abbrechen|zurück) ",\
" ",\
"Wo befindet sich die Ladestation auf der Map?"\
],\
"Ausrichtung": {\
"match": "(rechts|links|oben|unten)",\
"commands": [\
"set MapAusrichtung $message",\
"sleep 3;; set $SELF say @$recipient Robot"\
]\
} \
\
},\
"Autonome Reinigung AN": {\
"commands": [\
"set Autonome_Reinigung AN",\
"sleep 3;;set $SELF say @$recipient Robot"\
]\
},\
"Autonome Reinigung AUS": {\
"commands": [\
"set Autonome_Reinigung AUS",\
"sleep 3;;set $SELF say @$recipient Robot"\
]\
},\
"heraus fahren": {\
"commands": [\
"trigger Xiaomi herausfahren",\
"set $SELF say @$recipient Robot"\
]\
},\
"auf Dock": {\
"commands": [\
"{my $Laut = '$message';;;; fhem(\"set saugBot silentmsg \" . '@240968237' . \" $Laut\");;;;}",\
"set Xiaomi charge",\
"set $SELF say @$recipient Robot"\
]\
},\
"Testzone saugen": {\
"commands": [\
"{my $Laut = '$message';;;; fhem(\"set saugBot silentmsg \" . '@240968237' . \" $Laut\");;;;}",\
"set $SELF say @$recipient Robot"\
]\
},\
"Zonen-Koordinaten": {\
"message": [\
"(Wohnzimmer) ",\
"(Esszimmer ) ",\
"(Küche ) ",\
"(Küche & Esszimmer ) ",\
"(Flur ) ",\
"(abbrechen|zurück) ",\
" ",\
"Welche Zone möchtest du eingeben?"\
],\
"Wohnzimmer": {\
"message": [\
" Koordinaten eingeben"\
],\
"Koordinaten": {\
"match": "[^/]+",\
"commands": [\
"setreading Xiaomi [MapAusrichtung:state]_zone_Wohnzimmer $message",\
"trigger Xiaomi Zoneschreiben",\
"set $SELF say @$recipient Robot|Setup"\
]\
}\
\
},\
"Esszimmer": {\
"message": [\
" Koordinaten eingeben"\
],\
"Koordinaten": {\
"match": "[^/]+",\
"commands": [\
"setreading Xiaomi [MapAusrichtung:state]_zone_Esszimmer $message",\
"trigger Xiaomi Zoneschreiben",\
"set $SELF say @$recipient Robot|Setup"\
]\
}\
\
},\
"Küche & Esszimmer": {\
"message": [\
" Koordinaten eingeben"\
],\
"Koordinaten": {\
"match": "[^/]+",\
"commands": [\
"setreading Xiaomi [MapAusrichtung:state]_zone_KueEssz $message",\
"trigger Xiaomi Zoneschreiben",\
"set $SELF say @$recipient Robot|Setup"\
]\
}\
\
},\
"Flur": {\
"message": [\
" Koordinaten eingeben"\
],\
"Koordinaten": {\
"match": "[^/]+",\
"commands": [\
"setreading Xiaomi [MapAusrichtung:state]_zone_Flur $message",\
"trigger Xiaomi Zoneschreiben",\
"set $SELF say @$recipient Robot|Setup"\
]\
}\
\
},\
"Küche": {\
"message": [\
" Koordinaten eingeben"\
],\
"Koordinaten": {\
"match": "[^/]+",\
"commands": [\
"setreading Xiaomi [MapAusrichtung:state]_zone_Kueche $message",\
"trigger Xiaomi Zoneschreiben",\
"set $SELF say @$recipient Robot|Setup"\
]\
}\
}\
\
},\
\
"Point-Koordinaten": {\
"message": [\
"(Wohnzimmer) ",\
"(Esszimmer ) ",\
"(Küche ) ",\
"(Flur ) ",\
"(Abfall ) ",\
"(abbrechen|zurück) ",\
" ",\
"Welchen Point möchtest du eingeben?"\
],\
"Wohnzimmer": {\
"message": [\
" Point-Koordinaten eingeben"\
],\
"Koordinaten": {\
"match": "[^/]+",\
"commands": [\
"setreading Xiaomi [MapAusrichtung:state]_point_Wohnzimmer $message",\
"trigger Xiaomi Pointschreiben",\
"set $SELF say @$recipient Robot|Setup"\
]\
}\
\
},\
"Esszimmer": {\
"message": [\
" Point-Koordinaten eingeben"\
],\
"Koordinaten": {\
"match": "[^/]+",\
"commands": [\
"setreading Xiaomi [MapAusrichtung:state]_point_Esszimmer $message",\
"trigger Xiaomi Pointschreiben",\
"set $SELF say @$recipient Robot|Setup"\
]\
}\
\
},\
"Abfall": {\
"message": [\
" Point-Koordinaten eingeben"\
],\
"Koordinaten": {\
"match": "[^/]+",\
"commands": [\
"setreading Xiaomi [MapAusrichtung:state]_point_Abfall $message",\
"trigger Xiaomi Pointschreiben",\
"set $SELF say @$recipient Robot|Setup"\
]\
}\
\
},\
"Flur": {\
"message": [\
" Point-Koordinaten eingeben"\
],\
"Koordinaten": {\
"match": "[^/]+",\
"commands": [\
"setreading Xiaomi [MapAusrichtung:state]_point_Flur $message",\
"trigger Xiaomi Pointschreiben",\
"set $SELF say @$recipient Robot|Setup"\
]\
}\
\
},\
"Küche": {\
"message": [\
" Point-Koordinaten eingeben"\
],\
"Koordinaten": {\
"match": "[^/]+",\
"commands": [\
"setreading Xiaomi [MapAusrichtung:state]_point_Kueche $message",\
"trigger Xiaomi Pointschreiben",\
"set $SELF say @$recipient Robot|Setup"\
]\
}\
}\
}\
},\
\
"Zone_Saugen": {\
"match": "(Wohnzimmer|Esszimmer|Küche|Flur|komplett)",\
"commands": [\
"set Reinige $message",\
"sleep 3;; set $SELF say @$recipient Robot"\
]\
},\
\
"cleaning_mode": {\
"match": "(quiet|balanced|turbo|max)",\
"commands": [\
"set Xiaomi cleaning_mode $message",\
"set $SELF say @$recipient Robot"\
]\
},\
"Staubbehälter leeren": {\
"commands": [\
"setreading Behaelter Abfall 1",\
"set $SELF say @$recipient Robot"\
]\
},\
"Stop": {\
"commands": [\
"set Xiaomi Pause",\
"set $SELF say @$recipient Robot"\
]\
},\
"zur Dock": {\
"commands": [\
"set Xiaomi charge",\
"set $SELF say @$recipient Robot"\
]\
}\
}\
}
attr Roboter_Dialog allowed everyone,rg_Guest
attr Roboter_Dialog group Telegram_Dialoge
attr Roboter_Dialog room Controll,Robot
attr Roboter_Dialog verbose 0
setstate Roboter_Dialog rg_Guest: Robot
setstate Roboter_Dialog 2018-08-16 14:04:11 state rg_Guest: Robot
Das notify um das Räume attribut zu setzten:
defmod Zone_schreiben_nty notify MapAusrichtung:.*|Xiaomi:Zoneschreiben {\
if (Value("MapAusrichtung") eq "rechts") {\
fhem "attr Xiaomi zone_names Wohnzimmer:".ReadingsVal("Xiaomi","rechts_zone_Wohnzimmer","")." Esszimmer:".ReadingsVal("Xiaomi","rechts_zone_Esszimmer","")." Küche:".ReadingsVal("Xiaomi","rechts_zone_Kueche","")." Flur:".ReadingsVal("Xiaomi","rechts_zone_Flur","")." komplett:".ReadingsVal("Xiaomi","rechts_zone_Wohnzimmer","").",".ReadingsVal("Xiaomi","rechts_zone_KueEssz","").",".ReadingsVal("Xiaomi","rechts_zone_Flur","");;\
}elsif (Value("MapAusrichtung") eq "links") {\
fhem "attr Xiaomi zone_names Wohnzimmer:".ReadingsVal("Xiaomi","links_zone_Wohnzimmer","")." Esszimmer:".ReadingsVal("Xiaomi","links_zone_Esszimmer","")." Küche:".ReadingsVal("Xiaomi","links_zone_Kueche","")." Flur:".ReadingsVal("Xiaomi","links_zone_Flur","")." komplett:".ReadingsVal("Xiaomi","links_zone_Wohnzimmer","").",".ReadingsVal("Xiaomi","links_zone_KueEssz","").",".ReadingsVal("Xiaomi","links_zone_Flur","");;\
}elsif (Value("MapAusrichtung") eq "oben") {\
fhem "attr Xiaomi zone_names Wohnzimmer:".ReadingsVal("Xiaomi","oben_zone_Wohnzimmer","")." Esszimmer:".ReadingsVal("Xiaomi","oben_zone_Esszimmer","")." Küche:".ReadingsVal("Xiaomi","oben_zone_Kueche","")." Flur:".ReadingsVal("Xiaomi","oben_zone_Flur","")." komplett:".ReadingsVal("Xiaomi","oben_zone_Wohnzimmer","").",".ReadingsVal("Xiaomi","oben_zone_KueEssz","").",".ReadingsVal("Xiaomi","oben_zone_Flur","");;\
}elsif (Value("MapAusrichtung") eq "unten") {\
fhem "attr Xiaomi zone_names Wohnzimmer:".ReadingsVal("Xiaomi","unten_zone_Wohnzimmer","")." Esszimmer:".ReadingsVal("Xiaomi","unten_zone_Esszimmer","")." Küche:".ReadingsVal("Xiaomi","unten_zone_Kueche","")." Flur:".ReadingsVal("Xiaomi","unten_zone_Flur","")." komplett:".ReadingsVal("Xiaomi","unten_zone_Wohnzimmer","").",".ReadingsVal("Xiaomi","unten_zone_KueEssz","").",".ReadingsVal("Xiaomi","unten_zone_Flur","");;\
}}
attr Zone_schreiben_nty room Robot
setstate Zone_schreiben_nty 2018-08-13 08:14:57
setstate Zone_schreiben_nty 2018-08-10 23:44:35 state active
Das gleiche für die Point's:
defmod Point_schreiben_nty notify MapAusrichtung:.*|Xiaomi:Pointschreiben {\
if (Value("MapAusrichtung") eq "rechts"){\
fhem "attr Xiaomi point_names Garage:[25700,25600] Startpunkt:[25000,27850] komplett:".ReadingsVal("Xiaomi","rechts_point_Wohnzimmer","")." Wohnzimmer:".ReadingsVal("Xiaomi","rechts_point_Wohnzimmer","")." Esszimmer:".ReadingsVal("Xiaomi","rechts_point_Esszimmer","")." Küche:".ReadingsVal("Xiaomi","rechts_point_Kueche","")." Flur:".ReadingsVal("Xiaomi","rechts_point_Flur","")." Abfall:".ReadingsVal("Xiaomi","rechts_point_Abfall","");;\
}elsif (Value("MapAusrichtung") eq "links"){\
fhem "attr Xiaomi point_names komplett:".ReadingsVal("Xiaomi","links_point_Wohnzimmer","")." Wohnzimmer:".ReadingsVal("Xiaomi","links_point_Wohnzimmer","")." Esszimmer:".ReadingsVal("Xiaomi","links_point_Esszimmer","")." Küche:".ReadingsVal("Xiaomi","links_point_Kueche","")." Flur:".ReadingsVal("Xiaomi","links_point_Flur","")." Abfall:".ReadingsVal("Xiaomi","links_point_Abfall","");;\
}elsif (Value("MapAusrichtung") eq "oben"){\
fhem "attr Xiaomi point_names komplett:".ReadingsVal("Xiaomi","oben_point_Wohnzimmer","")." Wohnzimmer:".ReadingsVal("Xiaomi","oben_point_Wohnzimmer","")." Esszimmer:".ReadingsVal("Xiaomi","oben_point_Esszimmer","")." Küche:".ReadingsVal("Xiaomi","oben_point_Kueche","")." Flur:".ReadingsVal("Xiaomi","oben_point_Flur","")." Abfall:".ReadingsVal("Xiaomi","oben_point_Abfall","");;\
}elsif (Value("MapAusrichtung") eq "unten"){\
fhem "attr Xiaomi point_names komplett:".ReadingsVal("Xiaomi","unten_point_Wohnzimmer","")." Wohnzimmer:".ReadingsVal("Xiaomi","unten_point_Wohnzimmer","")." Esszimmer:".ReadingsVal("Xiaomi","unten_point_Esszimmer","")." Küche:".ReadingsVal("Xiaomi","unten_point_Kueche","")." Flur:".ReadingsVal("Xiaomi","unten_point_Flur","")." Abfall:".ReadingsVal("Xiaomi","unten_point_Abfall","");;\
}}
attr Point_schreiben_nty comment 25500,25500 ist die Koordinate der Ladestation.\
26500,25500 ist ca 1m weiter rechts. \
24500,25500 ist ca 1m weiter links.\
22500,26500 ist ca 1m höher.\
23509,24500 ist ca 1m tiefer.
attr Point_schreiben_nty room Robot
setstate Point_schreiben_nty active
setstate Point_schreiben_nty 2018-08-10 23:44:35 state active
Damit mein Roby automatisch rinigt hab ich ein heating_control missbraucht, war übrsprünglich mal angedacht an verschiedenen Tagen verschieden Räume reingen zu lassen, mach derzeit aber nur komplett - Reinigung:
defmod Putzplan Heating_Control Putzplan Mo|06:00|komplett Fr|06:00|komplett {\
if (Value("Urlaub_dummy") eq "aus") {\
if ($EVENT ne "komplett") {\
fhem "set Reinige $EVENT";;\
}\
fhem "setreading Putzplan $EVENT 1";;\
}}
attr Putzplan commandTemplate set $NAME $EVENT
attr Putzplan group Aquarium
attr Putzplan room Robot
attr Putzplan userReadings Kueche Esszimmer Wohnzimmer Flur EG
setstate Putzplan komplett
setstate Putzplan 2018-06-12 22:51:01 Esszimmer 0
setstate Putzplan 2018-06-12 22:50:47 Flur 0
setstate Putzplan 2018-06-16 23:06:00 Kueche 1
setstate Putzplan 2018-06-12 22:51:12 Wohnzimmer 0
setstate Putzplan 2018-06-17 21:49:00 auto 1
setstate Putzplan 2018-08-20 06:00:00 currValue komplett
setstate Putzplan 2018-06-17 21:44:20 disabled 0
setstate Putzplan 2018-08-20 06:00:00 komplett 1
setstate Putzplan 2018-08-20 06:00:00 nextUpdate 2018-08-24 06:00:00
setstate Putzplan 2018-08-20 06:00:00 nextValue komplett
setstate Putzplan 2018-08-20 06:00:00 state komplett
darauf reagiert ein DOIF:
defmod auto_do DOIF ([?Putzplan:komplett] eq "1" and ["^Alarmanlage_Status$:^Scharf$"] and [Xiaomi] eq "Docked" and [?Autonome_Reinigung] eq "AN" and ([?$SELF:saugen] eq "bereit" or [?$SELF:saugen] eq "abgebrochen"))\
### Herausfahren START\
(set Xiaomi remotecontrol start, sleep 10, set Xiaomi move 0 4 2000) ##, sleep 3, set Xiaomi move 0 0 5000, sleep 4.5, set Xiaomi move 0 30 5000, sleep 4, set Xiaomi move 30 80 1500, sleep 1.5, set Xiaomi move 0 100 4500, sleep 5.5, set Xiaomi remotecontrol stop)\
##(set Xiaomi goto Garage)\
##(set Xiaomi goto Startpunkt)\
## Herausfahren ENDE\
(set Xiaomi volume 84)\
(set Xiaomi cleaning_mode max)\
(set Xiaomi zone komplett)\
(set saugBot silentmsg @-xxxxxxxx Autonome Reinigung gestartet)\
(setreading $SELF saugen aktiv)\
DOELSEIF\
([Alarmanlage_Status:"Unscharf"] and [?$SELF:saugen] eq "aktiv") ## Abbruch\
(set saugBot silentmsg @-xxxxxxxxxx Reinigung wird abgebrochen)\
(set Xiaomi charge)\
(setreading $SELF saugen abgebrochen)\
DOELSEIF\
([Xiaomi:history_0] =~ " finished cleaning" and [?$SELF:saugen] eq "aktiv") ## Reinigung erfolgreich beendet\
(set saugBot silentmsg @-xxxxxxxxxx EG komplett mit [Xiaomi:last_clean_area] m² in [Xiaomi:last_clean_time] h gesaugt.)\
(setreading Putzplan komplett 0)\
(setreading $SELF saugen fertig)\
DOELSEIF\
(([Xiaomi:"Docked"] or [Xiaomi:"charge"]) and [?$SELF:saugen] eq "fertig") ## zurücksetzen damit bei "Scharf" doif neu startet\
(setreading $SELF saugen bereit)
attr auto_do room Robot
attr auto_do wait 0,10,10,10,10
setstate auto_do cmd_4
setstate auto_do 2018-08-20 09:33:35 Device Xiaomi
setstate auto_do 2018-08-18 17:42:41 cmd 4
setstate auto_do 2018-08-18 17:42:41 cmd_event Xiaomi
setstate auto_do 2018-08-18 17:42:41 cmd_nr 4
setstate auto_do 2018-08-20 08:27:36 e_Alarmanlage_Status_events Unscharf
setstate auto_do 2018-08-20 09:33:35 e_Xiaomi_STATE Docked
setstate auto_do 2018-08-20 09:33:35 e_Xiaomi_events device_uptime: 6.16,wifi_rssi: -33
setstate auto_do 2018-08-18 16:27:39 e_Xiaomi_history_0 2018-08-18 15:23:01: 47.05m² in 1.01h, finished cleaning
setstate auto_do 2018-07-16 19:10:26 mode enabled
setstate auto_do 2018-08-18 17:42:41 saugen bereit
setstate auto_do 2018-08-18 17:42:41 state cmd_4
setstate auto_do 2018-08-18 15:23:11 wait_timer no timer
LG
Marlen
Danke, das mit der Raumausrichtung schaue ich mir mal genauer an und baue es bei mir ein...
Hallo,
hab gerade umgestellt, von regelmäßige Reinigung (Freitag und Montag) auf Anwesenheitszeit-abhängige Reinigung.
Da ja gerade Sommerferien sind, ist mir aufgefallen, dass bereits am Dienstag schon wieder gesagt werden könnte.
Daher hab ich mir was gebastelt, dass die Zeiten von RESIDENT-Modul hochrechnet.
Glaube das ist nicht schlecht, natürlich kann man auch nur zur anwesend sein und viel Dreck machen, aber das ist dann halt so.
Hab auch schon überlegt, je "Heim kommen" (Dreckschuhe) die Verschmutzung ein bisschen hoch zu setzten.....oder je Haustür klingeln (Gäste mit Drecksschuhe).
Jetzt schau ich mal wie es Anwesnheitszeitabhängig klappt.
LG
Marlen
Kann man durch FHEM eine Zonenreinigung unterbrechen und dann fortsetzen?
Durch der App geht das, in Fehm kann man nur die Zone von vorne beginnen.
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Gut möglich, werde ich bei Gelegenheit mal versuchen.
Die nächsten Wochen wird das allerdings nichts.
Hi,
gestern kam der neue Roborock mit Wischfunktion.
Die Firmware ist die neueste.
Mit dem Miitoolkit geht es nicht, da er beim sichern immer ein Passwort verlangt.
Was kann ich tun?
Schau dir mal den Beitrag #1277 von mir an!
Grüße
danke.
Die apk ist nicht mehr runterladbar für android.
Hast du die noch und kannst du sie mir bitte bereitstellen
Ich habs glaube ich
apk gibts hier:
http://www.kapiba.ru/2017/11/mi-home.html
https://cloud.mail.ru/public/4Wrx/5WKezHMmv/MiHome_5.4.6_vevs.apk
dort steht in den Network Settings der Token.
Ich teste nun.
Neue Firmware: 3.3.9_003357
Hat sich schon jemand getraut?
Ich trau mich - wenn sie denn mal angeboten würde...
Weiß wer wie ich für flolevac meine 2 factor authentification von xiaomi ausschalten kann, damit ich die Karte sehen kann?
Zitat von: Marlen am 20 August 2018, 10:00:15
O.k.
einmal das msg_dialog:
"Map-Ausrichtung: [MapAusrichtung:state]",
[...]
LG
Marlen
Hallo Marlen,
wie ermittelst du die "MapAusrichtung"?
Gruß Slanesh
Zitat von: RappaSan am 28 August 2018, 11:08:47
Ich trau mich - wenn sie denn mal angeboten würde...
Wenn du rooten möchtest, solltest du warten bis die neue Version untersucht wurde.
Zitat von: Markus M. am 28 August 2018, 15:14:37
Wenn du rooten möchtest, solltest du warten bis die neue Version untersucht wurde.
wo wird das denn kommuniziert und wo bekommt man die Firmware Versionen fürs rooten zum Download?
Zitat von: lukeman11 am 28 August 2018, 16:44:23
wo wird das denn kommuniziert und wo bekommt man die Firmware Versionen fürs rooten zum Download?
Such nach Dustcloud.
Und warte bis es jemand anders ausprobiert hat ;)
Rooten ist kein Thema für mich.
Hab über die Flole-app die Version eingespielt, aber bisher noch keinen Unterschied feststellen können.
Zitat von: Markus M. am 29 August 2018, 09:53:56
Such nach Dustcloud.
Und warte bis es jemand anders ausprobiert hat ;)
ja na klar, aber dort ist für den roborock die letzte Firmware die 1518. das scheint nicht mehr gepflegt zu werden. mittlerweile ist die 1588 draußen. wo bekommt man sowas denn her?
Du wartest bis sie dort auftaucht.
Das bedeutet dann ziemlich sicher dass das Rooten noch klappt.
Ich habe festgestellt das der Robo V1 sich mittlerweile auf dem Teppich regelmäßig fest fährt, das war früher kein Thema.
Meldung Main Brush blocked.
Habe 3.3.9_003170 drauf un bekomme keine neue angeboten, immer noch China Server.
Gruß Michael
Zitat von: Marlen am 22 August 2018, 15:04:58Kann man durch FHEM eine Zonenreinigung unterbrechen und dann fortsetzen?
resume kommt mit dem morgigen Update
Supi!
[emoji8][emoji8][emoji8]
Gesendet von meinem Aquaris U Plus mit Tapatalk
Neues Reading für den Sauger:
event (z.B. bin_full)
Bitte mal beobachten ob das bei euch funktioniert und welche Werte es annehmen kann.
Eventuell werden die Events nur entweder an die Cloud oder an FHEM geschickt, dann nutzt es wohl nicht viel.
Ich seh' kein Reading "event". :(
Zitat von: Markus M. am 30 August 2018, 20:32:37
resume kommt mit dem morgigen Update
Hallo, leider verbinden sich beide Sauger (Gen1 und 2) nach dem heutigen Update nicht mehr :(
LG
Zitat von: RappaSan am 31 August 2018, 08:44:08Ich seh' kein Reading "event". :(
Kommt auch erst, wenn es ein Event gibt.
Zitat von: pillepalle12 am 31 August 2018, 08:46:38Hallo, leider verbinden sich beide Sauger (Gen1 und 2) nach dem heutigen Update nicht mehr :(
Schon reconnect versucht oder neu gestartet?
Was sagt das Log mit verbose 4? Was sagt ein list?
habe ein paar mal Neugestartet vor dem Post, da ging nichts.
Jetzt ein sudo reboot des Raspis und die Robos sind wieder "Docked" eigenartig... Aber ok :)
trotzdem Danke
Hi,
wie komme ich an das update?
Update in FHEM durchführen, danach FHEM neu starten
update check
update
shutdown restart
Ich habe mir den den Lüfter gekauft, Modell 2018 mit Akku (ZRFFS01ZM) jetzt die Frage, der Akku wird nicht richtig angezeigt, der steht immer auf low hat jemand einen Tip?
Internals:
DEF 192.168.178.57 4xxxx
FD 67
NAME Ventilator
NR 396
STATE ???
TYPE XiaomiDevice
READINGS:
2018-08-31 22:50:35 ac_power on
2018-08-31 22:50:35 angle 120
2018-08-31 22:50:35 angle_enable off
2018-08-31 22:50:35 batteryPercent null
2018-08-31 22:50:35 batteryState low
2018-08-31 22:50:35 buzzer 0
2018-08-31 22:50:35 charging null
2018-08-31 22:50:35 child_lock off
2018-08-31 22:22:55 device_firmware 1.3.1
2018-08-31 22:22:55 device_uptime 9.69
2018-08-31 22:50:35 error none
2018-08-31 22:50:35 humidity null
2018-08-31 22:50:35 led bright
2018-08-31 22:50:35 level 25
2018-08-31 22:50:35 level_on 25
2018-08-31 22:50:35 mode straight
2018-08-31 22:50:35 power on
2018-08-31 22:50:35 poweroff_time 0
2018-08-31 22:50:35 speed 409
2018-08-31 22:50:35 temperature 0
2018-08-31 22:22:59 wifi_auth_fail_count 0
2018-08-31 22:22:59 wifi_conn_fail_count 0
2018-08-31 22:22:59 wifi_conn_success_count 1
2018-08-31 22:22:59 wifi_dhcp_fail_count 0
2018-08-31 22:22:55 wifi_rssi -58
2018-08-31 22:22:59 wifi_state online
helper:
ConnectionState connected
crypt AES
delay 0
dev 055f
id 8b28
ip 192.168.178.57
last_read 1535748635
packetid 5
port 54321
sequence 1535712074
token 4xxxx
packet:
Attributes:
room 50 Büro
subType SmartFan
Zitat von: Typ1er am 31 August 2018, 22:38:36
Ich habe mir den den Lüfter gekauft, Modell 2018 mit Akku (ZRFFS01ZM) jetzt die Frage, der Akku wird nicht richtig angezeigt, der steht immer auf low hat jemand einen Tip?
Kann sein dass sch wieder ein paar Sachen geändert haben.
Warum stehen bei den Internals eigentlich keine Werte wie model?
Probier mal
get Ventilator device_info bei verbose 4 und schau ins Log bzw. poste die fehlenden Internals.
Hallo Markus,
bin zwar nicht Typ1er, kann aber ebenfalls mit den Infos dienen.
List Ventilator.
Internals:
DEF 192.168.178.89 49exxxxxxxxxxxxxxxxxxx8c08
FD 61
NAME SmartFan
NR 296
STATE natural 19%
TYPE XiaomiDevice
hardware ESP32
mac 7C:xxxxxxxxxxxxx:C9
mcu_firmware 0084
model zhimi.fan.za1
token 49exxxxxxxxxxxxxxxxxxx8c08
wifi_firmware v1.0-3065-g1a2fd62
READINGS:
2018-09-02 18:59:21 ac_power on
2018-09-02 18:59:21 angle 30
2018-09-02 18:59:21 angle_enable off
2018-09-02 18:59:21 batteryPercent null
2018-09-02 18:59:21 batteryState low
2018-09-02 18:59:21 buzzer 0
2018-09-02 18:59:21 charging null
2018-09-02 18:59:21 child_lock off
2018-09-02 18:59:09 device_firmware 1.2.9
2018-09-02 18:59:09 device_uptime 0.47
2018-09-02 18:59:21 error none
2018-09-02 18:59:21 humidity null
2018-09-02 18:59:21 led off
2018-09-02 18:59:21 level 19
2018-09-02 18:59:21 level_on 19
2018-09-02 18:59:21 mode natural
2018-09-02 18:59:21 power on
2018-09-02 18:59:21 poweroff_time 0
2018-09-02 18:59:21 speed 299
2018-09-02 18:37:04 state connected
2018-09-02 18:59:21 temperature 0
2018-09-02 18:59:09 wifi_rssi -81
helper:
ConnectionState connected
crypt AES
delay 0
dev 0569
id 4836
ip 192.168.178.89
last_read 1535907561
packetid 6
port 54321
sequence 1535905859
token 49exxxxxxxxxxxxxxxxxxxxxxxxc08
packet:
Attributes:
stateFormat mode level%
subType SmartFan
verbose 4
Get SmartFan device_info Verbose 4
2018.09.02 19:02:49 4: SmartFan: write {"id":6,"method":"miIO.info","params":[""]} (43)
2018.09.02 19:02:49 4: SmartFan: parse id 6 / device_info
2018.09.02 19:02:49 4: SmartFan: msg ref is HASH
Get SmartFan device_info Verbose 5
2018.09.02 19:04:21 5: SmartFan: send Viele Zahlen
2018.09.02 19:04:21 5: SmartFan Send SUCCESS
2018.09.02 19:04:21 5: SmartFan > Ganz viele Zahlen
2018.09.02 19:04:22 5: SmartFan < Noch mehr Zahlen
2018.09.02 19:04:22 5: SmartFan: decrypted
{"result":[30,"off","on","null","null",19,19,0,2,0,"on","off","null","null",342],"id":8}
2018.09.02 19:04:22 5: SmartFan: parse id 8
{
'result' => [
30,
'off',
'on',
'null',
'null',
19,
19,
0,
2,
0,
'on',
'off',
'null',
'null',
342
],
'id' => 8
}
Get SmartFan data verbose 4
2018.09.02 19:09:54 4: SmartFan: write {"id":11,"method":"get_prop","params":["angle","angle_enable","power","bat_charge","battery","speed_level","natural_level","buzzer","led_b","poweroff_time","ac_power","child_lock","temp_dec","humidity","speed"]} (211)
2018.09.02 19:09:55 4: SmartFan: parse id 11 / fan_data
2018.09.02 19:09:55 4: SmartFan: msg ref is ARRAY
Falls noch etwas fehlt, sag bescheid!
Grüße
Zitat von: Esjay am 02 September 2018, 19:12:15
Hallo Markus,
bin zwar nicht Typ1er, kann aber ebenfalls mit den Infos dienen.
Falls noch etwas fehlt, sag bescheid!
Naja, die Sensoren im Ventilator fehlen, wie es aussieht :(
Auch in der Xiaomi App meldet das Ding weder den Batteriestand, noch die Temperatur oder Luftfeuchtigkeit, oder?
Probier mal die Version im Anhang nach
deletereading SmartFan .*
Damit sollten dann zumindest die nicht verwendeten Readings weg sein.
Ist korrekt. Readings kommen nicht mehr rein.
Kann es sein,dass das seitens Xiaomi noch nicht freigegeben ist,oder kannst du klar sagen,dass es die Batterie readings einfach nicht mehr gibt?
Grüße
Zitat von: Esjay am 03 September 2018, 21:32:51
Ist korrekt. Readings kommen nicht mehr rein.
Kann es sein,dass das seitens Xiaomi noch nicht freigegeben ist,oder kannst du klar sagen,dass es die Batterie readings einfach nicht mehr gibt?
Sollten sie irgendwann in der App auftauchen, gib Bescheid.
Ich würde aber nicht darauf wetten dass sie noch kommen :(
Der neue Code ist ab morgen im Update, danke für's Testen!
Ich hab den Fuß aufgeschraubt. Drinnen ist ein Netzteil und der Akku. Vom Netzteil geht ein 2 adriges Kabel zum Akku und dann in das Standrohr. Also unwahrscheinlich das der Akku überwacht wird.
Das ist auch ein Weg, diese Frage ein für allemal zu beantworten :)
Die Sensoren haben sie dann wohl leider auch eingespart.
Zitat von: Markus M. am 30 August 2018, 22:18:14
Neues Reading für den Sauger:
event (z.B. bin_full) ...
Das Reading
event ist da, momentan mit
error10.
Da ich den Behälter absichtlich nicht geleert habe könnte das die Meldung für "bin_full" sein.
Oder hat jemand schon andere Erkenntnisse?
Danke
Erdnar
Ne, das wäre nach dem reinen bin Timer dann eigentlich nur bin_full
error10 dürfte ein blockierter Filter sein. Hattest du das gleichzeitig auch im error Reading?
nö, error und error_code hatten sich auf none geeinigt ;)
Hallo Markus, Du wolltest doch die events sammeln...
Mein Sauger V1 hat momentan dort goto_target_succ stehen.
Noch ein event:
back_to_dock
Werde weiter beobachten.
Markus,
vielen Dank für das tolle Modul.
Habe damit zwei Sauger an FHEM angebunden.
Eine Frage habe ich: wenn ich z.B. mit set volume 50 die Lautstärke setze, passiert ewig lange nichts. Irgendwann ist die Lautstärke dann auf 50 gesetzt.
Bin ich zu ungeduldig oder wird eine Änderung erst verzögert angezeigt?
Vielen Dank.
@RappaSan:
bekomme keine events.
model: rockrobo.vacuum.v1
device_firmware: 3.3.9_003254
aktuelle FHEM version.
Der Staubsauger ist nicht gerooted.
Weder im Event-Monitor noch in der DeviceOverview werden events angezeigt.
Hast Du mir Tips?
ich hätte auch noch ein event:
zoned_clean_succ
Firmware: 3.3.9_001598
Danke für die Events! Meiner hat seitdem keine mehr ausgespuckt.
Wenn ihr keine seht ist das also relativ normal.
Zitat von: Mave am 09 September 2018, 09:09:31Eine Frage habe ich: wenn ich z.B. mit set volume 50 die Lautstärke setze, passiert ewig lange nichts. Irgendwann ist die Lautstärke dann auf 50 gesetzt.
Bin ich zu ungeduldig oder wird eine Änderung erst verzögert angezeigt?
Da fehlt was. Mach morgen mal ein Update.
Okay, danke.
Muss der Staubsauger gerooted sein um die events zu erhalten?
Zitat von: thymjan am 09 September 2018, 14:05:58Muss der Staubsauger gerooted sein um die events zu erhalten?
Nein. Warum das aber wahrscheinlich generell nicht zuverlässig klappen wird, hab ich weiter oben erklärt.
Ich hab seit dem ersten Test auch kein einziges Event mehr erhalten.
Hab ein ganz komisches Phänomen!
Während des Zone-Clean wird die map überschrieben ohne die alte zu löschen!
Hätte das schon mal jemand?
Wodurch kann das kommen?
Anbei ein Screenshot, man sieht das die map nochmal um ca. 30° nach rechts gedreht drauf ist.
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Teppichvorleger mitgeschleift? Bürste gereinigt und Staubsauger leicht versetzt wieder umgedreht? Größere Möbelstücke wärend dem Saugvorgang bewegt?
Sowas kann passieren wenn die Räder durchdrehen und der darüber gemessene Winkel dann nicht mehr mit der tatsächlichen Position übereinstimmt. Teppich oder ein fehlgeschlagener Kletterversuch irgendwo? Irgendwo in Raummitte?
Bei mir beisst er sich zwar ab und zu an der Waage die Zähne aus, so sah die Map aber ehrlich gesagt noch nicht aus. Nur krumm.
Zitat von: Markus M. am 09 September 2018, 13:39:27
Da fehlt was. Mach morgen mal ein Update.
Geht erst, nachdem ich 2 Mal auf set gedrückt habe.....
Zitat von: Mave am 10 September 2018, 21:26:19Geht erst, nachdem ich 2 Mal auf set gedrückt habe.....
Zu schnell? :) Die Lautstärke sollte exakt 5 Sekunden nach dem Setzen neu eingelesen werden.
Zitat von: Markus M. am 10 September 2018, 17:33:58
Sowas kann passieren wenn die Räder durchdrehen und der darüber gemessene Winkel dann nicht mehr mit der tatsächlichen Position übereinstimmt. Teppich oder ein fehlgeschlagener Kletterversuch irgendwo? Irgendwo in Raummitte?
Bei mir beisst er sich zwar ab und zu an der Waage die Zähne aus, so sah die Map aber ehrlich gesagt noch nicht aus. Nur krumm.
Ne, kann eigentlich nicht sein, Möbelstücke bzw. Rober herumgedreht hab ich auch nicht!
Hab mich aber gewundert, das er wieder zurück an die LS gefunden hat.
LG
Marlen
Eigentlich muss das Problem am Drehpunkt der Karte passiert sein? An der Türschwelle links unten?
Guten Morgen zusammen,
vielleicht habe ich es überlesen, oder ich bin zu doof: Ich habe mir 4 Zonen eingerichtet die auch wunderbar funktioniert haben - mit Betonung auf HABEN.
Seit der letzten Komplettreinigung passiert es, wenn ich ihm "sage" er soll die Küche reinigen, ganz kurz aus dem Dock fährt und sofort wieder rein. Er sagt auch "Starte Zonenreinigung" und ca. 5 sec. später "Zonenreinigung abgeschlossen" und sofort danach "Lade." Ich habe die Konfiguration nicht angefasst und nichts geändert. Kann das irgendwie mit der Ausrichtung zusammenhängen?
In der Mi und auch in der Folel App sehe ich dass die Karte eine andere Ausrichtung hat. Wie passiert sowas, bzw. wie kann ich das verhindern?
Danke und einen schönen Tag
wolf
Karte gedreht? Klick mal in der App auf Zonen Reinigung, erst dann wird die Karte aktualisiert.
(https://uploads.tapatalk-cdn.com/20180911/6e6dea8cb4274863ab6cb2138582da50.png)
Nach der Zonenreinigung sieht die letzte Karte so aus. Kommt mir vor wie ein paar Beiträge vorher.
Ich verstehe es nicht.
Gesendet von iPhone mit Tapatalk Pro
Interessant. Ist das doppelt oder ist deine Wohnung unten so schräg und es ist nur gedreht?
Habt ihr alle schon ein Update auf die letzte Version von vor einer Woche gemacht?
Nein, ich habe das Update bisher noch nicht gemacht - es lief gerade so gut alles [emoji85].
Sollte ich das Update durchführen?
Gesendet von iPhone mit Tapatalk Pro
Zitat von: Markus M. am 11 September 2018, 11:45:28
Interessant. Ist das doppelt oder ist deine Wohnung unten so schräg und es ist nur gedreht?
Habt ihr alle schon ein Update auf die letzte Version von vor einer Woche gemacht?
Nein, meine Wohnung ist nicht schräg! Die Map wurde schräge drüber geschrieben!
Hab das letzte Update drauf.....vielleicht liegt es daran!?
Ich habe das Update durchgeführt und mache jetzt Mal eine gesamtreinigung, erstelle neue Koordination und berichte wieder.
Gesendet von iPhone mit Tapatalk Pro
Die Frage mit der schrägen Wohnung ging an Wolfram.
Ich hätte das Update mal noch nicht gemacht.
Ich bleibe lieber beim Rooten, die neue Version beinhaltet wohl verdächtigen Code und ist noch nicht vollständig getestet.
Ach so, ging an mich.... Nein, auch meine Wohnung ist nicht schräg. Ich warte gerade auf die neue Karte.....
Gesendet von iPhone mit Tapatalk Pro
@wolfram: Ich starte den automatischen Reinigungsvorgang und breche diesen ab, schicke den robbi zurück zum dock, bis wieder die ursprüngliche Ausrichtung vorliegt.
Habe ich die ursprüngliche Ausrichtung wieder, wird der robbi auf Erkundungstour geschickt: Eine Zonenreinigung durch den Flur, die aber nur an drei Aussichtspunkten (vor offenen Türen z.B.) eine 25cm2 Fläche ,,reinigt", damit wird innerhalb zwei Minuten ein komplettes Kartengerüst erstellt und meine ursprüngliche Zonen funktionieren wieder.
Ach so, ja...
Eine Grundkarte für die Zonen wird nur bei einer normalen Komplettreinigung erstellt!
Zitat von: thymjan am 11 September 2018, 13:56:31
Ich starte den automatischen Reinigungsvorgang und breche diesen ab, schicke den robbi zurück zum dock, bis wieder die ursprüngliche Ausrichtung vorliegt.
Das machst du dann sooft, BIS die ursprüngliche Ausrichtung vorliegt??? Oder wie?
ja, 2-3 mal meist
Hab hier mal was beschrieben https://forum.fhem.de/index.php/topic,73052.msg828630.html#msg828630 (https://forum.fhem.de/index.php/topic,73052.msg828630.html#msg828630) wie ich für alle 4 möglichen Fälle die Zonen hinterlege.
Ohne Root gibt es immer noch keinen Weg, die Mapausrichtung heraus zu bekommen, oder?
LG
Marlen
Guten Abend,
also bei mir läuft es jetzt wieder - die Frage ist nur: wie lange.....
Aktueller STand ist also, aktuellste Firmware ist drauf, kein Root und die Mapausrichtung scheint wieder "normal" zu sein.
Ich stelle mir nur die Frage: wann ändert sich die Mapausrichtung? Die Idee mit dem Losfahren und Abbrechen von @thymjan scheint zu funktionieren, aber mich interessiert was genau den Wechsel der Ausrichtung auslöst?
Klar rooten wäre noch ne Möglichkeit, aber ist mir gerade zu anstrengend 8).
und nochmal einen großen Dank an @Marlen für die vielen Inspirationen gerade was den msg-Dialog angeht - hab mir einiges abgeschaut!
Liebe Grüße und einen schönen Abend
wolf
Ich vermute das hängt mit der Länge der "Strahlengänge" des Laserscanners in den ersten Sekunden/Minuten zusammen. Wenn man zu diesem Zeitpunkt die Karte in der App beobachtet ändert sich hier die Orientierung gelegentlich nochmal so, dass die Karte an den hochformatigen Bildschirm des Handys angepasst wird. Kommen später noch Räume dazu ändert sich die Orientierung nicht mehr, die Karte wird dann nur noch verkleinert.
Hallo,
ich weis nicht ob das der richtige Thread ist.
Ich habe zwei Xiaomi Luftreiniger. Einer wird problemlos erkannt und ich kann ich benutzen wie vorgesehen.
Der Zweite wird einfach nicht erkannt, ich bekomme keine Infos vom Gerät.
Zu gleichen Zeit kann ich ihn aber Problem via App bedienen, d.h. er ist Online.
Hatte jemand schon einmal das Problem?
airpurifier_02: initialized, using AES
2018.09.29 11:01:27 2: airpurifier_02: no or incorrect token defined!
2018.09.29 11:01:37 3: airpurifier_02: disconnecting
2018.09.29 11:01:37 2: airpurifier_02: connecting
2018.09.29 11:01:37 3: airpurifier_02: initialized
2018.09.29 11:01:37 3: airpurifier_02: received token: 00000000000000000000000000000000
2018.09.29 11:01:38 2: airpurifier_02: invalid JSON:
Auszug aus dem Logfile.
Laut App haben beide die gleiche Firmware.
Hier noch etwas was evtl. dazu gehört.
2018.09.28 23:14:29 3: airpurifier_01: initialized, using AES
2018.09.28 23:14:29 1: PERL WARNING: Use of uninitialized value $a[3] in numeric eq (==) at ./FHEM/72_XiaomiDevice.pm line 215.
2018.09.28 23:14:29 1: PERL WARNING: Use of uninitialized value $a[3] in numeric eq (==) at ./FHEM/72_XiaomiDevice.pm line 217.
2018.09.28 23:14:29 1: PERL WARNING: Use of uninitialized value $a[3] in numeric eq (==) at ./FHEM/72_XiaomiDevice.pm line 271.
2018.09.28 23:14:29 2: airpurifier_01: no or incorrect token defined!
2018.09.28 23:14:39 3: airpurifier_01: disconnecting
2018.09.28 23:14:39 2: airpurifier_01: connecting
2018.09.28 23:14:39 3: airpurifier_01: initialized
2018.09.28 23:14:39 3: airpurifier_01: received token: ad6865f784fa670a54113b6bd223660a
Zitat von: buliwyf am 29 September 2018, 11:09:51
Ich habe zwei Xiaomi Luftreiniger. Einer wird problemlos erkannt und ich kann ich benutzen wie vorgesehen.
Der Zweite wird einfach nicht erkannt, ich bekomme keine Infos vom Gerät.
Das liegt daran dass du den Token des Geräts nicht kennst und der sich in neueren Firmware Versionen nicht mehr einfach so auslesen lässt.
Such dir eine der Anleitungen zum Auslesen des Tokens beim Staubsauger und probier es analog für den Luftreiniger.
Wahrscheinlich brauchst du dafür eine alte Android App.
Deine Definition muss dann am Ende ca. so aussehen:
define airpurifier_01 XiaomiDevice 192.168.178.123 ad6865f784fa670a54113b6bd223660a
Mit dem Update morgen gibt es dann auch deutlichere Hinweise im Log und keine Fehler mehr.
Hallo Markus,
als erstes vielen Dank für das Modul.
Leider funktioniert es nicht mit meinen Airpurifier.
Folgendes ist im log zu sehen:
2018.10.06 11:45:15 3: Luftreinigung_OG: disconnecting
2018.10.06 11:45:15 2: Luftreinigung_OG: connecting
2018.10.06 11:45:15 3: Luftreinigung_OG: initialized
2018.10.06 11:45:15 5: Luftreinigung_OG: initSend
2018.10.06 11:45:15 5: Luftreinigung_OG Send SUCCESS
2018.10.06 11:45:15 5: Luftreinigung_OG > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Hier der list des Geräts:
Internals:
DEF 192.168.1.106 826f9b3d5a7047316cc59b34dc01ac1c
FD 29
NAME Luftreinigung_OG
NR 24
STATE ???
TYPE XiaomiDevice
helper:
ConnectionState initialized
crypt AES
delay 0
ip 192.168.1.106
packetid 1
port 54321
token 826f9b3d5a7047316cc59b34dc01ac1c
Attributes:
subType AirPurifier
verbose 5
Wird ja immer besser:
https://www.iphone-ticker.de/xiaomi-sauger-bekommen-no-go-zonen-und-virtuelle-barrieren-132094/
Jap,
bin gespannt, wann es in FHEM integriert wird. Habe die 1632 schon auf meinem Roborock installiert.
Weiss jemand ob sich die Lite Version vom Sauger auch in FHEM einbinden laesst? Ich ueberlege grade ob ich fuers Schlafzimmer noch einen davon hole, das sollte ausreichend sein. Hier im Thread habe ich dazu nix gefunden.
EDIT: Um genau zu sein: Xiaomi Roborock Xiaowa Lite C102-00
Zitat von: Nighthawk am 06 Oktober 2018, 05:50:26Leider funktioniert es nicht mit meinen Airpurifier.
Leider keine Ahnung. Da tut sich irgendwie gar nichts.
Token stimmt? FHEM kann die IP erreichen?
Zitat von: lukeman11 am 06 Oktober 2018, 13:46:44bin gespannt, wann es in FHEM integriert wird. Habe die 1632 schon auf meinem Roborock installiert.
Kann dauern, da ich nur einen V1 habe.
Ich muss erst mal irgendwoher die Kommandos bekommen.
Zitat von: hillbicks am 06 Oktober 2018, 23:59:46Weiss jemand ob sich die Lite Version vom Sauger auch in FHEM einbinden laesst?
Ich sehe keinen Grund warum das nicht gehen sollte. Die Kommandos die er beherrscht sollten gleich sein.
Ich sehe aber auch keinen Grund nicht stattdessen einen V1 zu kaufen. Oder gibt's den Lite irgendwo sehr billig?
Zitat von: Markus M. am 07 Oktober 2018, 00:29:48
Ich sehe keinen Grund warum das nicht gehen sollte. Die Kommandos die er beherrscht sollten gleich sein.
Ich sehe aber auch keinen Grund nicht stattdessen einen V1 zu kaufen. Oder gibt's den Lite irgendwo sehr billig?
Gebraucht, aber kaum genutzt 150 Euro VB. Fuer den Preis habe ich bisher noch nirgends den V1 gesehen. Ich werde das mal probieren und berichten ;)
Ich habe einen Xiaomi Sauger V1 und würde ihn gerne über FHEM an eine bestimmte Stelle im Raum schicken.
Jemand eine Idee, wie das funktioniert?
Zitat von: Mave am 13 Oktober 2018, 20:14:34
Ich habe einen Xiaomi Sauger V1 und würde ihn gerne über FHEM an eine bestimmte Stelle im Raum schicken.
Jemand eine Idee, wie das funktioniert?
Goto Koordinaten des Punkts ermitteln (z.B. Flole) und dann dort hin schicken...
attr point_names
set Sauger goto PointName
Oder halt direkt mit Koordinaten...
Gruß, Joachim
Zitat von: Markus M. am 07 Oktober 2018, 00:29:48
Leider keine Ahnung. Da tut sich irgendwie gar nichts.
Token stimmt? FHEM kann die IP erreichen?
Hallo Markus,
Hab nochmal alles neu angelegt, jetzt funktioniert alles, war wohl irgendwo ein Fehler drin.
Danke nochmal für das Modul.
Gruß Alex
Zitat von: MadMax-FHEM am 13 Oktober 2018, 20:43:43
Goto Koordinaten des Punkts ermitteln (z.B. Flole) und dann dort hin schicken...
attr point_names
set Sauger goto PointName
Oder halt direkt mit Koordinaten...
Gruß, Joachim
Moin Joachim,
vielen Dank für Deine Rückmeldung.
Wie kann ich in der Flole App die Koordinaten ermitteln?
Grüße Mave
Ganz einfach. Unter Punkt "Karte" bei "GO" den Punkt bestimmen und "Gehe" länger gedrückt halten. Die Koordinate steht dann in der Zwischenablage.
Mit "Zonenreinigung" wird genauso verfahren.
Super, vielen Dank.
Hallo Markus,
ich habe mir mal dieses Wunderwerk der Technik zugelegt: https://www.banggood.com/de/Original-Xiaomi-Mi-Enhanced-Version-Smart-Wireless-WiFi-Socket-APP-Remote-Timer-Smart-Power-Charger-p-1268405.html?gmcCountry=DE¤cy=EUR&createTmp=1&utm_source=googleshopping&utm_medium=cpc_elc&utm_content=zouzou&utm_campaign=pla-de-elc2-norbg-pc-la01&gclid=EAIaIQobChMIhfr88cKM3gIVSeWaCh34ZgA6EAQYAiABEgJnmfD_BwE&cur_warehouse=CN (https://www.banggood.com/de/Original-Xiaomi-Mi-Enhanced-Version-Smart-Wireless-WiFi-Socket-APP-Remote-Timer-Smart-Power-Charger-p-1268405.html?gmcCountry=DE¤cy=EUR&createTmp=1&utm_source=googleshopping&utm_medium=cpc_elc&utm_content=zouzou&utm_campaign=pla-de-elc2-norbg-pc-la01&gclid=EAIaIQobChMIhfr88cKM3gIVSeWaCh34ZgA6EAQYAiABEgJnmfD_BwE&cur_warehouse=CN)
Es wurde mit deinem Modul problemlos in FHEM eingebunden und kann gesteuert werden.
Das Gerät misst aber auch den Verbrauch, gibt es eine Möglichkeit alle Informationen aus dem Gerät zu bekommen?
Danke und Gruß
Alex
Gibt es mit dem Modul eine Möglichkeit die Fehler abzufragen? Bspw. wenn die Hauptbürste blockiert ist?
In dem Reading "event" tauchen sie bei mir nicht auf.
In Valetudo werden die Fehler korrekt angezeigt. Gibt es eine Möglichkeit die Meldungen von dort in FHEM zu integrieren?
Zitat von: dickdickerson am 18 Oktober 2018, 17:54:27
Gibt es mit dem Modul eine Möglichkeit die Fehler abzufragen? Bspw. wenn die Hauptbürste blockiert ist?
In dem Reading "event" tauchen sie bei mir nicht auf.
In Valetudo werden die Fehler korrekt angezeigt. Gibt es eine Möglichkeit die Meldungen von dort in FHEM zu integrieren?
Du hast noch die Readings error und error_code.
Sieht du da drin den Fehler auch nicht?
Zitat von: Markus M. am 18 Oktober 2018, 18:06:49
Du hast noch die Readings error und error_code.
Sieht du da drin den Fehler auch nicht?
Ah, das hab ich total übersehen bzw. habe ich dort nur "none" drin stehen gehabt :o
Habe jetzt noch mal paar Fehler provoziert und bisschen gewartet.
Funktioniert, danke :)
Zitat von: Nighthawk am 17 Oktober 2018, 05:30:58
Es wurde mit deinem Modul problemlos in FHEM eingebunden und kann gesteuert werden.
Das Gerät misst aber auch den Verbrauch, gibt es eine Möglichkeit alle Informationen aus dem Gerät zu bekommen?
Hast du als
SubType PowerPlug gesetzt?
Welche Readings hast du?
Hallo Markus,
ja, den SubType habe ich gesetzt.
Hier der List:
Internals:
DEF 192.168.0.150 *******************
FD 22
NAME Steckdose
NR 49
STATE off
TYPE XiaomiDevice
READINGS:
2018-10-17 07:12:30 device_firmware 1.3.0_93
2018-10-17 07:12:30 device_uptime 0.08
2018-10-17 17:52:30 error none
2018-10-16 18:19:30 power off
2018-10-17 07:12:29 wifi_auth_fail_count 0
2018-10-17 07:12:29 wifi_conn_fail_count 0
2018-10-17 07:12:29 wifi_conn_success_count 1
2018-10-17 07:12:29 wifi_dhcp_fail_count 0
2018-10-17 07:12:30 wifi_rssi -35
2018-10-17 07:12:29 wifi_state online
helper:
ConnectionState initialized
crypt AES
delay 0
ip 192.168.0.150
packetid 1
port 54321
token **********************
Attributes:
stateFormat power
subType PowerPlug
On/Off funktioniert?
Irgendwie fehlen da ein paar Internals.
Ich weiß nur nicht ob es die nicht zurück gibt oder ich die gar nicht erst abfrage.
Hast du das direkt vor dem List neu initialisiert?
Setz mal verbose 5, geh alle Gets durch die das Device hat und schau was im Log auftaucht.
Hallo Markus,
on/off funktioniert.
Hier ein Logauszug von den gets:
2018.10.23 21:02:06 3: Steckdose_Pi: initialized, using AES
2018.10.23 21:02:16 3: Steckdose_Pi: disconnecting
2018.10.23 21:02:16 2: Steckdose_Pi: connecting
2018.10.23 21:02:16 3: Steckdose_Pi: initialized
2018.10.23 21:02:16 5: Steckdose_Pi: initSend
2018.10.23 21:02:16 5: Steckdose_Pi Send SUCCESS
2018.10.23 21:02:16 5: Steckdose_Pi > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2018.10.23 21:02:16 5: Steckdose_Pi < 213100200000000005811a24000007d300000000000000000000000000000000 (32)
2018.10.23 21:02:21 4: Steckdose_Pi: write {"id":1,"method":"miIO.wifi_assoc_state","params":[""]} (55)
2018.10.23 21:02:21 5: Steckdose_Pi: send 213100600000000005811a24000007d82fe5c517bb64fbb0ed85eec878d95fc6dbf86f0e942ae88ca296c7e6390380e3060c387cd13b0ea7eea7888f348732b19deb4a0854d50a2769e89d3b963aa24357f4c09aac47297d7976f9c57b0ad403
2018.10.23 21:02:21 5: Steckdose_Pi Send SUCCESS
2018.10.23 21:02:21 5: Steckdose_Pi > 213100600000000005811a24000007d82fe5c517bb64fbb0ed85eec878d95fc6dbf86f0e942ae88ca296c7e6390380e3060c387cd13b0ea7eea7888f348732b19deb4a0854d50a2769e89d3b963aa24357f4c09aac47297d7976f9c57b0ad403
2018.10.23 21:02:21 4: Steckdose_Pi: write {"id":2,"method":"miIO.info","params":[""]} (43)
2018.10.23 21:02:21 5: Steckdose_Pi: send 213100500000000005811a24000007d8e2344c6c13cbe4486e1ce8b5359195e577e041a614fef1493804fe130387e131599bb5d7864670df6e7f8745bb716ae7eb3d87f709a7a9d9ca770d916b20e7b7
2018.10.23 21:02:21 5: Steckdose_Pi Send SUCCESS
2018.10.23 21:02:21 5: Steckdose_Pi > 213100500000000005811a24000007d8e2344c6c13cbe4486e1ce8b5359195e577e041a614fef1493804fe130387e131599bb5d7864670df6e7f8745bb716ae7eb3d87f709a7a9d9ca770d916b20e7b7
2018.10.23 21:02:21 5: Steckdose_Pi < 213100a00000000005811a24000007d7591e1b0c6560fb19b4c2dbc59c647fb03d7b78cc6af175c9708715fc360a02bb4c773f1a2d342605ebd1fab6de9b54d4f9fee79e57d1ef86b382cfe901310e32e374fa5a55d44117b74db37c43ea7c8291b928e0f98cae515dc6240a0ef82001089e958224a052275f7ed3d845120955cbfda2d53ed840b73fd8eb829baf5faa4f993d0294788eafef7fbeb73ff73acd (160)
2018.10.23 21:02:21 5: Steckdose_Pi: decrypted
{"result":{"state":"ONLINE","auth_fail_count":0,"conn_succes_count":1,"conn_fail_count":0,"dhcp_fail_count":0},"id":1}
2018.10.23 21:02:21 5: Steckdose_Pi: parse id 1
$VAR1 = {
'result' => {
'auth_fail_count' => 0,
'dhcp_fail_count' => 0,
'conn_succes_count' => 1,
'state' => 'ONLINE',
'conn_fail_count' => 0
},
'id' => 1
};
2018.10.23 21:02:21 4: Steckdose_Pi: parse id 1 / wifi_stats
2018.10.23 21:02:21 4: Steckdose_Pi: msg ref is HASH
2018.10.23 21:02:21 5: Steckdose_Pi < 213101a00000000005811a24000007d7c96d6ea399b18aaf504e2bbf9ec6477f78ca51147274fc714ceadcb744b10ba93a4334beeef5a7f5de47d41425ece50d6c792cab4d3618433d1ccf9a5fd726b68a989696e2404046bb7c6f45251b9b975f36bb167f720d6db1048e309f872b20033ab6e0a8b6b725f9038d097d1462ab66418c773c8d54b8c18267a4cfada1120a8f43693971af31ba12af14f4bb920f605aec2c08a4377dcfe3fb4b6a48ffc9b9a6cd94af6341479419218a597938b94e5b123807c0ca981a511f2bf44b5be7104de3c7ed571c1c1c452166b862b5e050bb5ab1162ab51cb039655bcd4625229ff1da07da2c1a5ec86b707f58909bf36a28409f041fbffe192ff0ccf97309d483f3f8b57d99172c316436b508720e68b675d303f4e322cfd6cdf9824dcb4e316882011a90220afdbd390424da595fb61cce0f6e6b65b041a32a810f0fdb3a4a8c4e77b23b5b62d9778fbc1aa2c9dd1301ca8e109bd137d68a2a967f575c0bbcee902bab032eb15f260fd025dc9176089253050c1a3c21b926266c5bb9f6625430768ce152eaad5276b43530dcc23f22 (416)
2018.10.23 21:02:21 5: Steckdose_Pi: decrypted
{"result":{"life":2007,"token":"123456789009876543211234567890","mac":"YY:YY:YY:YY:YY:YY","fw_ver":"1.3.0_93","hw_ver":"ESP8266","uid":"2162425703","model":"chuangmi.plug.v3","wifi_fw_ver":"1.5.0-dev(7f7a714)","ap":{"rssi":-72,"ssid":"****","bssid":"XX:XX:XX:XX:XX:XX"},"netif":{"localIp":"XXX.XXX.XXX.XXX","mask":"255.255.255.0","gw":"YYY.YYY.YYY.YYY"},"mmfree":9816},"id":2}
2018.10.23 21:02:21 5: Steckdose_Pi: parse id 2
$VAR1 = {
'id' => 2,
'result' => {
'hw_ver' => 'ESP8266',
'ap' => {
'rssi' => -72,
'ssid' => '****',
'bssid' => 'XX:XX:XX:XX:XX:XX'
},
'mac' => 'YY:YY:YY:YY:YY:YY',
'model' => 'chuangmi.plug.v3',
'uid' => '2162425703',
'fw_ver' => '1.3.0_93',
'life' => 2007,
'netif' => {
'localIp' => 'XXX.XXX.XXX.XXX',
'gw' => 'YYY.YYY.YYY.YYY',
'mask' => '255.255.255.0'
},
'token' => '123456789009876543211234567890',
'wifi_fw_ver' => '1.5.0-dev7f7a714',
'mmfree' => 9816
}
};
2018.10.23 21:02:21 4: Steckdose_Pi: parse id 2 / device_info
2018.10.23 21:02:21 4: Steckdose_Pi: msg ref is HASH
2018.10.23 21:02:23 4: Steckdose_Pi: write {"id":3,"method":"get_prop","params":["power", "temperature", "current", "mode", "power_consume_rate", "wifi_led", "power_price"]} (130)
2018.10.23 21:02:23 5: Steckdose_Pi: send 213100b00000000005811a24000007d9b219476b9bdd63f6b8ad4fa7c3eb784ec0c481c406b8ea45138f887df47990dd84ff03960827e80ace7a0ab4a086b4a70ad8b75d7b8e7e7e378a6930989c1b07d36b8ceaad673f94533b6efdf081e73a6ee1f8e7e756585859207c968d96d5c833c72256e3ed1540e6cf6a8effda70700d42c6126c429b20ca6c7a9c08065370084d18235b6607c2668a4c5428512b3d301bffb119352a84216a80c63e9c28f7
2018.10.23 21:02:23 5: Steckdose_Pi Send SUCCESS
2018.10.23 21:02:23 5: Steckdose_Pi > 213100b00000000005811a24000007d9b219476b9bdd63f6b8ad4fa7c3eb784ec0c481c406b8ea45138f887df47990dd84ff03960827e80ace7a0ab4a086b4a70ad8b75d7b8e7e7e378a6930989c1b07d36b8ceaad673f94533b6efdf081e73a6ee1f8e7e756585859207c968d96d5c833c72256e3ed1540e6cf6a8effda70700d42c6126c429b20ca6c7a9c08065370084d18235b6607c2668a4c5428512b3d301bffb119352a84216a80c63e9c28f7
2018.10.23 21:02:23 5: Steckdose_Pi < 213100600000000005811a24000007da9dc4269dc3010328a87a0adaaf29bf18a60f8c56ab8eb91e30242db5f2dac4671ab8df2c0303f86e43f2e6597d5a3a20425f64258098cf5178ac675788dc62adcb15b264c7c971f99d91b757a09bc203 (96)
2018.10.23 21:02:23 5: Steckdose_Pi: decrypted
{"result":["on",30,null,null,null,"on",null],"id":3}
2018.10.23 21:02:23 5: Steckdose_Pi: parse id 3
$VAR1 = {
'result' => [
'on',
30,
undef,
undef,
undef,
'on',
undef
],
'id' => 3
};
2018.10.23 21:02:23 4: Steckdose_Pi: parse id 3 / powerplug_data
2018.10.23 21:02:23 4: Steckdose_Pi: msg ref is ARRAY
2018.10.23 21:02:26 4: Steckdose_Pi: write {"id":4,"method":"get_prop","params":["power", "temperature", "current", "mode", "power_consume_rate", "wifi_led", "power_price", "voltage", "power_factor", "elec_leakage"]} (173)
2018.10.23 21:02:26 5: Steckdose_Pi: send 213100d00000000005811a24000007dd435bd3b8a604076ced466a7de5880db61d8115c00a9ba7f6bb603dd38a05b69a2d24fb7b36b0a7124e77fd6211e0b39d6a997ef2cf9c97bf4e90a2a1c218c3e733e9d8036b53d2ffa3cf464df4ee4de6af960e4ef04fcd91109f9c582b1f3d44359bca340cb6390342c921f3527cd1eb984d2b36933867fe7d6065db74eff934090850310c9d371f1bfc8b3ae7171dae85e1999605e75c4bc8de9470d28217727db9a037acf44e93419f3700bdec92dee50e739fdedbdd964b3573417e5f9784
2018.10.23 21:02:26 5: Steckdose_Pi Send SUCCESS
2018.10.23 21:02:26 5: Steckdose_Pi > 213100d00000000005811a24000007dd435bd3b8a604076ced466a7de5880db61d8115c00a9ba7f6bb603dd38a05b69a2d24fb7b36b0a7124e77fd6211e0b39d6a997ef2cf9c97bf4e90a2a1c218c3e733e9d8036b53d2ffa3cf464df4ee4de6af960e4ef04fcd91109f9c582b1f3d44359bca340cb6390342c921f3527cd1eb984d2b36933867fe7d6065db74eff934090850310c9d371f1bfc8b3ae7171dae85e1999605e75c4bc8de9470d28217727db9a037acf44e93419f3700bdec92dee50e739fdedbdd964b3573417e5f9784
2018.10.23 21:02:26 5: Steckdose_Pi < 213100700000000005811a24000007ddfca36034aafb8ae7f4dc1d0ee54f8b51a60f8c56ab8eb91e30242db5f2dac4671ab8df2c0303f86e43f2e6597d5a3a20a9408014fbe73d9e30fa925c7129c740af92a5bfb160225ad34ce9eab1449b42a243af1b20df9957670f6bd28a6c92ec (112)
2018.10.23 21:02:26 5: Steckdose_Pi: decrypted
{"result":["on",30,null,null,null,"on",null,null,null,null],"id":4}
2018.10.23 21:02:26 5: Steckdose_Pi: parse id 4
$VAR1 = {
'id' => 4,
'result' => [
'on',
30,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef
]
};
2018.10.23 21:02:26 4: Steckdose_Pi: parse id 4 / powerplug_data
2018.10.23 21:02:26 4: Steckdose_Pi: msg ref is ARRAY
2018.10.23 21:02:35 4: Steckdose_Pi: write {"id":5,"method":"set_power","params":["off"]} (46)
2018.10.23 21:02:35 5: Steckdose_Pi: send 213100500000000005811a24000007e6b5c4a309c5e4b91979e29677857adeee9031c450eb3f48c2327ba3841558fbee16f38fdcd71c14b45718379290648ac8ebb7596687f7f091c56639d3d02ea214
2018.10.23 21:02:35 5: Steckdose_Pi Send SUCCESS
2018.10.23 21:02:35 5: Steckdose_Pi > 213100500000000005811a24000007e6b5c4a309c5e4b91979e29677857adeee9031c450eb3f48c2327ba3841558fbee16f38fdcd71c14b45718379290648ac8ebb7596687f7f091c56639d3d02ea214
2018.10.23 21:02:35 5: Steckdose_Pi < 213100400000000005811a24000007e5a42dc010f9ef14fcd2068947a2284e95fa2480a26e9ad00cf369d17de699504065425d46334a03197871c2aadfc0a956 (64)
2018.10.23 21:02:35 5: Steckdose_Pi: decrypted
{"result":["ok"],"id":5}
2018.10.23 21:02:35 5: Steckdose_Pi: parse id 5
$VAR1 = {
'result' => [
'ok'
],
'id' => 5
};
2018.10.23 21:02:35 4: Steckdose_Pi: parse id 5 / power_off
2018.10.23 21:02:35 4: Steckdose_Pi: msg ref is ARRAY
2018.10.23 21:02:35 5: Steckdose_Pi: parse result for 5 is ARRAY(0x32ee3c8)
2018.10.23 21:02:37 4: Steckdose_Pi: write {"id":6,"method":"get_prop","params":["power", "temperature", "current", "mode", "power_consume_rate", "wifi_led", "power_price", "voltage", "power_factor", "elec_leakage"]} (173)
2018.10.23 21:02:37 5: Steckdose_Pi: send 213100d00000000005811a24000007e7f222128f7bbefdbb66f1156277b948ec291cbd13782ee3556c1d998e9279776fd423fea4021197f8eae07832817b229ed7c2d011986d11d75455f95b773d434a90a0f208990dc2590e0cb8c96ccfaf51f4d04c21b35df9587e2c106d99a48775eaf2b6df5983886836a50d486c6c29297d79dccbf5fa73a54a2083d657a6a4dacf617998db2d8f557af3cf082969cca699a20afeed10139c10cb08d981f487f8ecab3b8ba3b87f15f95f2014349de7354cb266de6db25ef84eb9e6b5c9d6ddfe
2018.10.23 21:02:37 5: Steckdose_Pi Send SUCCESS
2018.10.23 21:02:37 5: Steckdose_Pi > 213100d00000000005811a24000007e7f222128f7bbefdbb66f1156277b948ec291cbd13782ee3556c1d998e9279776fd423fea4021197f8eae07832817b229ed7c2d011986d11d75455f95b773d434a90a0f208990dc2590e0cb8c96ccfaf51f4d04c21b35df9587e2c106d99a48775eaf2b6df5983886836a50d486c6c29297d79dccbf5fa73a54a2083d657a6a4dacf617998db2d8f557af3cf082969cca699a20afeed10139c10cb08d981f487f8ecab3b8ba3b87f15f95f2014349de7354cb266de6db25ef84eb9e6b5c9d6ddfe
2018.10.23 21:02:37 5: Steckdose_Pi < 213100700000000005811a24000007e8d0e80a560c2bb21b3f74701c9d787faf233d8b5b722130d1c37d11101d3683cf22639eee39f1bb216576d6145f5fa5903d07053e7997cf036b2e7e2ed4e55bc30797e40f8fdec74c54f8bdebef6166e595887a59618b2943d52fee430a6cc8fe (112)
2018.10.23 21:02:37 5: Steckdose_Pi: decrypted
{"result":["off",30,null,null,null,"on",null,null,null,null],"id":6}
2018.10.23 21:02:37 5: Steckdose_Pi: parse id 6
$VAR1 = {
'id' => 6,
'result' => [
'off',
30,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef
]
};
2018.10.23 21:02:37 4: Steckdose_Pi: parse id 6 / powerplug_data
2018.10.23 21:02:37 4: Steckdose_Pi: msg ref is ARRAY
2018.10.23 21:02:40 4: Steckdose_Pi: write {"id":7,"method":"set_power","params":["on"]} (45)
2018.10.23 21:02:40 5: Steckdose_Pi: send 213100500000000005811a24000007ebe6d4670405c153c3b88d6c2e895017079312c640805b88f15919353696b531354a0ad021c21ce61f02e7060d28a43048bc239ee78242222b523364ac136e250f
2018.10.23 21:02:40 5: Steckdose_Pi Send SUCCESS
2018.10.23 21:02:40 5: Steckdose_Pi > 213100500000000005811a24000007ebe6d4670405c153c3b88d6c2e895017079312c640805b88f15919353696b531354a0ad021c21ce61f02e7060d28a43048bc239ee78242222b523364ac136e250f
2018.10.23 21:02:41 5: Steckdose_Pi < 213100400000000005811a24000007ebdb6ff34e940a23a63c4defb9d324d86bfa2480a26e9ad00cf369d17de6995040b299413f71332befb658c17b38f8d7fc (64)
2018.10.23 21:02:41 5: Steckdose_Pi: decrypted
{"result":["ok"],"id":7}
2018.10.23 21:02:41 5: Steckdose_Pi: parse id 7
$VAR1 = {
'id' => 7,
'result' => [
'ok'
]
};
2018.10.23 21:02:41 4: Steckdose_Pi: parse id 7 / power_on
2018.10.23 21:02:41 4: Steckdose_Pi: msg ref is ARRAY
2018.10.23 21:02:41 5: Steckdose_Pi: parse result for 7 is ARRAY(0x3337a00)
2018.10.23 21:02:43 4: Steckdose_Pi: write {"id":8,"method":"get_prop","params":["power", "temperature", "current", "mode", "power_consume_rate", "wifi_led", "power_price", "voltage", "power_factor", "elec_leakage"]} (173)
2018.10.23 21:02:43 5: Steckdose_Pi: send 213100d00000000005811a24000007ed090bd626e026e4c46aa2443b00b84781c9cdc232f625f560cc54651f70dbabdbde6ca443a9ab652bffff71f6dac8bccc29c8d5bbfce5d2571f0f1b4970cb1cb7cd74cd6add6782f19c4e18b2a84eac4d23bf0e9f6cf578ff420d1a067e02dc658630af13c9568f355b7b380bb5d0415d85c1f96f79b6caa7cbbdc9332abb9e41c23b972fa6ed200acc7c2b0994488cfcf9a766dbc24f688442d118504b2216d4a2f617183a3e21d6522a3dbebf63283e76212efb98c60d79c5375c9da3b056a2
2018.10.23 21:02:43 5: Steckdose_Pi Send SUCCESS
2018.10.23 21:02:43 5: Steckdose_Pi > 213100d00000000005811a24000007ed090bd626e026e4c46aa2443b00b84781c9cdc232f625f560cc54651f70dbabdbde6ca443a9ab652bffff71f6dac8bccc29c8d5bbfce5d2571f0f1b4970cb1cb7cd74cd6add6782f19c4e18b2a84eac4d23bf0e9f6cf578ff420d1a067e02dc658630af13c9568f355b7b380bb5d0415d85c1f96f79b6caa7cbbdc9332abb9e41c23b972fa6ed200acc7c2b0994488cfcf9a766dbc24f688442d118504b2216d4a2f617183a3e21d6522a3dbebf63283e76212efb98c60d79c5375c9da3b056a2
2018.10.23 21:02:43 5: Steckdose_Pi < 213100700000000005811a24000007ee1947a4850dc1b5e489093e483de49cb4a60f8c56ab8eb91e30242db5f2dac4671ab8df2c0303f86e43f2e6597d5a3a20a9408014fbe73d9e30fa925c7129c740af92a5bfb160225ad34ce9eab1449b427bc05cd0c1374fa6b1206d6e18db7bd2 (112)
2018.10.23 21:02:43 5: Steckdose_Pi: decrypted
{"result":["on",30,null,null,null,"on",null,null,null,null],"id":8}
2018.10.23 21:02:43 5: Steckdose_Pi: parse id 8
$VAR1 = {
'result' => [
'on',
30,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef
],
'id' => 8
};
2018.10.23 21:02:43 4: Steckdose_Pi: parse id 8 / powerplug_data
2018.10.23 21:02:43 4: Steckdose_Pi: msg ref is ARRAY
2018.10.23 21:02:43 4: Steckdose_Pi: write {"id":9,"method":"get_prop","params":["power", "temperature", "current", "mode", "power_consume_rate", "wifi_led", "power_price", "voltage", "power_factor", "elec_leakage"]} (173)
2018.10.23 21:02:43 5: Steckdose_Pi: send 213100d00000000005811a24000007ee2211820d6b8356c10ba44552c23732ea5185dbf85e2e522bec31a0eb6d723d0717cd1f99abc470d7c5b06df7b9606c90c191e2ceac94e80ea1585920661dc14e5a04f86776cc6ecc2e8411ed8ce58f1e9a4df1fa6192946115986dd0df137be95acbf5f540008bd24eb16f55173c974323d458103632c1b07e3caf43a60612f5d656c1771fa1029db732daec16366a2e5a3df6c58203d2112d676d58cbe5ebf32efe773c5f65e1e17af9e66b91c93fe81ad1082adc4820379b18b62e932adfa6
2018.10.23 21:02:43 5: Steckdose_Pi Send SUCCESS
2018.10.23 21:02:43 5: Steckdose_Pi > 213100d00000000005811a24000007ee2211820d6b8356c10ba44552c23732ea5185dbf85e2e522bec31a0eb6d723d0717cd1f99abc470d7c5b06df7b9606c90c191e2ceac94e80ea1585920661dc14e5a04f86776cc6ecc2e8411ed8ce58f1e9a4df1fa6192946115986dd0df137be95acbf5f540008bd24eb16f55173c974323d458103632c1b07e3caf43a60612f5d656c1771fa1029db732daec16366a2e5a3df6c58203d2112d676d58cbe5ebf32efe773c5f65e1e17af9e66b91c93fe81ad1082adc4820379b18b62e932adfa6
2018.10.23 21:02:43 5: Steckdose_Pi < 213100700000000005811a24000007eed43f5cf22aaa407998b475a90b4a4030a60f8c56ab8eb91e30242db5f2dac4671ab8df2c0303f86e43f2e6597d5a3a20a9408014fbe73d9e30fa925c7129c740af92a5bfb160225ad34ce9eab1449b4288f15d0e6b5b1e187a8738130aea4fc5 (112)
2018.10.23 21:02:43 5: Steckdose_Pi: decrypted
{"result":["on",30,null,null,null,"on",null,null,null,null],"id":9}
2018.10.23 21:02:43 5: Steckdose_Pi: parse id 9
$VAR1 = {
'id' => 9,
'result' => [
'on',
30,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef
]
};
2018.10.23 21:02:43 4: Steckdose_Pi: parse id 9 / powerplug_data
2018.10.23 21:02:43 4: Steckdose_Pi: msg ref is ARRAY
2018.10.23 21:04:36 4: Steckdose_Pi: write {"id":12,"method":"miIO.info","params":[""]} (44)
2018.10.23 21:04:36 5: Steckdose_Pi: send 213100500000000005811a240000085f5a6ab7f37807fc2e708a39902e39e10f84685ae1b69ac67dee42846c0afeb2daffeeb24d3df3416a5d3fec2aeb3135a4ac8b647154c665c9dd54720eb66596e7
2018.10.23 21:04:36 5: Steckdose_Pi Send SUCCESS
2018.10.23 21:04:36 5: Steckdose_Pi > 213100500000000005811a240000085f5a6ab7f37807fc2e708a39902e39e10f84685ae1b69ac67dee42846c0afeb2daffeeb24d3df3416a5d3fec2aeb3135a4ac8b647154c665c9dd54720eb66596e7
2018.10.23 21:04:36 5: Steckdose_Pi < 213101a00000000005811a240000085f4b4cab7b0ec7d0e4d3cc6072f9c5f4e678ca51147274fc714ceadcb744b10ba954c113468d1ad492cf0d1aad6545251997deec7bb7105f301bde5ee9c55906cbe3ff6de0333998f7cc3312c212e0b4a714406041ef551a03e110c745a3d90efd2c0956c705bd1ec2f4ad6c0a88ebdcbc8895c94679618542e986281e3f0d3c100f79d784e1ed5c2a13f208bb800e2c8e0376870320efb2c141625902de40e9a74e8754963237abed63ee69ff2063897a05bc73a283e99b5c2c24424443ed94a6c54be6fec35fa14182dead6ec7efe23a7e8b83b66786b30d981862f10392c861f17b051c7b25649fe4671f0693b40e64414608d61a72e1fc941c07a9ab32916fb389f638be3c6632a914ac66ae7335a68e0803e25977270ba3a0fc502c1fbc956c6689ed5638f9aa09d301871941114a5f213887f5ea6a0c18930cd615e6cd9f4f0db173a798a5cd5981d41af7d9bdd8871e7d5cda03bf2a51be3b119b6cfcedb9157b027a0cda7bf751458a129151fbff641a84287083406019dcc2e294d866f8aa1474cdf0b51e25d7184acdd130f5 (416)
2018.10.23 21:04:36 5: Steckdose_Pi: decrypted
{"result":{"life":2143,"token":"123456789009876543211234567890","mac":"YY:YY:YY:YY:YY:YY","fw_ver":"1.3.0_93","hw_ver":"ESP8266","uid":"2162425703","model":"chuangmi.plug.v3","wifi_fw_ver":"1.5.0-dev(7f7a714)","ap":{"rssi":-69,"ssid":"****","bssid":"XX:XX:XX:XX:XX:XX"},"netif":{"localIp":"XXX.XXX.XXX.XXX","mask":"255.255.255.0","gw":"YYY.YYY.YYY.YYY"},"mmfree":10344},"id":12}
2018.10.23 21:04:36 5: Steckdose_Pi: parse id 12
$VAR1 = {
'result' => {
'life' => 2143,
'netif' => {
'gw' => 'YYY.YYY.YYY.YYY',
'localIp' => 'XXX.XXX.XXX.XXX',
'mask' => '255.255.255.0'
},
'token' => '123456789009876543211234567890',
'model' => 'chuangmi.plug.v3',
'fw_ver' => '1.3.0_93',
'uid' => '2162425703',
'ap' => {
'rssi' => -69,
'bssid' => 'XX:XX:XX:XX:XX:XX',
'ssid' => '****'
},
'hw_ver' => 'ESP8266',
'mac' => 'YY:YY:YY:YY:YY:YY',
'mmfree' => 10344,
'wifi_fw_ver' => '1.5.0-dev7f7a714'
},
'id' => 12
};
2018.10.23 21:04:36 4: Steckdose_Pi: parse id 12 / device_info
2018.10.23 21:04:36 4: Steckdose_Pi: msg ref is HASH
2018.10.23 21:05:14 4: Steckdose_Pi: write {"id":13,"method":"get_prop","params":["power", "temperature", "current", "mode", "power_consume_rate", "wifi_led", "power_price"]} (131)
2018.10.23 21:05:14 5: Steckdose_Pi: send 213100b00000000005811a24000008856833b46c8354f050b36a540c1fb5d1280f03bcf51ed332f002821ec75aad3f54bd414c5df679ee7e48276c75c944f40beb322eef22c322bc7116d1c63ecb55794155df14e03f88b2994a8fc6850a1846df79f7e3643c44e9293c04dbc4ff7cca6c59e2a24a338cd94fc6e94def2f06815b77bcb5f7515a13bd7b172283d1b4df7a4c18f404089b11e6eb55b39e2c27bb5322f024be90196b29fdbaddd3939224
2018.10.23 21:05:14 5: Steckdose_Pi Send SUCCESS
2018.10.23 21:05:14 5: Steckdose_Pi > 213100b00000000005811a24000008856833b46c8354f050b36a540c1fb5d1280f03bcf51ed332f002821ec75aad3f54bd414c5df679ee7e48276c75c944f40beb322eef22c322bc7116d1c63ecb55794155df14e03f88b2994a8fc6850a1846df79f7e3643c44e9293c04dbc4ff7cca6c59e2a24a338cd94fc6e94def2f06815b77bcb5f7515a13bd7b172283d1b4df7a4c18f404089b11e6eb55b39e2c27bb5322f024be90196b29fdbaddd3939224
2018.10.23 21:05:14 5: Steckdose_Pi < 213100600000000005811a24000008858b04b0a217f1d64ca9908eff94fd7262a60f8c56ab8eb91e30242db5f2dac4671ab8df2c0303f86e43f2e6597d5a3a20425f64258098cf5178ac675788dc62adc7a0db5bf692d64467264f7931ff2558 (96)
2018.10.23 21:05:14 5: Steckdose_Pi: decrypted
{"result":["on",30,null,null,null,"on",null],"id":13}
2018.10.23 21:05:14 5: Steckdose_Pi: parse id 13
$VAR1 = {
'id' => 13,
'result' => [
'on',
30,
undef,
undef,
undef,
'on',
undef
]
};
2018.10.23 21:05:14 4: Steckdose_Pi: parse id 13 / powerplug_data
2018.10.23 21:05:14 4: Steckdose_Pi: msg ref is ARRAY
2018.10.23 21:05:48 4: Steckdose_Pi: write {"id":14,"method":"miIO.wifi_assoc_state","params":[""]} (56)
2018.10.23 21:05:48 5: Steckdose_Pi: send 213100600000000005811a24000008a71fdfe57110b5989dffaf50da2e65546208550c23c098d93f66d2d43c8bdee0b56ce21aa4d1881b95a452a790a56d001110acc04b74f02728b6f9500ff1c590f28a04ac06e46d397f6b7e8bdeae81c9da
2018.10.23 21:05:48 5: Steckdose_Pi Send SUCCESS
2018.10.23 21:05:48 5: Steckdose_Pi > 213100600000000005811a24000008a71fdfe57110b5989dffaf50da2e65546208550c23c098d93f66d2d43c8bdee0b56ce21aa4d1881b95a452a790a56d001110acc04b74f02728b6f9500ff1c590f28a04ac06e46d397f6b7e8bdeae81c9da
2018.10.23 21:05:48 5: Steckdose_Pi < 213100a00000000005811a24000008a7102b23c44aa8726cc373f2dda852e1923d7b78cc6af175c9708715fc360a02bb4c773f1a2d342605ebd1fab6de9b54d4f9fee79e57d1ef86b382cfe901310e32e374fa5a55d44117b74db37c43ea7c8291b928e0f98cae515dc6240a0ef82001089e958224a052275f7ed3d845120955cbfda2d53ed840b73fd8eb829baf5faa497a14bf5517d761dac45743ee0bf780 (160)
2018.10.23 21:05:48 5: Steckdose_Pi: decrypted
{"result":{"state":"ONLINE","auth_fail_count":0,"conn_succes_count":1,"conn_fail_count":0,"dhcp_fail_count":0},"id":14}
2018.10.23 21:05:48 5: Steckdose_Pi: parse id 14
$VAR1 = {
'result' => {
'conn_fail_count' => 0,
'state' => 'ONLINE',
'conn_succes_count' => 1,
'dhcp_fail_count' => 0,
'auth_fail_count' => 0
},
'id' => 14
};
2018.10.23 21:05:48 4: Steckdose_Pi: parse id 14 / wifi_stats
2018.10.23 21:05:48 4: Steckdose_Pi: msg ref is HASH
Google nach der Device ID sagt: das Ding misst keinen Stromverbrauch?!
Siehst du diese Infos denn in der App?
Hallo Markus,
Ja, ich kann in der App den Stromverbrauch und die nutzungszeit sehen.
In der Produktbeschreibung unter dwm Link den ich gepostet habe ist es unter Eigenschaften auch zu lesen;
Leistungszählung
Es kann für einen Blick auf kumulativen Stromverbrauch verwendet werden.
Hmm...
Hast du die Möglichkeit zum Beispiel mit Wireshark mal zu gucken ob das Telefon lokal mit dem Plug kommuniziert?
Ich brauche die Details der Abfrage dieser Daten
Zitat von: Nighthawk am 24 Oktober 2018, 11:45:29
Leistungszählung
Es kann für einen Blick auf kumulativen Stromverbrauch verwendet werden.
Wenn ich nur wüsste wie das funktioniert...
Probier mal die Version im Anhang, Log mit verbose >=2
Funktioniert eigentlich das Setzen von WiFi LED und USB Power?
Ich hab jetzt mal das Token ausgelesen, dabei hab ich das Land auf Other gesetzt. Jetzt findet er in der App wenn ich auf Europe stelle den Saugroboter nicht mehr. Muss ich das jetzt auf Other stehen lassen oder gibt es eine Möglichkeit das auf Europe wieder zu ändern? Bzw kann man das Token auch unter Europe auslesen? Bzw was ist der unterschied zwischen Other, Europe, China wie auch immer......
Gruß
Zitat von: Darkmann am 24 Oktober 2018, 19:47:45
Ich hab jetzt mal das Token ausgelesen, dabei hab ich das Land auf Other gesetzt. Jetzt findet er in der App wenn ich auf Europe stelle den Saugroboter nicht mehr. Muss ich das jetzt auf Other stehen lassen oder gibt es eine Möglichkeit das auf Europe wieder zu ändern? Bzw kann man das Token auch unter Europe auslesen? Bzw was ist der unterschied zwischen Other, Europe, China wie auch immer......
Gruß
Mit iPhone oder Android, wenn Android wie?
Danke und LG
Nach der Anleitung auf der ersten Seite. Bei Android.
Hallo Markus,
sowohl die Wifi LED, als auch die USB-Power kann geschaltet werden.
Hier der Logasuzug mit der angehängten Version:
2018.10.25 22:14:50 2: Steckdose: connecting
2018.10.25 22:14:57 2: Steckdose: $VAR1 = {
'id' => 5,
'result' => [
'on',
29,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
]
};
2018.10.25 22:14:57 2: Steckdose: Message type for ID 5 not found
2018.10.25 22:15:06 2: Steckdose: $VAR1 = {
'result' => [
'on',
29,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
],
'id' => 7
};
2018.10.25 22:15:06 2: Steckdose: Message type for ID 7 not found
2018.10.25 22:15:11 2: Steckdose: $VAR1 = {
'id' => 11,
'result' => [
'on',
29,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
]
};
2018.10.25 22:15:11 2: Steckdose: Message type for ID 11 not found
2018.10.25 22:15:49 2: Steckdose: $VAR1 = {
'id' => 13,
'result' => [
'on',
29,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
]
};
2018.10.25 22:15:49 2: Steckdose: Message type for ID 13 not found
2018.10.25 22:16:18 2: Steckdose: $VAR1 = {
'id' => 15,
'result' => [
'on',
29,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
]
};
2018.10.25 22:16:18 2: Steckdose: Message type for ID 15 not found
2018.10.25 22:16:28 2: Steckdose: $VAR1 = {
'result' => [
'on',
29,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
],
'id' => 17
};
2018.10.25 22:16:28 2: Steckdose: Message type for ID 17 not found
2018.10.25 22:16:30 2: Steckdose: $VAR1 = {
'result' => [
'on',
29,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
],
'id' => 18
};
2018.10.25 22:16:30 2: Steckdose: Message type for ID 18 not found
2018.10.25 22:16:53 2: Steckdose: $VAR1 = {
'result' => [
'on',
29,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
],
'id' => 24
};
2018.10.25 22:16:53 2: Steckdose: Message type for ID 24 not found
2018.10.25 22:17:02 2: Steckdose: $VAR1 = {
'result' => [
'on',
29,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
],
'id' => 28
};
2018.10.25 22:17:02 2: Steckdose: Message type for ID 28 not found
2018.10.25 22:17:08 2: Steckdose: $VAR1 = {
'id' => 30,
'result' => [
'on',
29,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
]
};
2018.10.25 22:17:08 2: Steckdose: Message type for ID 30 not found
Da hab ich wohl noch was vergessen.
Kannst du noch mal ein get data mit Verbose 5 machen?
Hallo Markus,
aber gerne doch.
Hier der Log:
2018.10.26 19:29:18 2: Steckdose: Message type for ID 307 not found
2018.10.26 19:29:57 1: RMDIR: ./restoreDir/save/2018-10-23
2018.10.26 19:29:59 4: Steckdose: write {"id":308,"method":"set_power","params":["off"]} (48)
2018.10.26 19:29:59 5: Steckdose: send 213100600000000005811a2400012b1f20a6070848d953371caa9154fa59858a16dd79f0ce841dfea6c7bfecc822656209d01d7edc44f48d687c1f543c2a0a82803a33f4d9006231b20a2b94d7c4938aa81ecea97dcab0640b1c263d6b3cd3f0
2018.10.26 19:29:59 5: Steckdose Send SUCCESS
2018.10.26 19:29:59 5: Steckdose > 213100600000000005811a2400012b1f20a6070848d953371caa9154fa59858a16dd79f0ce841dfea6c7bfecc822656209d01d7edc44f48d687c1f543c2a0a82803a33f4d9006231b20a2b94d7c4938aa81ecea97dcab0640b1c263d6b3cd3f0
2018.10.26 19:29:59 5: Steckdose < 213100400000000005811a2400012b1f1db98375fe567e6ff1acb503558139c5fa2480a26e9ad00cf369d17de699504087cec1508954ead1668df2b1c1bf94c2 (64)
2018.10.26 19:29:59 5: Steckdose: decrypted
{"result":["ok"],"id":308}
2018.10.26 19:29:59 5: Steckdose: parse id 308
$VAR1 = {
'id' => 308,
'result' => [
'ok'
]
};
2018.10.26 19:29:59 4: Steckdose: parse id 308 / power_off
2018.10.26 19:29:59 4: Steckdose: msg ref is ARRAY
2018.10.26 19:29:59 5: Steckdose: parse result for 308 is ARRAY(0x2e3c1e8)
2018.10.26 19:30:00 4: Steckdose: write {"id":309,"method":"set_power","params":["on"]} (47)
2018.10.26 19:30:00 5: Steckdose: send 213100500000000005811a2400012b20837f46f61c114d20cd2c2a37a83ba70fbc5cf82330efbb83e773c4bd2aadf7cec1b3564c78360f2cec1493177348c1daf2acb7a8d94e13694b92af429f0219c9
2018.10.26 19:30:00 5: Steckdose Send SUCCESS
2018.10.26 19:30:00 5: Steckdose > 213100500000000005811a2400012b20837f46f61c114d20cd2c2a37a83ba70fbc5cf82330efbb83e773c4bd2aadf7cec1b3564c78360f2cec1493177348c1daf2acb7a8d94e13694b92af429f0219c9
2018.10.26 19:30:00 5: Steckdose < 213100400000000005811a2400012b20fc2ac9b7947bf4f581bc802403a4ec8ffa2480a26e9ad00cf369d17de6995040728166451e98479e6c60cb3f84516acf (64)
2018.10.26 19:30:00 5: Steckdose: decrypted
{"result":["ok"],"id":309}
2018.10.26 19:30:00 5: Steckdose: parse id 309
$VAR1 = {
'id' => 309,
'result' => [
'ok'
]
};
2018.10.26 19:30:00 4: Steckdose: parse id 309 / power_on
2018.10.26 19:30:00 4: Steckdose: msg ref is ARRAY
2018.10.26 19:30:00 5: Steckdose: parse result for 309 is ARRAY(0x29f7160)
2018.10.26 19:30:01 4: Steckdose: write {"id":310,"method":"get_prop","params":["power", "temperature", "current", "mode", "power_consume_rate", "wifi_led", "power_price", "voltage", "power_factor", "elec_leakage", "usb_power", "load_power"]} (202)
2018.10.26 19:30:01 5: Steckdose: send 213100f00000000005811a2400012b21e2a63db05303f0afaad224d4f674dcfa6280e42cc99f486b226c87a0d1c0e2bc7b13192378cafc5dc2dc34a89f031232d33574d01f1255d012e584ba64310f0c63350809f588b75697f71d5d40714c64fae77b4ec3a474914037c4cee8009e1ac1832ecc80dabf67caf7929c54af17f81809a6918150d35fa7f15cbb6b32b920de7b739d8d0a8a6bdc7c4887cbf556c7a45ab196b10c5f178bad2bc90b90813cf49e6c4d83ac5394cdedb685af62e097023aed06aaddf66d1071d09eaaac6e0ea53afb2dc3e82b947f3f3e33c79b80c84e6edfd09e63c074676253d516259078
2018.10.26 19:30:01 5: Steckdose Send SUCCESS
2018.10.26 19:30:01 5: Steckdose > 213100f00000000005811a2400012b21e2a63db05303f0afaad224d4f674dcfa6280e42cc99f486b226c87a0d1c0e2bc7b13192378cafc5dc2dc34a89f031232d33574d01f1255d012e584ba64310f0c63350809f588b75697f71d5d40714c64fae77b4ec3a474914037c4cee8009e1ac1832ecc80dabf67caf7929c54af17f81809a6918150d35fa7f15cbb6b32b920de7b739d8d0a8a6bdc7c4887cbf556c7a45ab196b10c5f178bad2bc90b90813cf49e6c4d83ac5394cdedb685af62e097023aed06aaddf66d1071d09eaaac6e0ea53afb2dc3e82b947f3f3e33c79b80c84e6edfd09e63c074676253d516259078
2018.10.26 19:30:01 4: Steckdose: write {"id":310,"method":"get_power","params":[]} (43)
2018.10.26 19:30:01 5: Steckdose: send 213100500000000005811a2400012b217a7c71510bf3752094ccf0caa9f3375b6280e42cc99f486b226c87a0d1c0e2bca03649488e0af0fa9ecd0fef6acea2ddd5f32bc5bb015b418303bb04541baba9
2018.10.26 19:30:01 5: Steckdose Send SUCCESS
2018.10.26 19:30:01 5: Steckdose > 213100500000000005811a2400012b217a7c71510bf3752094ccf0caa9f3375b6280e42cc99f486b226c87a0d1c0e2bca03649488e0af0fa9ecd0fef6acea2ddd5f32bc5bb015b418303bb04541baba9
2018.10.26 19:30:01 5: Steckdose < 213100700000000005811a2400012b212ec8b33a33d3a3b6952d985b275e371ca60f8c56ab8eb91e30242db5f2dac4678f6966b66901a14241042686673423b6d9bc7ffb34533929942391ac012c892ee960647061524b421b9f89044b4a758cc7b1bc4a06e10e683fee70c42399fb98 (112)
2018.10.26 19:30:01 5: Steckdose: decrypted
{"result":["on",34,null,null,null,"on",null,null,null,null,null,null],"id":310}
2018.10.26 19:30:01 5: Steckdose: parse id 310
$VAR1 = {
'result' => [
'on',
34,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
],
'id' => 310
};
2018.10.26 19:30:01 4: Steckdose: parse id 310 / powerplug_power
2018.10.26 19:30:01 4: Steckdose: msg ref is ARRAY
2018.10.26 19:30:01 2: Steckdose: $VAR1 = {
'result' => [
'on',
34,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
],
'id' => 310
};
2018.10.26 19:30:01 5: Steckdose < 213100400000000005811a2400012b216014b3f2f5907087007d83a165bb0464e851bda694b4c8d00e3a2f0f6dee0345af4db12d440ab302744a9cac544f8874 (64)
2018.10.26 19:30:01 5: Steckdose: decrypted
{"result":[100],"id":310}
2018.10.26 19:30:01 5: Steckdose: parse id 310
$VAR1 = {
'id' => 310,
'result' => [
100
]
};
2018.10.26 19:30:01 2: Steckdose: Message type for ID 310 not found
2018.10.26 19:30:01 3: Steckdose: $VAR1 = {
'id' => 310,
'result' => [
100
]
};
2018.10.26 19:30:03 4: Steckdose: write {"id":311,"method":"get_prop","params":["power", "temperature", "current", "mode", "power_consume_rate", "wifi_led", "power_price", "voltage", "power_factor", "elec_leakage", "usb_power", "load_power"]} (202)
2018.10.26 19:30:03 5: Steckdose: send 213100f00000000005811a2400012b233f510732357975eef8278ab996da04aa1f5a901620de2ac4376f4df95f6a8e29097e5573c596aebc83bb7d6a8c1bdd3d1ea29cafdf82d15b7e33246aba7d99371ed03d22ff546464aabc08181638396e1aba9a575d85b5bfb50aa5a880f3c0bc01282e9d1e0cb1d24dec423232b097eddd8b9483681492be6e12704f71068382c11f64129a0c58013daca86f95fde24d365238002b491506164b13f6292dfa0defbccfef075688aa497fe61c14f4de4c44632caf5ca073b53cc8b970fa93054d54da7a8a1eb8dcdab59f360e6722ad7ba738c2ee214cf3ad74da2c1a3aee8358
2018.10.26 19:30:03 5: Steckdose Send SUCCESS
2018.10.26 19:30:03 5: Steckdose > 213100f00000000005811a2400012b233f510732357975eef8278ab996da04aa1f5a901620de2ac4376f4df95f6a8e29097e5573c596aebc83bb7d6a8c1bdd3d1ea29cafdf82d15b7e33246aba7d99371ed03d22ff546464aabc08181638396e1aba9a575d85b5bfb50aa5a880f3c0bc01282e9d1e0cb1d24dec423232b097eddd8b9483681492be6e12704f71068382c11f64129a0c58013daca86f95fde24d365238002b491506164b13f6292dfa0defbccfef075688aa497fe61c14f4de4c44632caf5ca073b53cc8b970fa93054d54da7a8a1eb8dcdab59f360e6722ad7ba738c2ee214cf3ad74da2c1a3aee8358
2018.10.26 19:30:03 4: Steckdose: write {"id":311,"method":"get_power","params":[]} (43)
2018.10.26 19:30:03 5: Steckdose: send 213100500000000005811a2400012b23a2788d919e3dd808c4df6dbd4dab51ec1f5a901620de2ac4376f4df95f6a8e290ba08086c4b5ba299b1f6db394021737442fc977c1d6e30efe22ca8355e2b703
2018.10.26 19:30:03 5: Steckdose Send SUCCESS
2018.10.26 19:30:03 5: Steckdose > 213100500000000005811a2400012b23a2788d919e3dd808c4df6dbd4dab51ec1f5a901620de2ac4376f4df95f6a8e290ba08086c4b5ba299b1f6db394021737442fc977c1d6e30efe22ca8355e2b703
2018.10.26 19:30:03 5: Steckdose < 213100700000000005811a2400012b2306f47d1fee22ed5094548c9a754fd5b2a60f8c56ab8eb91e30242db5f2dac4678f6966b66901a14241042686673423b6d9bc7ffb34533929942391ac012c892ee960647061524b421b9f89044b4a758c774994da779b29481d99d19f3e960a36 (112)
2018.10.26 19:30:03 5: Steckdose: decrypted
{"result":["on",34,null,null,null,"on",null,null,null,null,null,null],"id":311}
2018.10.26 19:30:03 5: Steckdose: parse id 311
$VAR1 = {
'result' => [
'on',
34,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
],
'id' => 311
};
2018.10.26 19:30:03 4: Steckdose: parse id 311 / powerplug_power
2018.10.26 19:30:03 4: Steckdose: msg ref is ARRAY
2018.10.26 19:30:03 2: Steckdose: $VAR1 = {
'result' => [
'on',
34,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
],
'id' => 311
};
2018.10.26 19:30:03 5: Steckdose < 213100400000000005811a2400012b23bbce15a09869af390ec80d0eb803020ae851bda694b4c8d00e3a2f0f6dee03451811f844c4de1c1407e9891da21626b9 (64)
2018.10.26 19:30:03 5: Steckdose: decrypted
{"result":[100],"id":311}
2018.10.26 19:30:03 5: Steckdose: parse id 311
$VAR1 = {
'id' => 311,
'result' => [
100
]
};
2018.10.26 19:30:03 2: Steckdose: Message type for ID 311 not found
2018.10.26 19:30:03 3: Steckdose: $VAR1 = {
'id' => 311,
'result' => [
100
]
};
2018.10.26 19:35:03 4: Steckdose: write {"id":314,"method":"get_prop","params":["power", "temperature", "current", "mode", "power_consume_rate", "wifi_led", "power_price", "voltage", "power_factor", "elec_leakage", "usb_power", "load_power"]} (202)
2018.10.26 19:35:03 5: Steckdose: initSend
2018.10.26 19:35:03 5: Steckdose Send SUCCESS
2018.10.26 19:35:03 5: Steckdose > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2018.10.26 19:35:03 5: Steckdose: send 213100f00000000005811a2400012c4f83de08983b569e026023995c99a2a96d5bb501408b7015048183bd48e844a561fa187936bbdccb035eb4fe6f2a704715e762310874e078e0cc3337ca1d5ee8648dfed9600cd01f083fab524d97ad789a4013a822c72b206d9e286d4a2c7f4bef998a6a3c14314f650414b1a5fa07718b05dd88a6fdf506afb565a970b2ef855b786907ee8abb25bfebf7fdb1c2e7f6245649142ca4c79a79e135e4c236945ae2e8886e171c486c51904914b3ce9a30413d58dc2f01a35960dd113eac27719ec1369d0696ab7db20da2bac705dd5fb2bf51eb7421a0ff221ab06779a06b001369
2018.10.26 19:35:03 5: Steckdose Send SUCCESS
2018.10.26 19:35:03 5: Steckdose > 213100f00000000005811a2400012c4f83de08983b569e026023995c99a2a96d5bb501408b7015048183bd48e844a561fa187936bbdccb035eb4fe6f2a704715e762310874e078e0cc3337ca1d5ee8648dfed9600cd01f083fab524d97ad789a4013a822c72b206d9e286d4a2c7f4bef998a6a3c14314f650414b1a5fa07718b05dd88a6fdf506afb565a970b2ef855b786907ee8abb25bfebf7fdb1c2e7f6245649142ca4c79a79e135e4c236945ae2e8886e171c486c51904914b3ce9a30413d58dc2f01a35960dd113eac27719ec1369d0696ab7db20da2bac705dd5fb2bf51eb7421a0ff221ab06779a06b001369
2018.10.26 19:35:03 4: Steckdose: write {"id":314,"method":"get_power","params":[]} (43)
2018.10.26 19:35:03 5: Steckdose: initSend
2018.10.26 19:35:03 5: Steckdose Send SUCCESS
2018.10.26 19:35:03 5: Steckdose > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2018.10.26 19:35:03 5: Steckdose: send 213100500000000005811a2400012c4fdb4227c88479e50e11a2b9fae95218695bb501408b7015048183bd48e844a561323c109642b517e8c19dff7e005257251cc95cb293109632bb6d0f09c8529820
2018.10.26 19:35:03 5: Steckdose Send SUCCESS
2018.10.26 19:35:03 5: Steckdose > 213100500000000005811a2400012c4fdb4227c88479e50e11a2b9fae95218695bb501408b7015048183bd48e844a561323c109642b517e8c19dff7e005257251cc95cb293109632bb6d0f09c8529820
2018.10.26 19:35:03 5: Steckdose < 213100200000000005811a2400012c4f00000000000000000000000000000000 (32)
2018.10.26 19:35:03 5: Steckdose < 213100200000000005811a2400012c4f00000000000000000000000000000000 (32)
2018.10.26 19:35:03 5: Steckdose < 213100700000000005811a2400012c4f6cd097de2e20a9c0a4a119258be8181ea60f8c56ab8eb91e30242db5f2dac4678f6966b66901a14241042686673423b6d9bc7ffb34533929942391ac012c892ee960647061524b421b9f89044b4a758c114720eb387b61e7499c7b03adef853c (112)
2018.10.26 19:35:03 5: Steckdose: decrypted
{"result":["on",34,null,null,null,"on",null,null,null,null,null,null],"id":314}
2018.10.26 19:35:03 5: Steckdose: parse id 314
$VAR1 = {
'id' => 314,
'result' => [
'on',
34,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
]
};
2018.10.26 19:35:03 4: Steckdose: parse id 314 / powerplug_power
2018.10.26 19:35:03 4: Steckdose: msg ref is ARRAY
2018.10.26 19:35:04 2: Steckdose: $VAR1 = {
'id' => 314,
'result' => [
'on',
34,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
]
};
2018.10.26 19:35:04 5: Steckdose < 213100400000000005811a2400012c4f02a0151f95738eb3a6315b6dd00749fbe851bda694b4c8d00e3a2f0f6dee03450ea2cf83a1f36b2f2cbb0abd333404bf (64)
2018.10.26 19:35:04 5: Steckdose: decrypted
{"result":[100],"id":314}
2018.10.26 19:35:04 5: Steckdose: parse id 314
$VAR1 = {
'result' => [
100
],
'id' => 314
};
2018.10.26 19:35:04 2: Steckdose: Message type for ID 314 not found
2018.10.26 19:35:04 3: Steckdose: $VAR1 = {
'result' => [
100
],
'id' => 314
};
OK - was ist nun 100?
Zieht sie laut App gerade 100W?
Hallo Markus,
nein, es ist 1W (Faktor 100) im leerlauf, hier ein Log mit Last ~27W - 37W:
2018.10.26 20:34:41 2: Steckdose: $VAR1 = {
'id' => 328,
'result' => [
'off',
33,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
]
};
2018.10.26 20:34:41 2: Steckdose: Message type for ID 328 not found
2018.10.26 20:34:41 3: Steckdose: $VAR1 = {
'id' => 328,
'result' => [
600
]
};
2018.10.26 20:34:46 2: Steckdose: $VAR1 = {
'id' => 330,
'result' => [
'on',
33,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
]
};
2018.10.26 20:34:46 2: Steckdose: Message type for ID 330 not found
2018.10.26 20:34:46 3: Steckdose: $VAR1 = {
'result' => [
700
],
'id' => 330
};
2018.10.26 20:35:01 2: Steckdose: $VAR1 = {
'result' => [
'on',
33,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
],
'id' => 333
};
2018.10.26 20:35:01 2: Steckdose: Message type for ID 333 not found
2018.10.26 20:35:01 3: Steckdose: $VAR1 = {
'result' => [
2700
],
'id' => 333
};
2018.10.26 20:40:01 2: Steckdose: $VAR1 = {
'id' => 334,
'result' => [
'on',
33,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
]
};
2018.10.26 20:40:01 2: Steckdose: Message type for ID 334 not found
2018.10.26 20:40:01 3: Steckdose: $VAR1 = {
'id' => 334,
'result' => [
100
]
};
2018.10.26 20:43:04 2: Steckdose: $VAR1 = {
'result' => [
'on',
34,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
],
'id' => 335
};
2018.10.26 20:43:04 2: Steckdose: Message type for ID 335 not found
2018.10.26 20:43:04 3: Steckdose: $VAR1 = {
'id' => 335,
'result' => [
3700
]
};
2018.10.26 20:48:04 2: Steckdose: $VAR1 = {
'result' => [
'on',
34,
undef,
undef,
undef,
'on',
undef,
undef,
undef,
undef,
undef,
undef
],
'id' => 336
};
2018.10.26 20:48:04 2: Steckdose: Message type for ID 336 not found
2018.10.26 20:48:04 3: Steckdose: $VAR1 = {
'result' => [
100
],
'id' => 336
};
Hallo,
mein Robi V1 ist seit heute früh einfach disconnected, hätte das schon mal jemand? Was macht man da am besten?
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Ach ja, in der App is er auch offline!
Möchte halt um das token auslesen herum kommen.
Gibt bzw. geht das mit der Russischen App noch?
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: Nighthawk am 26 Oktober 2018, 14:55:04nein, es ist 1W (Faktor 100) im leerlauf, hier ein Log mit Last ~27W - 37W
Na dann probier mal den Anhang aus, damit sollte jetzt alles passen.
Zitat von: Marlen am 26 Oktober 2018, 16:02:38
Ach ja, in der App is er auch offline!
Möchte halt um das token auslesen herum kommen.
Gibt bzw. geht das mit der Russischen App noch?
Gesendet von meinem Aquaris U Plus mit Tapatalk
Ich würde ihn einfach mal ausschalten und wieder ein, dabei geht ja nichts verloren...
MfG Marcel
Oh man,
manchmal merk ich selbst schon wie blond ich bin.
AEG hat tatsächlich geholfen!
-DANKE!
[emoji8][emoji8][emoji8]
Gesendet von meinem Aquaris U Plus mit Tapatalk
Hallo Markus,
leider bleiben die Readings unverändert:
READINGS:
2018-10-27 08:17:06 device_firmware 1.3.0_93
2018-10-27 08:17:06 device_uptime 34.06
2018-10-27 09:21:27 error none
2018-10-27 08:21:22 power on
2018-10-26 18:03:04 state connected
2018-10-27 08:15:51 wifi_auth_fail_count 0
2018-10-27 08:15:51 wifi_conn_fail_count 0
2018-10-27 08:15:51 wifi_conn_success_count 1
2018-10-27 08:15:51 wifi_dhcp_fail_count 0
2018-10-27 08:17:06 wifi_rssi -55
2018-10-27 08:15:51 wifi_state online
btw.
unter Hardware steht ESP8266, hat schon einer herausgefunden wie die Geräte geöffnet werden können? Dann könnte man ja Tasmota draufflashen.
Zitat von: Nighthawk am 27 Oktober 2018, 03:27:49
leider bleiben die Readings unverändert:
btw.
unter Hardware steht ESP8266, hat schon einer herausgefunden wie die Geräte geöffnet werden können? Dann könnte man ja Tasmota draufflashen.
Nächster Versuch!
Ich denke nicht, dass jemand dafür in absehbarer Zeit Custom Firmware bauen wird.
Hallo Markus,
jetzt ist das Reading Power load da, es fehlt aber das Reading Power.
READINGS:
2018-10-27 19:15:11 device_firmware 1.3.0_93
2018-10-27 19:15:11 device_uptime 7.13
2018-10-27 19:43:37 error none
2018-10-27 19:43:37 load_power 59.00
2018-10-27 19:18:22 power on
2018-10-27 19:15:11 wifi_auth_fail_count 0
2018-10-27 19:15:11 wifi_conn_fail_count 0
2018-10-27 19:15:11 wifi_conn_success_count 1
2018-10-27 19:15:11 wifi_dhcp_fail_count 0
2018-10-27 19:15:11 wifi_rssi -52
2018-10-27 19:15:11 wifi_state online
Wenn tatsächlich ein ESP8266 verbaut ist, kann man dort die Tasmota FW draufflashen.
Ich weiss nur nicht wie ich den Würfel aufbekomme, es sind keine Schrauben zu sehen.
Zitat von: Nighthawk am 27 Oktober 2018, 13:48:41
Hallo Markus,
jetzt ist das Reading Power load da, es fehlt aber das Reading Power.
Es fehlt auch der Rest der Readings...
Poste mal noch mal ein get data Log mit verbose 5.
Oder probier erst mal den Anhang
Zitat von: Marlen am 26 Oktober 2018, 21:21:39
Oh man,
manchmal merk ich selbst schon wie blond ich bin.
AEG hat tatsächlich geholfen!
-DANKE!
[emoji8][emoji8][emoji8]
Gesendet von meinem Aquaris U Plus mit Tapatalk
Hat nicht lange gehalten, jetzt ist er wieder offline!
Was ist das? Hat/Hatte das schon mal jemand??
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: Marlen am 27 Oktober 2018, 14:11:40
Hat nicht lange gehalten, jetzt ist er wieder offline!
Was ist das? Hat/Hatte das schon mal jemand??
LG
Marlen
Gesendet von meinem Aquaris U Plus mit Tapatalk
Bei mir geht er ca. 1x die Woche offline, ich habe ihm aber auch das Internet in der Fritzbox gesperrt. Bei mir reicht dann ein reconnect über das Device in FHEM, dafür hab ich mir ein DOIF angelegt, welches einmalig nach einem disconnect diesen reconnect ausführt.
Hallo Marlen,
das Problem hatte ich auch schon mal. Bei mir lag's daran, daß ich die IP des Saugers im def eingegeben hatte - und die hatte sich zwischenzeitlich geändert beim Versuch, meine Fritzbox hinter einer Unitymedia Connect Box anzuschließen.
Nachdem ich auf den Namen "rockrobo.fritz.box" umgestellt hatte, war alles wieder in Butter.
Hallo Markus,
danke, jetzt ist auch die Leistung zu sehen, leider ist der Updatezyklus sehr hoch (~5min), kann ich es irgendwie verändern?
Was noch schön wäre, wäre den Zustand der USB Ports zu sehen.
Danke und Gruß
Alex
Zitat von: Nighthawk am 29 Oktober 2018, 02:28:28danke, jetzt ist auch die Leistung zu sehen, leider ist der Updatezyklus sehr hoch (~5min), kann ich es irgendwie verändern?
Was noch schön wäre, wäre den Zustand der USB Ports zu sehen.
Attribut
intervalData kleiner setzen, neue Version im Anhang :)
Wenn noch nicht das rauskommt was soll, bitte Log mit verbose 5 für ein get data posten.
Das sieht gut aus, danke!
Hallo zusammen,
welche aktuelle Firmware läuft mit Fhem ? Mein rockrobo.vacuum.v1 läuft noch mit der Firmware 3.3.6_003062, habe Angst, dass der Sauger nachher nicht mehr funktioniert - nach dem Motto never touch a running System. ;)
Hab mir einen zweiten zugelegt mit der aktuellen FW. Die Mi Home App läuft bei mir maximal mit der Version 4.19.- neuere stürzen einfach beim Anmelden/Geräte hinzufügen ab. Auch die Flole App kriegt keine Verbindung zum neuen Sauger (Daten über Mi Home App zurückgelesen- beim alt schon.
Wie komme ich an den Token von einem rockrobo.vacuum.v2. Aktuelle Androidgeräte habe ich nicht, Raspberry geht.
Den ersten Sauger konnte ich nach der Anleitung : https://forum.smartapfel.de/forum/thread/370-xiaomi-token-auslesen/?pageNo=1 mit der Variante 2 auf Deutsch umstellen.
Edit: Habe mit der Flole App den neuen Sauger auslesen können (Google-Drive) 512 Zeichen?!?
Bitte um kurze Tipps
Gruss
Andi
Zitat von: Der Neuling am 03 November 2018, 11:59:18
Hallo zusammen,
welche aktuelle Firmware läuft mit Fhem ? Mein rockrobo.vacuum.v1 läuft noch mit der Firmware 3.3.6_003062, habe Angst, dass der Sauger nachher nicht mehr funktioniert - nach dem Motto never touch a running System. ;)
Hab mir einen zweiten zugelegt mit der aktuellen FW. Die Mi Home App läuft bei mir maximal mit der Version 4.19.- neuere stürzen einfach beim Anmelden/Geräte hinzufügen ab. Auch die Flole App kriegt keine Verbindung zum neuen Sauger (Daten über Mi Home App zurückgelesen- beim alt schon.
Wie komme ich an den Token von einem rockrobo.vacuum.v2. Aktuelle Androidgeräte habe ich nicht, Raspberry geht.
Den ersten Sauger konnte ich nach der Anleitung : https://forum.smartapfel.de/forum/thread/370-xiaomi-token-auslesen/?pageNo=1 mit der Variante 2 auf Deutsch umstellen.
Edit: Habe mit der Flole App den neuen Sauger auslesen können (Google-Drive) 512 Zeichen?!?
Bitte um kurze Tipps
Gruss
Andi
Meine V1 läuft aktuell mit der Version: 3.3.9_003416
und das Modul: $Id: 72_XiaomiDevice.pm 17464 2018-10-05 22:29:21Z moises $$$
Grüße Marcel
Zitat von: Der Neuling am 03 November 2018, 11:59:18Habe mit der Flole App den neuen Sauger auslesen können (Google-Drive) 512 Zeichen?!?
Wo und wie sieht der genau aus?
Mit MiHome 4.x solltest du auch noch den Token über das Backup auslesen können.
Neuere Versionen zum direkt auslesen gibt's hier: https://cloud.mail.ru/public/GXA6/4rbqNrQ8b/
Hallo
ZitatWo und wie sieht der genau aus?
Da ich es wieder ändern kann, hier mal der Token von Flole nach Google Drive
ZitatVhlLnmwVlNvFfE8VxG3QB99g3OW1NiY1QWesMnmG4tEWi5eNhqQUaynnhL+Hs8WY7dU5Ftb17qOa
9MAh/vkGNGvSEkRro3QthTvIeYpC0S93GixsmoaRp5DOx6ry3DfRCYmoH6ahhBGGfQS2RWJL6yTP
kmg0o3tX2IQRSJh5NFXr22fhhRJSKl06aRicMKz2D6FOICDM5cpLkXNuIOHBmU0GtjCXMleAtsQR
kIh2uwCVPDrb/C3+kBgk2Rg+1EM8Q0YibOrsbexfws8GZYI5xLmXlYmF8xX30ygXgO9XnhKsuJax
GVSdlikSPRSN9NLQ/44zkYu4yvytpNW9+2Q4nqXD6OwZehqIdxk5bnvbv4AvAyxcFVWPctJu/E7D
fZzF5qGw8KuD7x5ne336grLGyupxkBabfZOt9zw6n3MxOT2yZXgmgMS4uXPdefJQ5YhbB9bHRauD
rEylQGXzsGXfnPBSt1L0qUooPjqnf77hfkRT+9tvNmlNVsmOumGW+waV
Hab mal zum Spass versucht das entsprechende Device anzulegen mit dem Token von oben - Fehlermeldung.
Gruss
Zitat von: Der Neuling am 03 November 2018, 13:06:24
Da ich es wieder ändern kann, hier mal der Token von Flole nach Google Drive
Das ist irgendwas, aber kein Token.
Du musst eine RobotConfig.frc exportieren (zumindest war das mal so), der Token ist dann der String hinter e: Die Flole App funktioniert wohl nicht mehr.
Modifizierte App von hier (http://www.kapiba.ru/2017/11/mi-home.html) auf neuerem Android installieren, Token ist dann in den Settings zu sehen.
Hallo zusammen,
Zwischenmeldung: Mi Home von Version 4.2.xx auf die neueste Version über Update funktioniert - Direkte Installation, egal welche Version, ob Russisch oder andere nicht, diese stürzen ab.
So wie es für mich aussieht funktioniert die neuste Version von Flolevac nicht mehr zum Auslese aber zum Steuern schon.
Methode miio aus dem Forum von Smartapfel funktioniert auch nicht, bekomme kein Ergebniss.
Was aber für mich komisch ist, ist das die Mi Home App beim hinzufügen von Geräten zwingend ein Bluethooth Netz aufspannt - geht sonst nicht automatisch. Wäre es möglich, das der Hersteller in den neueren Geräten Duale Wlan/Bluetooth Chips einsetzt? Beispiel Broadcom 8260/8265? Oder die Tokenlänge etc. verändert hat?
Ich werde weiterhin die diversen Methoden ausprobieren und berichten.
Gruss
Andi
Hi Andi,
in den Token-Längen etc. ist (für mich) kein Unterschied zu erkennen.
Habe beide Versionen, also V1 (nur Sauger) und V2 (Sauger und Wischer)...
Beide Token sind 32 Stellen lang und sehen auch ähnlich aus...
Ich habe alle meine Sauger "gerootet", daher kann ich den Token einfach auslesen...
Rooten ist gar nicht so schlimm/schwer/aufwändig, wenn man mal die "Build-Umgebung" hat.
Habe dafür einen eigenen PI.
Wenn der Sauger neu kommt, dann versorge ich ihn erst mal mit der "gerooteten" FW und dann lerne ich ihn an die MII-Home App an und importiere dann in Flole (wegen "copy/paste" der Koordinaten)...
War ganz praktisch, dass ich das so gemacht habe, weil der "alte Sauger" war immer noch Homeland China der neue V2 ging nur Europa.
Daher hatte ich keine Karten für den V2...
Nun habe ich alle nach Europa umgezogen und da ich per ssh auf die Sauger komme war das erneute Auslesen des Token kein Thema :)
Kleiner Nachteil (wobei für mich aktuell noch nicht relevant): bzgl. FW-Update ist man halt (immer) etwas hinterher...
...außer man stellt nicht mehr um (also kein WLAN-Reset etc. mehr) und spielt dann die offizielle FW ein/drüber.
Dann wird halt ein Token Auslesen wieder aufwändiger, sollte es mal notwendig werden...
EDIT: beim "Umzug" von China nach Europa blieben glücklicherweise die Karten erhalten, somit auch Goto und Zone-Clean :)
Gruß, Joachim
Hast du mal eine Anleitung, Webseite wo man das mit dem rooten nachlesen könnte?
Gruß
https://forum.fhem.de/index.php/topic,86535.msg789573.html#msg789573
Mal schnell, bin unterwegs...
...evtl. später mehr/ausführlicher bzw. im verlinkten Thread...
Gruß, Joachim
Bei mir spuckt das Modul mal wieder ein Encryption cipher error aus, kann mir jemand helfen?
- Perlmodule habe ich alle aktualisiert
- FHEM auf dem neusten Stand.
- Crypt::Cipher::AES habe ich neu installiert
018.11.12 10:25:00 5: Cmd: >define vacuum XiaomiDevice 192.168.0.36 6992154bbdffb4afa678ffd9196a82a9e6453a6ff1eec524c9a6eaa3bd7070790143db63ee66b0cdff9f69917680151e<
2018.11.12 10:25:00 3: vacuum: initialized, using AES
2018.11.12 10:25:00 3: vacuum: token decryption using Crypt::Cipher::AES
2018.11.12 10:25:00 1: vacuum: token decryption failed
Asked to truncate 56 bytes, which is greater than Crypt::Cipher::AES's blocksize (16 bytes).
2018.11.12 10:25:00 5: Starting notify loop for global, 1 event(s), first is DEFINED vacuum
Edit:
Ich habe es mir mittlerweile mit diesem Link beholfen: https://forum.smartapfel.de/forum/thread/370-xiaomi-token-auslesen/ (https://forum.smartapfel.de/forum/thread/370-xiaomi-token-auslesen/)
Das Encryption-Modul bekomme ich leider trotzdem nicht zum Laufen.
Zitat von: chigy am 12 November 2018, 10:29:19
Ich habe es mir mittlerweile mit diesem Link beholfen: https://forum.smartapfel.de/forum/thread/370-xiaomi-token-auslesen/ (https://forum.smartapfel.de/forum/thread/370-xiaomi-token-auslesen/)
Das Encryption-Modul bekomme ich leider trotzdem nicht zum Laufen.
Die Entschlüsselung funktioniert leider nicht auf allen Systemen - auch bei mir hat das so nicht funktioniert.
Die manuelle Entschlüsselung ist auch hier im 3. Post beschrieben.
Dein Token sollte 7475545a314562564f30576756487576 sein. Wenn nicht hat Xiaomi was geändert :-/
Das disable Attribut hast du wieder gelöscht?
Hallo zusammen.
habe bei meinem zweiten Roboter mit mirobo eine neue Fw aufgespielt - v11-003514.pkg, den Token in der direkten Verbindung (rockrobot -Netz) ausgelesen und mit der MiHome- App verbunden.
Anleitung stammt unter anderem von: https://www.roboter-forum.com/index.php?thread/25097-root-zugriff-auf-xiaomi-mi-vacuum-robot/&pageNo=25 (https://www.roboter-forum.com/index.php?thread/25097-root-zugriff-auf-xiaomi-mi-vacuum-robot/&pageNo=25)
Robzilla läuft auch. Hier meine Frage: Habe ich den Sauger jetzt gerootet? und wenn ja, wie komme ich über die Linux-Konsole auf den Roboter? ssh rockroboter@IP-Adresse oder wie?
Wahrscheinlich denke ich schon zu kompliziert.
Für meinen zweiten Roboter funktionieren die IP und der Token in Fhem nicht/keine Verbindung.
Ich vermute, das beim verbinden mit der MiHome App der Token noch einmal geändert wurden.
Edit: Wlan Led blinkt jetzt doppelt so schnell wie beim ersten einschalten und ich habe keine Verbindung - egal welcher Art.
Gruss
Andi
Hallo,
kleine unbedeutende Frage: mein Sauger (V1) lässt beim Zone saugen das Reading "in_cleaning" auf "no".
Ist das ein Bug oder ein Feature?
Danke und ein schönes WE
ErdnaR
Also aus meiner Sicht ist die Beste Kombination vom (v1) oder (v2) immer noch FHEM & Valetudo. Das klappt super. Bin zwar noch am experimentieren aber bisher (3 Wochen) alles gut. Super Klasse Modul. Vielen Dank an den Entwickler. Achso und root muss sein damit das Homecalling aufhört. Jetzt ist Ruhe auf der China Leitung. Schon krass was da alles an Daten versendet wird wenn man sich mal die Zeit nimmt und das genauer anschaut. Vielen Dang an Dgi für die eindringlichen Infos über diese Technik. Kann es nur jedem empfehlen seinen Robi zu rooten und die Dustcloud zu verwenden. VG Denny
Zitat von: rohlande am 17 November 2018, 22:48:54
Also aus meiner Sicht ist die Beste Kombination vom (v1) oder (v2) immer noch FHEM & Valetudo. Das klappt super. Bin zwar noch am experimentieren aber bisher (3 Wochen) alles gut. Super Klasse Modul. Vielen Dank an den Entwickler. Achso und root muss sein damit das Homecalling aufhört. Jetzt ist Ruhe auf der China Leitung. Schon krass was da alles an Daten versendet wird wenn man sich mal die Zeit nimmt und das genauer anschaut. Vielen Dang an Dgi für die eindringlichen Infos über diese Technik. Kann es nur jedem empfehlen seinen Robi zu rooten und die Dustcloud zu verwenden. VG Denny
Gerootet sind sie aber dustcloud hab ich noch vor mir...
Hast du mit dustcloud auch die Karten?
Oder zumindest goto und zoneclean!?
Hast du damit die Kommunikation komplett gesperrt!?
Danke, Joachim
Hallo Zusammen,
sagt mal was läuft bei einem Staubsauger (Roborock) in den Error Readings auf?
Meiner müsste gerade festhängen und hat per Mi Home app das ganze gemeldet.
Allerdings im FHEM Modul ist nicht zu finden.
Gruß Robert
Zitat von: MadMax-FHEM am 17 November 2018, 23:14:39
Gerootet sind sie aber dustcloud hab ich noch vor mir...
Hast du mit dustcloud auch die Karten?
Oder zumindest goto und zoneclean!?
Hast du damit die Kommunikation komplett gesperrt!?
Danke, Joachim
Hi Joachim,
komplett gesperrt. Karten und Dustcloud will net. Bin aber auf "Valetudo" umgestiegen und dort findest Du die Karte auf dem Robbi. Bin gerade dabei zu überlegen ob ich den Robbi ein nfs share gebe. Dann noch ein chronjob oder dierkt curl auf den Robbi und die Karte via weblink ins Dashboard. Mal sehen was sich ergibt.
Dustcloud hat mich 1 Wochenende gekostet und bringt mir nix außer die RAW Data. Das rooten ist am wichtigsten inkl. der Anpassungen an hosts / rc.local für iptables.
Dann ist Ruhe nach CN und die Welt ist in Ordnung.
Zonecleaning, habe ich mir zuvor mit FloleVac APP die Koordinaten geholt. Ist am einfachsten und geht super. Nur leider funktioniert die APP in aktueller "root" Phase nicht, da ich die iptable so verbogen habe, dass nix mehr geht. Ist aber auch egal. Dafür gibts ja FHEM :-).Hab auch kein Bock umzustellen, da der Robbi macht was er soll. er findet in 9 von 10 Fällen alles was er soll und macht was er soll. Meine Frau ist zumindest begeistert was unser "moritz" so alles sauber bringt.
Vg denny
Hi denny,
vielen Dank!
Hab mir "Valetudo" auch schon mal kurz angeschaut...
...werde ich mir noch mal genauer anschauen :)
Karten an sich wären mir egal, mir wäre nur wichtig, dass der Sauger weiterhin (also auch ohne Verbindung nach China / wobei ich auf den Europa-Server umgezogen bin, ging mit dem V2 Sauger nicht anders) ZoneClean macht.
Bin mir nicht ganz sicher, ob ich das richtig bei dir gelesen habe: kann er das noch!?
Die Koordinaten habe ich ja schon...
...auch aus der Flole-App :)
Evtl. wäre dein Beitrag auch was für hier: https://forum.fhem.de/index.php/topic,86535.msg789573.html#msg789573
(evtl. besser geeignet als hier zu diskutieren)
Wenn ich mal wieder Zeit habe werde ich mir das noch mal vornehmen...
Gruß, Joachim
Zitat von: no_Legend am 19 November 2018, 10:25:28
Hallo Zusammen,
sagt mal was läuft bei einem Staubsauger (Roborock) in den Error Readings auf?
Meiner müsste gerade festhängen und hat per Mi Home app das ganze gemeldet.
Allerdings im FHEM Modul ist nicht zu finden.
Gruß Robert
Kann mir keiner sagen ob die Error Readings funktionieren?
Danke und Gruß Robert
Zitat von: MadMax-FHEM am 19 November 2018, 21:57:40
Hi denny,
vielen Dank!
"Valetudo"
Bin mir nicht ganz sicher, ob ich das richtig bei dir gelesen habe: kann er das noch!?
Die Koordinaten habe ich ja schon...
...auch aus der Flole-App :)
Zone Cleaning geht mit Valetudo weiterhin.
Gut wenn Du die Daten der Zonen hast einfach in Fhem weiterverwenden und freuen was der Robbi so kann.
Wenn Du Fragen wegen Valetudo hast und dem "Home Calling" desvRobbi dann melde Dich. Ich stelle dann die Steps hier ein.
VG Denny
Zitat von: no_Legend am 20 November 2018, 09:32:48
Kann mir keiner sagen ob die Error Readings funktionieren?
Danke und Gruß Robert
Ich beobachte das mit Dustcloud. Hatte auch gerade einen weil eine Socke unter dem Bett in der Walze steckte.
Die Error Flag war gesetzt aber das Value würde mich auch interessieren. Wenn ich was finde in der Dustcloud melde ich mich.
Vg Denny
Zitat von: rohlande am 20 November 2018, 09:36:45
Ich beobachte das mit Dustcloud. Hatte auch gerade einen weil eine Socke unter dem Bett in der Walze steckte.
Die Error Flag war gesetzt aber das Value würde mich auch interessieren. Wenn ich was finde in der Dustcloud melde ich mich.
Vg Denny
Danke für deine Antwort.
Das sollte ja nichts mit zu tun haben welche Cloud man nimmt oder?
Gruß Robert
Zitat von: no_Legend am 20 November 2018, 09:32:48
Kann mir keiner sagen ob die Error Readings funktionieren?
Mehr als "Ja" kann ich dazu eigentlich nicht sagen.
Wenn der Sauger auf Störung geht und stehen bleibt, sollte da auch was ankommen.
Wurde vielleicht schon wieder überschrieben?!
Zitat von: Markus M. am 20 November 2018, 12:23:22
Mehr als "Ja" kann ich dazu eigentlich nicht sagen.
Wenn der Sauger auf Störung geht und stehen bleibt, sollte da auch was ankommen.
Wurde vielleicht schon wieder überschrieben?!
Hi,
zwei Beispiele:
Zitat2018-11-06_07:16:53 Staubi1 Error
2018-11-06_07:16:53 Staubi1 batteryPercent: 75
2018-11-06_07:16:53 Staubi1 last_clean_time: 0.60
2018-11-06_07:16:53 Staubi1 last_clean_area: 42.40
2018-11-06_07:16:53 Staubi1 error_code: Wheel floating
2018-11-06_16:55:28 Staubi1 error_code: None
Wobei in meinem Log 8 mal Error und nur zweimal error_code zu finden ist :D
Gruß Otto
Hallo!
Darf ich euch auf diesen Beitrag hinweisen:
https://www.roboter-forum.com/index.php?thread/29822-valetudo-alternatives-cloudfreies-webinterface-ohne-dustcloud-mit-livemap-auf-de/&postID=394742#post394742 (https://www.roboter-forum.com/index.php?thread/29822-valetudo-alternatives-cloudfreies-webinterface-ohne-dustcloud-mit-livemap-auf-de/&postID=394742#post394742)
Hier wird, der Lebensdauer des Flash-Speichers zuliebe, davon abgeraten den Saugroboter OHNE (Dust-/Dummy-)Cloud Anbindung zu betreiben, da das zum Absturz des Miio-Clients und damit zum exzessivem Protokollieren von Fehlermeldungen führt.
LG
RAiner
Zitat von: gamauf am 20 November 2018, 15:52:53
Hallo!
Darf ich euch auf diesen Beitrag hinweisen:
https://www.roboter-forum.com/index.php?thread/29822-valetudo-alternatives-cloudfreies-webinterface-ohne-dustcloud-mit-livemap-auf-de/&postID=394742#post394742 (https://www.roboter-forum.com/index.php?thread/29822-valetudo-alternatives-cloudfreies-webinterface-ohne-dustcloud-mit-livemap-auf-de/&postID=394742#post394742)
Hier wird, der Lebensdauer des Flash-Speichers zuliebe, davon abgeraten den Saugroboter OHNE (Dust-/Dummy-)Cloud Anbindung zu betreiben, da das zum Absturz des Miio-Clients und damit zum exzessivem Protokollieren von Fehlermeldungen führt.
LG
RAiner
Danke für die Info.
Nur geht es nicht darum Anbinden ja oder nein.
Ich habe mich gewundert, dass ich per Handy einen Error bekomme und in FHEM anbindung nix gesehen habe.
Gruß Robert
Zitat von: rohlande am 20 November 2018, 09:33:40
Zone Cleaning geht mit Valetudo weiterhin.
Gut wenn Du die Daten der Zonen hast einfach in Fhem weiterverwenden und freuen was der Robbi so kann.
Wenn Du Fragen wegen Valetudo hast und dem "Home Calling" desvRobbi dann melde Dich. Ich stelle dann die Steps hier ein.
VG Denny
Hi Denny,
wäre toll!
Evtl. besser dort!? https://forum.fhem.de/index.php/topic,86535.msg789573.html#msg789573
Nicht dass es den Thread hier sprengt oder fehlleitet...
Werde mich dann (noch) mal dem Thema "ohne Cloud" bzw. eher "ohne nicht lokale Cloud" widmen...
...das dann allerdings im verlinkten Thread tun...
Erst brauche ich aber mal etwas Zeit ;)
Danke, Joachim
Mach ich die Tage. Habe mir mein Raspi abgschossen.
Vg denny
Hallo,
mir ist gerade ein Fehler in Verbindung mit dem roborock.vacuum.s5 aufgefallen. Wenn ich den "cleaning_mode" auf "turbo" setze, wird "fan_power" auf 75 gesetzt, der "cleaning-mode" bleibt aber auf "balanced" stehen:
Balanced:
fhem> list Sauger
Internals:
DEF 192.168....
FD 18
NAME Sauger
NR 359
STATE Docked
TYPE XiaomiDevice
hardware Linux
mac 40:31:3C:A7:DB:C0
model roborock.vacuum.s5
token ...
READINGS:
2018-12-02 18:41:47 app_bom A.03.0005
2018-12-02 18:41:47 app_language en
2018-12-02 18:41:47 app_location de
2018-12-02 18:41:47 app_logserver awsde0.fds.api.xiaomi.com
2018-12-02 18:41:47 app_name custom_A.03.0005_CE
2018-12-02 18:41:47 app_timezone Europe/Berlin
2018-05-19 18:20:04 battery ok
2018-05-19 18:20:04 batteryLevel 100
2018-12-02 19:06:50 batteryPercent 100
2018-12-02 19:06:50 batteryState ok
2018-12-02 18:41:47 carpet_high 500
2018-12-02 18:41:47 carpet_integral 450
2018-12-02 18:41:47 carpet_low 400
2018-12-02 18:41:47 carpet_mode on
2018-12-02 18:41:47 carpet_stall_time 10
2018-12-02 19:08:37 cleaning_mode balanced
2018-12-02 18:41:47 consumables_filter 91
2018-12-02 18:41:47 consumables_main_brush 95
2018-12-02 18:41:47 consumables_sensors 58
2018-12-02 18:41:47 consumables_side_brush 93
2018-12-02 09:41:44 device_firmware 3.3.9_001658
2018-12-02 18:41:47 device_fw_features 102,103,104,105
2017-09-09 15:48:30 device_lifetime 12.01
2018-12-02 09:41:44 device_uptime 6.32
2018-12-02 19:06:50 dnd off
2018-12-02 18:41:47 dnd_enabled on
2018-12-02 18:41:47 dnd_end 08:00
2018-12-02 18:41:47 dnd_start 22:00
2018-12-02 19:08:37 error none
2018-12-02 19:06:50 error_code None
2018-11-26 15:46:18 event zoned_clean_succ
2018-12-02 19:08:37 fan_power 60
2018-12-02 18:41:47 history_0 2018-12-01 14:56:12: 37.76m² in 0.55h, finished cleaning
2018-12-02 18:41:48 history_1 2018-12-01 14:45:33: 12.02m² in 0.17h, finished cleaning
2018-12-02 18:41:48 history_2 2018-12-01 11:03:58: 5.04m² in 0.06h, finished cleaning
2018-12-02 18:41:48 history_3 2018-11-29 15:44:06: 17.31m² in 0.31h, finished cleaning
2018-12-02 18:41:48 history_4 2018-11-29 15:32:01: 5.00m² in 0.10h, finished cleaning
2018-12-02 18:41:48 history_5 2018-11-29 10:00:01: 43.49m² in 0.74h, finished cleaning
2018-12-02 18:41:48 history_6 2018-11-27 16:35:15: 0.00m² in 0.00h, not finished
2018-12-02 18:41:48 history_7 2018-11-27 15:57:40: 4.88m² in 0.07h, finished cleaning
2018-12-02 18:41:48 history_8 2018-11-26 19:41:41: 4.89m² in 0.06h, finished cleaning
2018-12-02 18:41:48 history_9 2018-11-26 15:52:51: 1.08m² in 0.02h, finished cleaning
2018-12-02 19:06:50 in_cleaning no
2018-12-02 19:06:50 last_clean_area 12.02
2018-12-02 19:06:50 last_clean_time 0.17
2018-12-02 19:08:37 last_clean_time_text 0h 10m
2018-12-02 18:41:47 last_timestamp 1543672572
2018-04-26 11:52:06 log_upload_status 3
2018-12-02 19:06:50 map_present yes
2018-12-02 09:41:44 serial_number ...
2018-12-02 19:06:50 state Docked
2018-12-02 18:41:47 timer1 on
2018-12-02 18:41:47 timer1_power 75
2018-12-02 18:41:47 timer1_program start_clean
2017-09-09 17:48:34 timer1_time 10:00
2018-12-02 18:41:47 timer2 off
2018-12-02 18:41:47 timer2_power 38
2018-12-02 18:41:47 timer2_program start_clean
2018-12-02 09:41:44 timezone Europe/Berlin
2018-12-02 18:41:47 total_clean_area 804.44
2018-12-02 18:41:47 total_clean_time 12.50
2018-12-02 19:08:37 total_clean_time_text 12h 30m
2018-12-02 18:41:47 total_cleans 60
2018-12-02 18:41:47 volume 90
2018-12-02 09:41:44 wifi_auth_fail_count 0
2018-12-02 09:41:44 wifi_conn_fail_count 0
2018-12-02 09:41:44 wifi_conn_success_count 1
2018-12-02 09:41:44 wifi_dhcp_fail_count 0
2018-12-02 09:41:44 wifi_rssi -50
2018-12-02 09:41:44 wifi_state online
helper:
ConnectionState connected
cleanrecord 10
crypt AES
delay 60
dev 0705
historydays 10
id 333b
ip 192.168...
last_read 1543774117
packetid 4751
port 54321
sequence 0
timer1 1540992809933
timer1_cron 010**1,4
timer2 1541354798434
timer2_cron 010**5
timers 2
token ...
zone_names Kueche,Kueche_Arbeitsbereich,Bad,Schlafzimmer,Buero,Wohnzimmer,Wohnzimmer_Mop,Flur,KuFlBuWzBd,KuFlBuWz,Mop_KuFlBdBuWz,Mop_KuFlBuWz
day:
history:
packet:
100 get_consumable
101 get_clean_summary
102 get_dnd_timer
...
Turbo:
fhem> list Sauger
Internals:
DEF 192.168...
FD 18
NAME Sauger
NR 359
STATE Docked
TYPE XiaomiDevice
hardware Linux
mac 40:31:3C:A7:DB:C0
model roborock.vacuum.s5
token 6f5030484e32384b3650455031683936
READINGS:
2018-12-02 18:41:47 app_bom A.03.0005
2018-12-02 18:41:47 app_language en
2018-12-02 18:41:47 app_location de
2018-12-02 18:41:47 app_logserver awsde0.fds.api.xiaomi.com
2018-12-02 18:41:47 app_name custom_A.03.0005_CE
2018-12-02 18:41:47 app_timezone Europe/Berlin
2018-05-19 18:20:04 battery ok
2018-05-19 18:20:04 batteryLevel 100
2018-12-02 19:16:50 batteryPercent 100
2018-12-02 19:16:50 batteryState ok
2018-12-02 18:41:47 carpet_high 500
2018-12-02 18:41:47 carpet_integral 450
2018-12-02 18:41:47 carpet_low 400
2018-12-02 18:41:47 carpet_mode on
2018-12-02 18:41:47 carpet_stall_time 10
2018-12-02 19:17:30 cleaning_mode balanced
2018-12-02 18:41:47 consumables_filter 91
2018-12-02 18:41:47 consumables_main_brush 95
2018-12-02 18:41:47 consumables_sensors 58
2018-12-02 18:41:47 consumables_side_brush 93
2018-12-02 09:41:44 device_firmware 3.3.9_001658
2018-12-02 18:41:47 device_fw_features 102,103,104,105
2017-09-09 15:48:30 device_lifetime 12.01
2018-12-02 09:41:44 device_uptime 6.32
2018-12-02 19:16:50 dnd off
2018-12-02 18:41:47 dnd_enabled on
2018-12-02 18:41:47 dnd_end 08:00
2018-12-02 18:41:47 dnd_start 22:00
2018-12-02 19:17:30 error none
2018-12-02 19:16:50 error_code None
2018-11-26 15:46:18 event zoned_clean_succ
2018-12-02 19:17:30 fan_power 75
2018-12-02 18:41:47 history_0 2018-12-01 14:56:12: 37.76m² in 0.55h, finished cleaning
2018-12-02 18:41:48 history_1 2018-12-01 14:45:33: 12.02m² in 0.17h, finished cleaning
2018-12-02 18:41:48 history_2 2018-12-01 11:03:58: 5.04m² in 0.06h, finished cleaning
2018-12-02 18:41:48 history_3 2018-11-29 15:44:06: 17.31m² in 0.31h, finished cleaning
2018-12-02 18:41:48 history_4 2018-11-29 15:32:01: 5.00m² in 0.10h, finished cleaning
2018-12-02 18:41:48 history_5 2018-11-29 10:00:01: 43.49m² in 0.74h, finished cleaning
2018-12-02 18:41:48 history_6 2018-11-27 16:35:15: 0.00m² in 0.00h, not finished
2018-12-02 18:41:48 history_7 2018-11-27 15:57:40: 4.88m² in 0.07h, finished cleaning
2018-12-02 18:41:48 history_8 2018-11-26 19:41:41: 4.89m² in 0.06h, finished cleaning
2018-12-02 18:41:48 history_9 2018-11-26 15:52:51: 1.08m² in 0.02h, finished cleaning
2018-12-02 19:16:50 in_cleaning no
2018-12-02 19:16:50 last_clean_area 12.02
2018-12-02 19:16:50 last_clean_time 0.17
2018-12-02 19:17:30 last_clean_time_text 0h 10m
2018-12-02 18:41:47 last_timestamp 1543672572
2018-04-26 11:52:06 log_upload_status 3
2018-12-02 19:16:50 map_present yes
2018-12-02 09:41:44 serial_number ...
2018-12-02 19:16:50 state Docked
2018-12-02 18:41:47 timer1 on
2018-12-02 18:41:47 timer1_power 75
2018-12-02 18:41:47 timer1_program start_clean
2017-09-09 17:48:34 timer1_time 10:00
2018-12-02 18:41:47 timer2 off
2018-12-02 18:41:47 timer2_power 38
2018-12-02 18:41:47 timer2_program start_clean
2018-12-02 09:41:44 timezone Europe/Berlin
2018-12-02 18:41:47 total_clean_area 804.44
2018-12-02 18:41:47 total_clean_time 12.50
2018-12-02 19:17:30 total_clean_time_text 12h 30m
2018-12-02 18:41:47 total_cleans 60
2018-12-02 18:41:47 volume 90
2018-12-02 09:41:44 wifi_auth_fail_count 0
2018-12-02 09:41:44 wifi_conn_fail_count 0
2018-12-02 09:41:44 wifi_conn_success_count 1
2018-12-02 09:41:44 wifi_dhcp_fail_count 0
2018-12-02 09:41:44 wifi_rssi -50
2018-12-02 09:41:44 wifi_state online
helper:
ConnectionState connected
cleanrecord 10
crypt AES
delay 60
dev 0705
historydays 10
id 333b
ip ...
last_read 1543774650
packetid 4755
port 54321
sequence 1
timer1 1540992809933
timer1_cron 010**1,4
timer2 1541354798434
timer2_cron 010**5
timers 2
token ...
zone_names Kueche,Kueche_Arbeitsbereich,Bad,Schlafzimmer,Buero,Wohnzimmer,Wohnzimmer_Mop,Flur,KuFlBuWzBd,KuFlBuWz,Mop_KuFlBdBuWz,Mop_KuFlBuWz
day:
history:
packet:
100 get_consumable
101 get_clean_summary
102 get_dnd_timer
...
Die anderen Modi werden normal umgeschaltet. Hat noch jemand dieses Problem?
Ronny
Hey, hat schon jemand die neue Firmware für den V1 getestet, wird mir seit heute angeboten...
3.3.9_003452
Gibt es eigentlich eine Seite wo man nachschauen kann, was sich von Firmware zu Firmware ändert...?
Grüße Marcel
Tapatalk iPhone, daher kurz gehalten.
Fixed some bugs...
Gibt doch schon die 3600 über FloleVac!
Gesendet von meinem Aquaris U Plus mit Tapatalk
Zitat von: thymjan am 05 Dezember 2018, 20:22:32
Fixed some bugs...
[emoji23]
Zitat von: Marlen am 05 Dezember 2018, 20:46:32
Gibt doch schon die 3600 über FloleVac!
Höhere Nummer != neuere Firmware.
Zitat von: thymjan am 05 Dezember 2018, 20:22:32
Fixed some bugs...
[emoji23]
Zitat von: Marlen am 05 Dezember 2018, 20:46:32
Gibt doch schon die 3600 über FloleVac!
Höhere Nummer != neuere Firmware.
Es handelt sich wohl um Beta Versionen.
Jeder muss für sich überlegen, ob solche Software ausprobiert wird.
Wir testen im professionellen Umfeld nicht mit Produktivsystemen, sondern nur mit eigens dafür eingerichteten Testsystemen.
Wir können mit unseren Xiaomi's kein Image Backup machen (ohne root).
Wenn die Beta ein Problem hat, kann man hoffentlich wieder eine gangbare Version zurückladen.
Gruß Helmut
Ich kämpfe immer noch mit dem cleaning_mode des Roborock. Wenn ich das Modul richtig verstehe, werden beim Rockrobo (V1) folgende Werte im fan_power gesetzt:
quiet: 38
balanced: 60
turbo: 77
max: 90
Beim Roborock dagegen:
quiet: 101
balanced: 102
turbo: 103
max: 104
mop: 105
In Wirklichkeit setzt der cleaning_mode bei meinem Roborock folgende Werte im fan_power:
quiet: 38
balanced: 60
turbo: 75
max: 100
mop: 105
Die Verbindung mit dem mop-Modus und den Werten 101 ... 105 habe ich leider noch nicht durchschaut. Kann das sein, daß sich hier nur der letzte Wert vor Aktivierung des mop-Modus gemerkt wird? Dieser gilt ja immer nur für eine Reinigung.
Leider schlägt die Erkennung des cleaning_mode "turbo" fehl, da auf >75 verglichen wird. Ich habe jetzt im Modul folgende Zeilen angepaßt, damit die Erkennung des cleaning_mode turbo auch funktioniert:
Zeile 2346: my $cleaningmode = ($cleaning_int > 89) ? "max" : ($cleaning_int > 74) ? "turbo" : ($cleaning_int > 40) ? "balanced" : ($cleaning_int > 10) ? "quiet" : "mop";
Zeile 2426: my $cleaningmode = ($cleaning_int > 89) ? "max" : ($cleaning_int > 74) ? "turbo" : ($cleaning_int > 40) ? "balanced" : ($cleaning_int > 10) ? "quiet" : "mop";
Markus, kannst Du Dir das bitte mal anschauen?
Ronny
Zitat von: ronny_b am 08 Dezember 2018, 17:47:10
Markus, kannst Du Dir das bitte mal anschauen?
Ja und nein, ich habe nur den V1.
Da sind es 38, 60, 77, 90.
Beim S50 hat sich das scheinbar zwischendurch schon wieder geändert - werde ich dir einfach glauben.
Ich habe jetzt nochmal getestet, fan_power wird über die Xiaomi-App wirklich auf Werte von 101 bis 105 gesetzt. Hier scheint im Modul noch ein Fehler zu existieren, diese Werte wurden nie richtig gesetzt. Die Werte der Liste von vorhin hatte ich ausgelesen, nachdem ich den cleaning_mode per FHEM gesetzt habe. Es wurden also über die Xiaomi-App andere Werte gesetzt als über FHEM!
Jetzt wird aber zumindest der cleaning_mode, egal ob ich ihn in der Xiaomi-App setzte (101 bis 105), oder per FHEM (38 bis 100) nach "get data" korrekt angezeigt.
Da Du ja nicht selbst testen kannst, stelle ich mich natürlich gerne als Tester zu Verfügung!
Ronny
So, nächster Versuch. Ich habe die Zeilen wieder getauscht:
elsif ($cmd eq 'cleaning_mode')
{
my $packetid = $hash->{helper}{packetid};
$hash->{helper}{packetid} = $packetid+1;
$hash->{helper}{packet}{$packetid} = "set_custom_mode";
if($hash->{model} ne "rockrobo.vacuum.v1") {
$arg[0] = ($arg[0] eq "quiet") ? "101" : ($arg[0] eq "balanced") ? "102" : ($arg[0] eq "turbo") ? "103" : ($arg[0] eq "max") ? "104" : ($arg[0] eq "mop") ? "105" : "102";
#$arg[0] = ($arg[0] eq "quiet") ? "38" : ($arg[0] eq "balanced") ? "60" : ($arg[0] eq "turbo") ? "75" : ($arg[0] eq "max") ? "100" : ($arg[0] eq "mop") ? "105" : "60";
} else {
$arg[0] = ($arg[0] eq "quiet") ? "38" : ($arg[0] eq "balanced") ? "60" : ($arg[0] eq "turbo") ? "77" : ($arg[0] eq "max") ? "90" : ($arg[0] eq "mop") ? "1" : "60";
}
XiaomiDevice_WriteJSON($hash, '{"id":'.$packetid.',"method":"set_custom_mode","params":['.$arg[0].']}' );
}
Wenn ich den cleaning_mode über die Xiaomi-App setze, wird das fan_power-Reading richtig auf Werte zwischen 101 und 105 gesetzt. Beim Setzen des cleaning_mode per FHEM kommen leider die falschen Werte im fan_power-Reading an.
Jetzt wollte ich versuchen, fan_power direkt zu steuern und habe mal den slider aktiviert:
elsif( defined($attr{$name}) && defined($attr{$name}{subType}) && $attr{$name}{subType} eq "VacuumCleaner"){
$list .= ' start:noArg stop:noArg pause:noArg spot:noArg charge:noArg locate:noArg dnd_enabled:on,off dnd_start dnd_end move remotecontrol:start,stop,forward,left,right reset_consumable:filter,mainbrush,sidebrush,sensors timezone volume:slider,0,1,100 volume_test:noArg';
$list .= ' carpet_mode:on,off';
$list .= ' sleep:noArg wakeup:noArg';
$list .= ' fan_power:slider,1,1,100' if(defined($hash->{model}) && $hash->{model} eq "rockrobo.vacuum.v1");
$list .= ' fan_power:slider,101,1,105' if(defined($hash->{model}) && $hash->{model} eq "roborock.vacuum.s5");
$list .= ' cleaning_mode:quiet,balanced,turbo,max,mop';
Trotzdem stehen, mit einer Ausnahme, nach der Auswahl die falschen Werte im fan_power-Reading:
ausgewählt Reading
101 38
102 60
103 75
104 100
105 105
Ich komme nicht dahinter, wodurch die falschen Werte wirklich gesetzt werden und bitte nochmals um Hilfe. Der Mop-Modus funktioniert ja!
Ronny
Wo ist jetzt genau das Problem?
Es ist egal was man setzt. Teilweise vertauscht der Roboter das sogar selbst wieder.
Was da genau steht ist eigentlich völlig egal, sobald du fan_power anfasst, hast du natürlich Werte <= 100
Die Version im Anhang geht demnächst ins Update
Ok, Du hast recht. Egal ob da jetzt 38 oder 101 steht, die Xiaomi-App scheint das trotzdem richtig zu erkennen. Dann war doch nur die Abfrage für cleaning_mode turbo falsch. Das paßt ja jetzt, Danke!
Ronny
Zitat von: ronny_b am 09 Dezember 2018, 15:36:50Ok, Du hast recht. Egal ob da jetzt 38 oder 101 steht, die Xiaomi-App scheint das trotzdem richtig zu erkennen. Dann war doch nur die Abfrage für cleaning_mode turbo falsch. Das paßt ja jetzt, Danke!
Stell ihn mal auf irgendwas >100 mit der Xiaomi App und schau nach ein paar Tagen und Reinigungsvorgängen, ob das immer noch so ist oder ob er wieder auf <100 landet.
Das war ein Problem zumindest bei älteren Firmwares.
Hallo Leute,
wir wollen uns auch gerade einen Saugroboter kaufen.
Eigentlich schwanke ich zw. dem iRobot 980 und einem Xiaomi, auch wenn die Geräte in völlig unterschiedlichen Preisklassen spielen. Jetzt habe ich mir hier einige Seiten des Threads durchgelesen und anscheinend läuft die Anbindung der Xiaomis an FHEM richtig gut. Fast 100 Seiten und richtig gute Eingangsposts beeindrucken mich auch erstmal! ;) Wenn ich mir im Gegensatz dazu den Roomba Thread durchlese, scheidet der gerade aus. Es gibt bei vielen Usern disconnects/reconnects oder so ähnlich.
Würdet ihr eher zu v1 oder zu v2 tendieren? Funktionieren die beide tadellos in FHEM?
Außerdem ist mir die Integration in Homebridge sehr wichtig. Über Google habe ich aber bereits die entsprechenden Module für die Xiaomis gefunden. Kann dazu nochmal jemand Feedback geben?
Gern auch in folgendem Thread antworten: https://forum.fhem.de/index.php/topic,71739.msg869757.html#msg869757
Danke euch und Gruß Hoppel
Ich habe den V1 mit Laser... Der V2 hat zusätzlich zu der Wischfunktion auch eine höhere Steighöhe, als er kommt besser über Hindernisse wie Teppiche oder Stuhlbeine rüber.
Die laufen bei Problemlos mit Fhem.
Ansonsten ist das ganze neue Modell (Xiaowa) mit einem Gyro Sensor auch nicht schlecht, da kann wenigstens nicht der Laser kaputt gehen. :D
Die Lasereinheit fällt bei manchen schon mal aus und ein Ersatzteil kostet ca. 90€.
Die Auflösung ist beim Xiaomi Roborock Xiaowa (E20 und E35) etwas geringer, aber er fährt genau so intelligent. https://www.mydealz.de/deals/xiaomi-roborock-xiaowa-plus-e35-robot-vacuum-black-1222213
Ob man den in Fhem anbinden kann, weiß ich allerdings nicht.
Nur die Youth Edition würde ich nicht kaufen, die fährt nach dem Chaos Prinzip.
Hier findest du noch mehr Input: https://www.roboter-forum.com/index.php?board/130-xiaomi/
Danke für die Infos. Es wird auf jeden Fall Xiaomi. Momentan ist noch unklar, ob v1 oder v2. Ich habe aber Tendenzen zum Roborock S50. ;)
Gruß Hoppel
Zitat von: Otto123 am 01 April 2018, 18:54:30
Hallo florian2833
klingt alles abenteuerlich, das hier war wohl zu einfach? -> https://forum.fhem.de/index.php/topic,73052.0.html
Also einfach die erste Seite von dem Thread?
Bei Dir liegt Perl in /home/pi ???
Wie hast Du das dahin bekommen? :'(
Gruß Otto
Muss hier dann doch nochmal einhacken. In besagtem Thread steht zwar was man braucht, aber nicht woher und wie man es auf dem Raspi installiert. Wollte das mal gradeziehen und scheitere schon daran :o
Zitat von: florian2833 am 22 Dezember 2018, 16:49:57
Muss hier dann doch nochmal einhacken. In besagtem Thread steht zwar was man braucht, aber nicht woher und wie man es auf dem Raspi installiert. Wollte das mal gradeziehen und scheitere schon daran :o
Was genau steht da nicht? Du meinst Dir fehlt linux? Das wissen über setup/install? Oder alles? :o
https://wiki.fhem.de/wiki/Raspberry_Pi
Gruß Otto
Hallo zusammen,
// Ach blöd, ich hatte den Token falsch übertragen. In der App gab es hier einen Zeilenumbruch. Und tatsächlich hatte ich die fehlende Zahl auch noch falsch aufgefüllt. Also alles gut, es funktioniert nun!
bei uns werkelt seit heute auch ein Roborock 2 herum. Leider bekomme ich das Teil nicht in Fhem integriert - es steht immer nur disconnected, den Log (Verbose 5) kann ich nicht korrekt interpretieren:
..Code gelöscht..
Das Gerät ist die EU Version, die Firmware aktualisiert auf 3.3.9_001633
Ich weiß gerade nicht weiter, wo kann ich ansetzen? Muss es ein Downgrade sein?
Schöne Weihnachten!
Ronny
Meiner läuft mit der gerooteten Firmware 3.3.9_001780 problemlos mit FHEM, also brauchts kein downgrade. Ohne logfiles kann man nur raten.
Hallo Leute,
habe mich gerade mal meinem kürzlich erworbenen Roborock S50 gewidmet.
Gestern habe ich mir ein IoT-VLAN (WLAN und LAN) konfiguriert und alle meine Komponenten die kein Debian-, macOS-, iOS-, tvOS-, Android-, AndroidTV- oder Windows-Betriebssystem haben in dieses neue VLAN umgezogen. So weit so gut. Jetzt habe ich gerade den Token über ein unverschlüsseltes Backup meines iPhones ausgelesen und den Roborock in FHEM integriert.
Super, das hat alles ohne Probleme geklappt! Vielen Dank für die guten Anleitungen und dieses tolle Modul.
Ein Thema habe ich allerdings noch mit der Homekit-Integration. Ich nutze die Eve-App. Ich habe einfach das folgende Mapping für den "Xiaomi Vacuum Cleaner 1. Generation" aus dem Wiki kopiert:
https://wiki.fhem.de/wiki/Homebridge_User_Configs#Xiaomi_Vacuum_Cleaner_1._Generation (https://wiki.fhem.de/wiki/Homebridge_User_Configs#Xiaomi_Vacuum_Cleaner_1._Generation)
Das funktioniert anscheinend soweit. Er startet und stoppt die Reinigung. Allerdings wird mir "Batterie schwach" angezeigt, obwohl die zu 100% voll ist.
Kann mir bitte jemand das Homebridge-Mapping für den Roborock S50 zur Verfügung stellen?
Danke euch und viele Grüße Hoppel
*** Doppelpost ***
Hallo zusammen,
habe meinen Xiaomi Vacuum Roboter V1 nun endlich im Fhem.
Einfache Anweisungen wie start und stop sind kein Problem aber ich schaffe es nicht den Timer zu setzen, da fehlt mir irgendwie die Doku.
Auch als ich mir den Code angesehen habe bin ich eigentlich zu dem Schluss gekommen, dass diese mit
set Staubsauger timer 12:00 1,2,3,4,5
für Wochentags um 12 gehen müsste. Es wird timer1 angelegt, allerdings fehlen dort sowohl Zeit, als auch Tage und timer1_power steht auf -1
auch die Modifikation des timers über
set Staubsauger timer1_time 12:00
bewirkt nichts.
Wo ist mein Denkfehler, oder stimmt etwas mit dem Modul nicht?
Gruß,
C0d4
Hallo Hoppel118,
der Fehler liegt in demReading-Namen
Zitat von: hoppel118 am 26 Dezember 2018, 18:45:18
Das funktioniert anscheinend soweit. Er startet und stoppt die Reinigung. Allerdings wird mir "Batterie schwach" angezeigt, obwohl die zu 100% voll ist.
Kann mir bitte jemand das Homebridge-Mapping für den Roborock S50 zur Verfügung stellen?
Danke euch und viele Grüße Hoppel
So sieht die Zeile bei mir aus:
StatusLowBattery=batteryState,values=ok:BATTERY_LEVEL_NORMAL;;low:BATTERY_LEVEL_LOW
Gesendet von iPhone mit Tapatalk
Zitat von: mike1969bln am 26 Dezember 2018, 21:24:40
der Fehler liegt in demReading-Namen
Super, danke für die Rückmeldung. Habe den Fehler mit den Readings aber gerade selbst schon gefunden. ;)
Ich musste folgende Readings des Mi Robot Homebridge-Mappings anpassen:
- BatteryLevel=batteryLevel --> BatteryLevel=batteryPercent
- StatusLowBattery=battery --> StatusLowBattery=batteryState
Bei mir sieht das Homebridge-Mapping nun also für den Roborock S50 wie folgt aus:
attr <XIAOMI> homebridgeMapping On=state,valueOn=Cleaning,cmdOn=start,cmdOff=charge
RotationSpeed=fan_power,minValue=0,maxValue=90,cmd=fan_power,delay=1
BatteryLevel=batteryPercent,maxValue=100,minValue=0,minStep=1
StatusLowBattery=batteryState,values=ok:BATTERY_LEVEL_NORMAL;;low:BATTERY_LEVEL_LOW
ChargingState=state,values=Docked:NOT_CHARGING;;Charging:CHARGING;;/.*/:NOT_CHARGEABLE
OccupancyDetected=state,values=/Docked|Charging/:OCCUPANCY_DETECTED;;/.*/:OCCUPANCY_NOT_DETECTED
FilterLifeLevel=consumables_filter,minValue=0,maxValue=100
FilterChangeIndication=consumables_filter,values=0:CHANGE_FILTER
In folgendem Bericht sieht man unter Features einen Screenshot mit weiteren Homebridge-Mappings, die ich durchaus auch interessant finde: https://www.npmjs.com/package/homebridge-xiaomi-roborock-vacuum
Die Readings dazu dürften wohl folgende sein:
consumables_filter
consumables_main_brush
consumables_sensors
consumables_side_brush
Aber wie bekomme ich die nun gemappt? Wie finde ich die korrekten Bezeichnungen und die möglichen "values" heraus? Kann ich Bezeichnungen selbst vergeben oder sind die irgendwo vorgegeben?
@mike1969bln Hast du das evtl. schon erfolgreich bewerkstelligt?
Danke euch und viele Grüße Hoppel
Zitat von: Otto123 am 22 Dezember 2018, 16:58:05
Was genau steht da nicht? Du meinst Dir fehlt linux? Das wissen über setup/install? Oder alles? :o
https://wiki.fhem.de/wiki/Raspberry_Pi
Gruß Otto
Hallo Otto,
schande über mich, aber ich glaube schon meine Linux erfahrung hält sich seeehr in grenzen. Aber klar du hast recht, die Installation von beispielsweise Pearl oder den libs ist ja alles linux. ::) Das heist ich werde mich da mal einlesen. 8)
Hallo florian2833,
du kannst gern konkret nachfragen ;D da hilft man gern, aber so Aussagen wie "geht nicht" oder "da steht nichts" die erzeugen kein Bild von dem was eigentlich fehlt. Und dann sitzen wir vor der Glaskugel. :o
Gruß Otto
Hallo Otto, da hast du natürlich recht. :)
In beschriebenen Thema steht ja:
Zitat
Benötigte Perl Module:
- JSON libjson-perl
- Digest::MD5 libdigest-md5-perl
- Crypt::CBC libcrypt-cbc-perl
- Crypt::Cipher::AES oder Crypt::Rijndael_PP CPAN
- Crypt::ECB libcrypt-ecb-perl (bei verschlüsseltem Token)
Mir ist bis heute nicht ganz klar wie ich die damals auf den raspi bekommen habe :o es gibt da bestimmt eine recht einfache Methode das zu installieren. Vielleicht kennst Du, oder jemand anderes eine Doku dazu die ich mir dazu durchlesen könnte?
Fhem läuft bei mir auf einem Raspberry Pi 3 - unter ähm raspbian nehme ich an.
Ps: wenn ich mir so die anfängerfragen durchlese, dann bin ich ja gar nicht so schlimm wie ich dachte.. ::)
Zitat von: hoppel118 am 26 Dezember 2018, 22:48:41
consumables_filter
consumables_main_brush
consumables_sensors
consumables_side_brush
Aber wie bekomme ich die nun gemappt? Wie finde ich die korrekten Bezeichnungen und die möglichen "values" heraus? Kann ich Bezeichnungen selbst vergeben oder sind die irgendwo vorgegeben?
Zum Verständnis nochmal. Wie bekomme ich die Indicators, die man im angehängten Screenshot sieht?
Ich habe es gerade Mal wie folgt getestet:
attr <XIAOMI> homebridgeMapping On=state,valueOn=Cleaning,cmdOn=start,cmdOff=charge
RotationSpeed=fan_power,minValue=0,maxValue=90,cmd=fan_power,delay=1
BatteryLevel=batteryPercent,maxValue=100,minValue=0,minStep=1
StatusLowBattery=batteryState,values=ok:BATTERY_LEVEL_NORMAL;;low:BATTERY_LEVEL_LOW
ChargingState=state,values=Docked:NOT_CHARGING;;Charging:CHARGING;;/.*/:NOT_CHARGEABLE
OccupancyDetected=state,values=/Docked|Charging/:OCCUPANCY_DETECTED;;/.*/:OCCUPANCY_NOT_DETECTED
FilterLifeLevel=consumables_filter,minValue=0,maxValue=100
FilterChangeIndication=consumables_filter,values=0:CHANGE_FILTER
MainBrushLevel=consumables_main_brush,minValue=0,maxValue=100
MainBrushChangeIndication=consumables_main_brush,values=0:CHANGE_MAIN_BRUSH
Die letzten beiden Zeilen (leicht eingerückt) zur "Main Brush" habe ich mir gerade auf Basis der beiden Zeilen darüber zum "Filter" adaptiert. Das funktioniert aber so nicht. Geht das überhaupt? Oder müsste dafür etwas am Modul angepasst werden?
Danke euch und Gruß Hoppel
Zitat von: florian2833 am 27 Dezember 2018, 22:00:28
Mir ist bis heute nicht ganz klar wie ich die damals auf den raspi bekommen habe :o es gibt da bestimmt eine recht einfache Methode das zu installieren. Vielleicht kennst Du, oder jemand anderes eine Doku dazu die ich mir dazu durchlesen könnte?
Schau mal hier im Wiki vorbei ;)
https://wiki.fhem.de/wiki/Mi_vacuum#Vorarbeiten_.28Linux.29
Gruß Hoppel
Danke :-) :D
Wieso hab ich das nur nicht gefunden ???
Zitat von: florian2833 am 28 Dezember 2018, 10:49:45
Wieso hab ich das nur nicht gefunden ???
Diese Frage wirst du wohl nur selbst beantworten können. ;)
Ich habe da auch nochmal eine Frage. Heute ist mir folgendes im Logfile aufgefallen:
2018.12.28 13:49:00 2: Roborock: connection timeout
2018.12.28 13:51:00 3: Roborock: disconnecting
2018.12.28 13:51:00 2: Roborock: connecting
2018.12.28 13:51:00 3: Roborock: initialized
2018.12.28 14:08:40 2: Roborock: connection timeout
2018.12.28 14:10:40 3: Roborock: disconnecting
2018.12.28 14:10:40 2: Roborock: connecting
2018.12.28 14:10:40 3: Roborock: initialized
2018.12.28 14:42:50 2: Roborock: connection timeout
2018.12.28 14:44:50 3: Roborock: disconnecting
2018.12.28 14:44:50 2: Roborock: connecting
2018.12.28 14:44:50 3: Roborock: initialized
2018.12.28 14:47:00 2: Roborock: connection timeout
2018.12.28 14:49:00 3: Roborock: disconnecting
2018.12.28 14:49:00 2: Roborock: connecting
2018.12.28 14:49:00 3: Roborock: initialized
Es handelt sich dabei um den Zeitraum, in dem mein Roborock eine Reinigung durchgeführt hat. Diese Meldungen (disconnecting, connecting, initialized) tauchen sonst nur einmalig nach dem Start des FHEM Service auf. Mein WLAN ist hier sehr gut ausgeleuchtet. Ich habe zwei "Unifi UAP AC Pro" AccessPoints in meinem Stockwerk im Einsatz. Roaming zwischen den APs funktioniert einwandfrei. Wenn ich hier bspw. mit einem iPad durch die Gegend laufe und dabei ein Youtube Video schaue, gibt es keine Probleme. Allerdings lege ich mein iPad auch nicht in die letzte Ecke eines Raumes, um herauszufinden, wie dort der Empfang ist. ;) Ansonsten gibt es hier auch keine anderen evtl. störenden WLANs. Ich wohne auf dem Lande.
Ist das normal?
Falls noch jemand eine Idee zu meinem Homebridge-Thema oben hat, wäre ich über eine Rückmeldung dankbar. ;)
Viele Grüße Hoppel
Zitat von: hoppel118 am 27 Dezember 2018, 22:15:07
Zum Verständnis nochmal. Wie bekomme ich die Indicators, die man im angehängten Screenshot sieht?
Die letzten beiden Zeilen (leicht eingerückt) zur "Main Brush" habe ich mir gerade auf Basis der beiden Zeilen darüber zum "Filter" adaptiert. Das funktioniert aber so nicht. Geht das überhaupt? Oder müsste dafür etwas am Modul angepasst werden?
Gar nicht, es gibt dafür schlicht keine Services in Homekit.
Zitat von: hoppel118 am 28 Dezember 2018, 23:23:47Es handelt sich dabei um den Zeitraum, in dem mein Roborock eine Reinigung durchgeführt hat. Diese Meldungen (disconnecting, connecting, initialized) tauchen sonst nur einmalig nach dem Start des FHEM Service auf.
Ist das normal?
Da es zwischendrin eine halbe Stunde gut gegangen ist, würde ich sagen dass der Empfang in ein paar Ecken nicht optimal ist.
Oder aber der Sauger ist einfach so ausgelastet, dass er nicht innerhalb einer halben Minute antwortet.
Probier's mal mit dem Anhang und berichte was passiert. Könnte dazu führen dass die Verbindung komplett abbricht, könnte aber auch das Problem lösen :)
Zitat von: Markus M. am 29 Dezember 2018, 01:12:48
Probier's mal mit dem Anhang und berichte was passiert. Könnte dazu führen dass die Verbindung komplett abbricht, könnte aber auch das Problem lösen :)
Die Disconnect sind mir heute auch aufgefallen.
Beim reload:
Global symbol "$currentstate" requires explicit package name (did you forget to declare "my $currentstate"?) at ./FHEM/72_XiaomiDevice.pm line 2994.
Zitat von: Typ1er am 29 Dezember 2018, 03:03:46Beim reload:
Global symbol "$currentstate" requires explicit package name (did you forget to declare "my $currentstate"?) at ./FHEM/72_XiaomiDevice.pm line 2994.
Ja, hab ich vergessen - ist spät ::)
Neue Version oben, kannst es damit nochmal probieren
Läuft erstmal ohne Probleme
Zitat von: Markus M. am 29 Dezember 2018, 01:12:48
Probier's mal mit dem Anhang und berichte was passiert. Könnte dazu führen dass die Verbindung komplett abbricht, könnte aber auch das Problem lösen :)
OK, habe das Modul gerade "installiert". Ich melde mich morgen, wenn die Putzhilfe mit dem Saugvorgang durch ist. Vrsl. wird vormittags gesaugt. ;)
Danke dir und viele Grüße
Moinsen,
bin gerade wieder zu Hause angekommen. Der Roborock hat die ganze Wohnung gesaugt, keine ,,disconnect"-Meldungen im Logfile. Sehr gut! :)
Darf ich fragen, was du geändert hast?
Wann wird es das angepasste Modul offiziell geben?
Danke dir und Gruß Hoppel
Zitat von: hoppel118 am 30 Dezember 2018, 13:00:56Darf ich fragen, was du geändert hast?
Wann wird es das angepasste Modul offiziell geben?
Ich hab die Timeouts während dem Saugvorgang komplett rausgenommen. Vielleicht nicht optimal...
Probier mal noch das hier
Ok, ich gebe dir morgen nach dem nächsten Saugvorgang nochmal Bescheid.
Gruß Hoppel
Kann man die Karte beim Zone reinigen festhalten? Mir dreht der Sauger die Karte oft um 90°, danach stimmt keine Zone mehr.
Zitat von: Typ1er am 30 Dezember 2018, 16:17:46
Kann man die Karte beim Zone reinigen festhalten? Mir dreht der Sauger die Karte oft um 90°, danach stimmt keine Zone mehr.
Würde mich auch interessieren, habe das gleiche Problem
Ist die Ladestation frei aufgestellt?
Sollte 50cm nach rechts und links und 100cm nach vorn Platz haben.
meine Basis ist frei. Nochmal getestet jetzt stimmt die Karte wieder.
Hat jemand eine Dummy angelegt für einen einzelnen Raum? Was nimmt man am besten zum Abbruch, das sich der Dummy wieder Ausschaltet.
Zitat von: hoppel118 am 30 Dezember 2018, 13:17:51
Ok, ich gebe dir morgen nach dem nächsten Saugvorgang nochmal Bescheid.
Das wird leider nichts. Hatte heute Nacht versehentlich "attr global verbose 5" an. Der Zeitraum im Logfile ist einfach zu unübersichtlich.
Evtl. wird morgen nochmal gesaugt... ;)
In diesem Sinne wünsche ich allen hier einen guten Rutsch ins neue Jahr!
Viele Grüße Hoppel
Frohes neues Jahr erstmal!
Heute gab es erneut keine ,,disconnects" in meinem Logfile. :)
Viele Grüße Hoppel
Hallo Leute,
ich hab zu Weihnachten einen neuen Luftreiniger bekommen, nur leider kann ich keinen Token mehr auslesen. :'(
Weder via MiToolkitt noch mit miio.
Toolkit Output: (hab auch X Versionen vom Mi HOME App versucht...nix)
zeigt alle Geräte an, aber ohne TOKEN. (auch bei root Handy nicht)
MIIO Output: (auch nach 1 Stunden 0)
root@raspberrypi:~# miio discover
INFO Discovering devices. Press Ctrl+C to stop.
Wie macht Ihr das??
LG
KOAL
Ich habe den Token kürzlich aus einem unverschlüsselten iTunes Backup von meinem iPhone (ohne Jailbreak) ausgelesen. Das ging leichter als erwartet, setzt allerdings ein iPhone voraus. ;)
Gruß Hoppel
Hi,
ok dann werd ich mal das eines ausborgen gehen, morgen. :)
DANKE, meld mich ob es ging.
LG
KOAL
Ich schätze, dass du den Robot dann mit diesem iPhone neu anlernen musst, damit der Token überhaupt verfügbar ist. Bin mir da aber nicht sicher, habe meinen Robot auch erst seit kurz vor Weihnachten. ;)
Viel Erfolg, Gruß Hoppel
Betreff Token:
Ich bin mir nicht sicher, ob die russische app aus #1214 weiterhilft, aber einen Versuch wär's doch wert, oder?
Hallo Zusammen,
danke als erstes für das Modul. Ich habe seit ein paar Tagen einen S50 und die Einbindung hat recht einfach geklappt!
Nun bin ich fleißig am testen und probieren.
Ganz toll finde ich die Möglichkeit der Zonen. Da hat man durch Fhem und diesem Modul viel mehr Möglichkeiten, aber das wisst Ihr ja...
Nun gibt es ja auch (wohl erst seit kurzen?) die Möglichkeit virtuelle Sperrzonen und Absperrbänder in der App zu platzieren. Die funktionieren, wenn ich sie in der App anlege, auch recht zuverlässig.
Gibt es hier schon Erfahrung, ob man das ebenso wie die "Reinigungszonen" durch das Fhem-Modul steuern kann/könnte?
VG und danke schonmal für Eure Mühe...
Zitat von: friesenjung am 07 Januar 2019, 21:50:13Nun gibt es ja auch (wohl erst seit kurzen?) die Möglichkeit virtuelle Sperrzonen und Absperrbänder in der App zu platzieren.
Gibt es hier schon Erfahrung, ob man das ebenso wie die "Reinigungszonen" durch das Fhem-Modul steuern kann/könnte?
Leider nein, da ich keinen S50 habe.
Wenn du deinen rooten kannst, könntest du mit einem MiIO Log aber weiterhelfen.
https://github.com/dgiese/dustcloud/wiki
Zitat von: Markus M. am 07 Januar 2019, 23:54:09
Leider nein, da ich keinen S50 habe.
Wenn du deinen rooten kannst, könntest du mit einem MiIO Log aber weiterhelfen.
https://github.com/dgiese/dustcloud/wiki
Gibt es schon eine "gerootete/rootbare" FW die das mit dem Kartenabspeichern kann, ist doch Voraussetzung für die Sperrzonen!?
Habe schon seit einiger Zeit nicht mehr geschaut (so ca. 1-2 Monate) aber da gab es noch keine mit dem Feature...
Wenn es die gibt, dann würde ich rooten (bzw. habe ich schon aber halt noch "alte" FW, also updaten) und könnte Logs liefern...
EDIT: hab gerade geschaut (hier: https://github.com/dgiese/dustcloud/wiki/Xiaomi-Vacuum-Firmware) da gibt es nur noch je eine FW zum Download. Auf die anderen FW-Links komme ich nicht drauf (Forbidden :-| ). Und da sind mir dann für die EU-Version zu viele Fragezeichen und die Tabelle für V2 (also Zuordnung von "geroteter bzw. rootbarer" FW zu Original-FW) ist quasi nicht vorhanden (also halt nicht gefüllt). Bevor ich da was "bricke" warte ich mal bis ich eine FW (von "vertrauenswürdiger" Seite) finde...
Gruß, Joachim
Zitat von: MadMax-FHEM am 07 Januar 2019, 23:57:53
Gibt es schon eine "gerootete/rootbare" FW die das mit dem Kartenabspeichern kann, ist doch Voraussetzung für die Sperrzonen!?
Habe schon seit einiger Zeit nicht mehr geschaut (so ca. 1-2 Monate) aber da gab es noch keine mit dem Feature...
Wenn es die gibt, dann würde ich rooten (bzw. habe ich schon aber halt noch "alte" FW, also updaten) und könnte Logs liefern...
Für den S50 gibt es die denke ich. Frag am besten mal im Telegram Channel nach.
Ich glaube Dennis hatte sogar irgendwo einen FW Generator, keine Ahnung ob der schon live ist.
Und dann müsstest du eben mal den MiIO Loglevel hochdrehen und mitschneiden.
Was mir für das Modul fehlt, ist nämlich wie die neuen Befehle aussehen.
Ich glaub ich hab FWs gefunden, ging dann mit den "direkten" Links:
V1:
https://cdn.awsbj0.fds.api.mi-img.com/updpkg/[package name]
V2:
https://cdn.awsbj0.fds.api.mi-img.com/rubys/updpkg/[package name]
Wenn man weiß wie die packages heißen ;)
Aber ich mache mich erst noch schlau welche ich brauche und was dann passiert/anders ist (und v.a. ob ich auf jeden Fall wieder zurück komme auf die, die ich jetzt drauf habe)...
Dann muss ich meinen "Root-PI" wieder (re)aktivieren ;)
Und dann brauche ich nat. Zeit mir die Funktionen anzusehen...
...und dann nat. Loggen.
Was (welcher Loglevel) stelle ich denn für das Loggen (wo) ein?
Und was genau soll ich dann liefern?
EDIT: wäre schön, wenn die "Sperrzonen" auch für den V1 kämen, da wäre es mir wichtiger...
Gruß, Joachim
Hi und danke für eure schnelle Antwort.
Also mit dem rooten will ich mir noch anschauen, hab die Infos im DustCloud Wiki eben kurz überflogen.
nur für mich als Verständnisfrage:
Also die https://cdn.awsbj0.fds.api.mi-img.com/rubys/updpkg/v11_001633.pkg (die habe ich momentan drauf und damit gehen ja die Sperrzonen) kann man jedenfalls runterladen.
Danach müsste ich versuchen diese, mit den in Dustcloud beschriebenen Schritten auf den Robbi zu spielen und dann schauen ob er noch läuft. Im besten Fall kann ich mich mit SSH einloggen und ich schlechtesten geht der Robbi nich mehr?
Mal sehen, ob ich mir auch so nen Root-Pi aufsetze, wie Madmax-Fhem das gemacht hat. Zeit ist halt wie immer der entscheidende Faktor... :-\
VG...
Macht erst mal, wie man Loglevel auf dem Sauger hochsetzt sehe ich dann noch nach [emoji106]
Zitat von: friesenjung am 08 Januar 2019, 16:31:12
Hi und danke für eure schnelle Antwort.
Also mit dem rooten will ich mir noch anschauen, hab die Infos im DustCloud Wiki eben kurz überflogen.
Mal sehen, ob ich mir auch so nen Root-Pi aufsetze, wie Madmax-Fhem das gemacht hat. Zeit ist halt wie immer der entscheidende Faktor... :-\
Der PI ist eigentlich schnell aufgesetzt, am Längsten dauert es das Image auf die SD zu spielen ;)
Du kannst auch hier mal schauen: https://forum.fhem.de/index.php/topic,86535.msg789573.html#msg789573
Zitat von: friesenjung am 08 Januar 2019, 16:31:12
nur für mich als Verständnisfrage:
Also die https://cdn.awsbj0.fds.api.mi-img.com/rubys/updpkg/v11_001633.pkg (die habe ich momentan drauf und damit gehen ja die Sperrzonen) kann man jedenfalls runterladen.
Danach müsste ich versuchen diese, mit den in Dustcloud beschriebenen Schritten auf den Robbi zu spielen und dann schauen ob er noch läuft. Im besten Fall kann ich mich mit SSH einloggen und ich schlechtesten geht der Robbi nich mehr?
Jep so ähnlich.
Ich habe mir gestern mal einige FW runtergeladen u.a. auch die von dir genannte und auch im Inet gelesen, dass ab dieser Version das mit den Sperrzonen geht...
Danke noch mal für's bestätigen!
Die andere (neueste FW) ist mir ein wenig zu viel mit Fragezeichen versehen... ;)
Bislang war das Rooten kein Thema...
...habe schon 6 Stück gerootet (4 V1 und 2 V2) auch schon mal ein "upgrade" einer gerooteten (wieder root) gemacht...
Bislang immer alles gut.
Gruß, Joachim
Zitat von: Markus M. am 08 Januar 2019, 16:34:12
Macht erst mal, wie man Loglevel auf dem Sauger hochsetzt sehe ich dann noch nach [emoji106]
Meinst du das hier: https://forum.fhem.de/index.php/topic,73052.msg792092.html#msg792092
Ich müsste (wenn ich Zeit hab/hatte und die neue gerootete FW drauf hab) nur wissen auf welchen Level...
...und was ich dann tun soll und was du dann brauchst...
Weil ich muss ja auch erst noch sehen wie das mit den Sperrzonen generell so geht ;)
Gruß, Joachim
Exakt das meinte ich :)
Ich glaube 3 sollte ok sein und alle Befehle aus der Cloud ins miio.log schreiben.
Danach einfach mal alle neuen Funktionen durchgehen und mir das Log schicken, dann baue ich die Kommandos ins Modul ein.
Vielleicht klappt dann ja manches auch schon mit dem V1 und ist nur in der App nicht sichtbar - war bei den Teppich Funktionen und der Lautstärke anfangs so.
Zitat von: Markus M. am 08 Januar 2019, 17:05:45
Exakt das meinte ich :)
Ich glaube 3 sollte ok sein und alle Befehle aus der Cloud ins miio.log schreiben.
Danach einfach mal alle neuen Funktionen durchgehen und mir das Log schicken, dann baue ich die Kommandos ins Modul ein.
Ok, dann weiß ich Bescheid...
Vielleicht klappt es ja schon morgen...
...heute eher nicht mehr :-|
Zitat von: Markus M. am 08 Januar 2019, 17:05:45
Vielleicht klappt dann ja manches auch schon mit dem V1 und ist nur in der App nicht sichtbar - war bei den Teppich Funktionen und der Lautstärke anfangs so.
Das wäre grandios!! :)
Weil (wie bereits geschrieben) beim V2 bräuchte ich das Feature gar nicht...
...beim V1 schon...
Gruß, Joachim
Kleiner Update:
also mein V2 hat nun besagte FW (001632) gerootet drauf.
MIIHome-App ist auch upToDate...
Jetzt noch den Log-Level setzen...
...und dann mal sehen.
Werde mich jetzt mal mit den Funktionen vertraut machen und dann das Log per PM schicken...
EDIT: habe gerade gesaugt und eine Sperrlinie und eine Sperrzone eingezeichnet und erneut saugen lassen. @Markus: du hast PM
Gruß, Joachim
Moinsen,
nochmal zurück zu den disconnects... Wenn ich die Reinigungsvorgänge betrachte, gibt es nun keine "disconnects" im Logfile mehr. Super! In letzter Zeit musste ich meinen FHEM-Service aber öfters mal neu starten. Dabei ist mir aufgefallen, dass es direkt nach dem Neustart einige Versuche gibt, bis die Verbindung steht. Manchmal 2, manchmal 3 Versuche, beispielsweise hier:
2019.01.10 16:09:07 3: Roborock: disconnecting
2019.01.10 16:09:07 2: Roborock: connecting
2019.01.10 16:09:07 3: Roborock: initialized
2019.01.10 16:09:56 2: Roborock: connection timeout
2019.01.10 16:11:56 3: Roborock: disconnecting
2019.01.10 16:11:56 2: Roborock: connecting
2019.01.10 16:11:56 3: Roborock: initialized
2019.01.10 16:12:45 2: Roborock: connection timeout
2019.01.10 16:14:45 3: Roborock: disconnecting
2019.01.10 16:14:45 2: Roborock: connecting
2019.01.10 16:14:45 3: Roborock: initialized
Danach tauchen dann keine disconnects mehr auf.
Ist das normal?
Gruß Hoppel
Hi,
ja der Webbuilder ist mittlerweile in einer Art Testbetrieb: https://dustbuilder.xvm.mit.edu
Im Telegram Channel steht ein Voucher, der für die normalen Sachen geht.
Mit dem Server schaue ich mir an. Am besten mich immer mal direkt anschreiben, wenn ich nach 1-2 Tagen nicht reagiere. Gibt zu viele Foren um den Überblick zu behalten ;)
Zitat von: dgi am 11 Januar 2019, 07:08:32
Hi,
ja der Webbuilder ist mittlerweile in einer Art Testbetrieb: https://dustbuilder.xvm.mit.edu
Im Telegram Channel steht ein Voucher, der für die normalen Sachen geht.
Mit dem Server schaue ich mir an. Am besten mich immer mal direkt anschreiben, wenn ich nach 1-2 Tagen nicht reagiere. Gibt zu viele Foren um den Überblick zu behalten ;)
Hi Dennis,
FW bauen und drauf spielen ist (für mich) nicht das Problem.
Habe mir dafür extra einen PI "gebastekt" ;)
Kann ich (und wenn wie) folgende Features auch beim selber Bauen einstellen:
- Preinstall OTA rootkit (root survives updates)
(sind damit Updates über den Xiaomi-Server gemeint!?)
- Preinstall CCC2CE (convert CN vacuum to EU)
(alle meine Vacuums V1 [waren zunächst: Mainland China] wie V2 [die gingen gar nicht erst mit China] hängen nun [noch] am Europa-Server / oder ist damit ganz was anderes gemeint)
- Preinstall Nano texteditor, wget, htop, hexdump
(das nachträglich zu installieren ist ja kein Problem [nano hab ich schon selbst drauf], es ist ja "einfach" eine Linux/Ubuntu-Büxe ;) )
Danke, Joachim
Moin moin,
ich wollte grad mal die Zonenreinigung über nen DOIF und einen Dummy in Alexa_FHEM einbinden... Ich habe mir erstmal die Küche vorgenommen.. Hat super mit dem Befehl
set Staubi zone 27104,17188,29054,19388,1
geklappt.
Jetzt hab ich ein wenig rumgetestet und er hat dann auf einmal nur die Karte rund um seinen Standort angezeigt. Die Zonenreinigung hat er dann abgebrochen, da die Karte nicht mehr vorhanden war. Die Basisstation habe ich nicht bewegt in der Zwischenzeit. Nachdem ich ihn manuell nochmal in die Küche gefahren habe, zeigt mir FloleVac mittlerweile ganz andere Koordinaten an.. Jetzt macht er die Zonenreinigung der Küche über
set Staubi zone 22444,31663,24594,33863,1
Wie kann ich denn sicherstellen, dass die Koordinaten bleiben?
P.S. ist sicherlich irgendwo hier im Board erklärt, allerdings find ich nix über "meine" Sucheingaben...
Moin,
Der Mi erzeugt bei jedem Start, per App oder Taster oder Fhem, eine neue Karte.
Will man die Zonenreinigung benutzen, muss der Robot erstmal immer alles abfahren. Koordinaten übernehmen und mit Fhem starten. Klappt immer.
Wenn man dann einen separaten Bereich über "Start" reinigt, wird die Karte neu aufgebaut und die bestehrndrn Zonen im Fhem stimmen nicht mehr.
Dann also wieder alles abfahren, wie oben beschrieben, und die Zonen stimmen wieder.
Alternativ Root einrichten und die Karten speichern und zurückladen.
Helmut
Hallo Helmut,
warum ändern sich denn die Daten dann bei mir bei erneutem abfahren der Strecke? Hab ihn direkt in die Küche gejagt, also nicht noch die Nebenräume wie Bad und Büro abgefahren. Die Koordinaten haben sich komischerweise trotzdem geändert...
Moin,
Das kenne ich so nicht.
Wenn an exakt die gleiche Fläche abfährt, bleiben die Koordinaten gleich.
Zumindest bei meinen 2 Robotern.
Wenn größere Hindernisse sich ändern bei gleicher Fläche, wird die Karte oft gedreht, so dass sie optisch aufs Handy passt.
Dann sind die Koordinaten auch geändert.
Gruß Helmut
Zitat von: hoppel118 am 06 Januar 2019, 00:16:04
Ich habe den Token kürzlich aus einem unverschlüsselten iTunes Backup von meinem iPhone (ohne Jailbreak) ausgelesen. Das ging leichter als erwartet, setzt allerdings ein iPhone voraus. ;)
Gruß Hoppel
Hallo,
DANKE es hat funktioniert.
Als leicht würd ich es aber nicht bezeichnen, war schon komplizierter als aus dem Android. ABER es geht noch!! JUHUUU!!
LG
KOAL
Zitat von: hoppel118 am 06 Januar 2019, 23:18:44
Ich schätze, dass du den Robot dann mit diesem iPhone neu anlernen musst, damit der Token überhaupt verfügbar ist. Bin mir da aber nicht sicher, habe meinen Robot auch erst seit kurz vor Weihnachten. ;)
Viel Erfolg, Gruß Hoppel
Hi,
nein neu anlernen war nicht notwendig. :)
Man bin ich froh das es wieder geht.
LG
KOAL
Super, viel Spaß damit! ;)
Da ich letzte Tage meine beiden Roboter (V1 und V2) in ein separates WLAN verbannt habe, musste ich sie natuerlich zuruecksetzen.
Um den Token auszulesen habe ich auf einem Tablet mit root die Version 5 der mi home installiert, Roboter zum neuen WLAN verbunden.
Anschliessend die App "Amaze File Explorer" installieren (entweder fdroid oder play store). Damit kann man dann ins Verzeichnis wechseln wo die miio2.db liegt und die direkt in der App aufmachen um den Token auszulesen. Das spart einem die ganze Arbeit mit File uebertragen und separat auszulesen.
Dachte das hilft vielleicht dem einen oder anderen hier ;)
EDIT: Die Datei befindet sich hier:
/data/data/com.xiaomi.smarthome/databases/miio2.db
Dann bitte devicerecord auswaehlen und nach rechts scrollen, dann kommt die Spalte mit Token.
Nur so als kleine Info: Wo liegt denn die miio2.db?
Ich kann sie auf meinem Android-phone nirgends entdecken.
Zitat von: RappaSan am 23 Januar 2019, 09:16:39
Nur so als kleine Info: Wo liegt denn die miio2.db?
Ich kann sie auf meinem Android-phone nirgends entdecken.
ZitatUm den Token auszulesen habe ich auf einem Tablet mit root die ...
Überlesen. Sorry.
Für diejenigen ohne gerootetem Android empfehle ich die russische app aus #1214.
Hallo hillbicks,
hier mit Root-Zugriff, finde die Datei aber trotzdem nicht. Gibt es einen bestimmten Pfad?
Zitat von: TomLee am 23 Januar 2019, 09:47:26
Zitat von: RappaSan am Heute um 09:16:39
Nur so als kleine Info: Wo liegt denn die miio2.db?
Ich kann sie auf meinem Android-phone nirgends entdecken.
Zitat
Um den Token auszulesen habe ich auf einem Tablet mit root die ...
Grüße
TW
Die Datei findest Du hier:
/data/data/com.xiaomi.smarthome/databases/miio2.db
Dann bitte devicerecord auswaehlen und nach rechts scrollen, dann kommt die Spalte mit Token.
Ok, das hängt dann wohl von der Android Version ab. Mein gerootetes Handy kann hier leider nur mit 4.3 aufwarten, da ist das Verzeichnis /data leer.
Unter /storage/emulated/0/Android/data gibt es zwar einen Ordner com.xiaomi.smarthome, aber da liegt keine databases drin. Eigentlich sollte ja irgendwo eine miio2.db rumliegen, aber ich finde nichts :-(
Ich finde aber eine RobotConfig.frc, da könnte man wohl auch das Token extrahieren (irgendwo nach einem kleinen e, davon habe ich aber mehrere). Wie lang ist das Token, immer gleich?
Gruß
TW
@Torchwood
die Möglichkeit den Token über diese modifizierte App direkt im Klartext auszulesen, wie bereits in Post #1214 von mir beschrieben, funktioniert immer noch wunderbar und dauert nur 2 min :)
https://github.com/MeisterTR/ioBroker.mihome-vacuum/blob/master/README.md#easy-token-discovery-on-android
Hallo erstmal,
heute war dann der Saugroboter endlich im UPS Fahrzeug...
Ich wollte mich sofort an die Installation machen, problem ist ich benutze ActivePerl 5.24 auf einem Synology NAS (716+ii)
Mein problem ist jetzt das installieren der zusätzlichen Pakete via ppm.
Hat jemand eine Installation auf einer Syno am laufen? Falls ja - kannst Du Dich vieelleicht an die Pakete und deren Namen erinnern die zusätzlich installiert werden mussten..?
Hi,
ich hab mir den hier gegönnt:
https://www.banggood.com/Xiaomi-Mijia-Air-Quality-Tester-High-precision-Sensing-3_97-inch-Screen-Resolution-800480-USB-Inter-p-1381312.html?rmmds=detail-left-hotproducts__13&HotRecToken=CgExEAIaAklWIgJQRCgB&cur_warehouse=CN
Tolles Teil, kan PM2.5, TVOC und CO2 messen (neben Temp und Hum). Jetzt würde ich die Daten natürlich auch gerne ausserhalb der China-Cloud verwenden. Komme ich mit dem Modul prinzipiell ran?
So, hat nun zwar ein bisschen gedauert, aber ich hab den Sauger nun in FHEM integriert.
Die für mich spannendste frage ist - kann man in einem Grundriss auch einen Bereich markieren der nicht gereinigt werden soll..?
Oder müsste man den Grundriss in Zonen einteilen und nicht zu befahrende stellen nicht abdecken..?
Könnte man einen größeren "Zone Clean up" anlegen und speichern, sodass er wieder verfügbar ist?
Hauptproblem bei uns wäre die Bodengleiche Dusche die der Robo zu gerne befahren würde ;-)
Wie oft schickt Ihr den Roboter automatisiert los? Da reicht doch wahrscheinlich alle 3 Tage, oder?
Zitat von: der-Lolo am 02 Februar 2019, 17:41:57
Wie oft schickt Ihr den Roboter automatisiert los? Da reicht doch wahrscheinlich alle 3 Tage, oder?
Hi,
einfach jeden Tag. Du wirst staunen ;D
Zum noGo Bereich: Hol Dir Magnetband! Oder mach es mechanisch.
Gruß Otto
Beim V2 geht das mit no-go recht gut.
Da ich meinen V2 auch gerootet habe und mich bereit erklärt hab Daten zu liefern auch mal eine Spezial-Version von Markus bekommen, wo man no-go von fhem aus setzen konnte.
Da ich das Feature bei meinem V2 nicht nutze (bräuchte es eher beim V1 ;) ) hab ich auch nicht nachgehakt...
Hoffentlich hab ich jetzt nix verraten...
Gruß, Joachim
Wäre an den no-go Zonen Funktion für den V2 interessiert.
Gruß
Ich an denen für V1..
Magnetband wäre auch ok für mich - ich versuchs mal.
Täglich fahren wäre mir aber zuviel, schon wegen Batterie und verschleiß.
Was passiert wenn ich von FHEM aus ein Sleep sende? Ist WOL mässig gemacht?
No-Go Zonen waere wirklich eine sehr schoene Sache. Im Erdgeschoss faehrt sich die V2 immer unter dem haengenden Klo fest, im Dachgeschoss die V1 am Teppich der einen kleinen Tick zu hoch ist. Hier leidet grade nicht nur der WAF, sondern auch mein eigener. ;D
No-go-Zonen geht auch ohne fhem, mit der App halt und nat. V2.
Das schöne an dem "Feature" mit fhem war: man könnte so verschiedene no-go-zonen "scharf schalten" ;)
So ähnlich wie mit "Zone-Clean"...
Für V1 geht es wohl nicht...
...vielleicht hab ich noch mal Zeit und schaue was der V1 "sagt", wenn ich ihm no-go-zonen "vorwerfe"...
...mit der App geht es leider noch nicht... :-\
Gruß, Joachim
Zitat von: Darkmann am 02 Februar 2019, 20:25:35
Wäre an den no-go Zonen Funktion für den V2 interessiert.
Das sollte mit dem
save_map Befehl bereits funktionieren. Syntax ist wie bei den Zonen.
Hatte ich den nicht schon im offiziellen Update?!
Ich kann ,,set vacuum save_map xxxx" auswählen. Aber ein Attribut habe ich nicht gefunden. Oder lässt sich dafür auch das zone_names Attribut verwenden? Eine Drop-Down Liste erscheint auch nicht.
Zitat von: Markus M. am 05 Februar 2019, 14:24:49
Das sollte mit dem save_map Befehl bereits funktionieren. Syntax ist wie bei den Zonen.
Hatte ich den nicht schon im offiziellen Update?!
Hallo Markus,
hmm hab ich noch nicht getestet...
Aber angekündigt: neues Feature etc. hab ich nichts gelesen...
...mich nur gewundert, dass das Feature nicht "verkündet" wurde ;)
Gruß, Joachim
Zitat von: thymjan am 05 Februar 2019, 15:05:35
Ich kann ,,set vacuum save_map xxxx" auswählen. Aber ein Attribut habe ich nicht gefunden. Oder lässt sich dafür auch das zone_names Attribut verwenden? Eine Drop-Down Liste erscheint auch nicht.
Du möchtest also Presets wie bei den Zonen?
Das ist tatsächlich noch nicht drin.
Wenn du es brauchst, kann ich es demnächst mal noch einbauen.
Wär zumindest schön, wenn save_map im "Device specific help" erklärt würde...
ZitatDu möchtest also Presets wie bei den Zonen?
Das ist tatsächlich noch nicht drin.
Wenn du es brauchst, kann ich es demnächst mal noch einbauen.
Ich hab die Syntax / die Anwendungsweise noch nicht richtig verstanden. Wenn ich den Befehl
set vacuum save_map [x1,y1,x2,y2,n]
abgesetzt habe. Wird die Fläche dann gespeichert? Und dann fährt der Sauger dort nicht hin?
Ich hab' auch nur den V1... Falls es da mal funktioniert wären "nogo_zones" schon komfortabel.
Zitat von: thymjan am 05 Februar 2019, 16:54:05
Ich hab die Syntax / die Anwendungsweise noch nicht richtig verstanden. Wenn ich den Befehl
set vacuum save_map [x1,y1,x2,y2,n]
abgesetzt habe. Wird die Fläche dann gespeichert? Und dann fährt der Sauger dort nicht hin?
Ja so ist es.
Bzw. gibt es die Möglichkeit eines Bereiches (ähnlich "zone-clean" nur halt quasi "no-clean-zone" ;) ) und aber auch "Sperrlinien", also sowas wie ein "virtuelles Magnetband"...
Zitat von: thymjan am 05 Februar 2019, 16:54:05
Ich hab' auch nur den V1... Falls es da mal funktioniert wären "nogo_zones" schon komfortabel.
Ja mir wäre es für den V1 auch wichtiger...
...der V2 fährt nur in Bad und Küche und da darf er überall und die Tür ist zu, also brauche ich da nicht mal "zone-clean"...
Gruß, Joachim
Magnetband ist heute gekommen - puh ganz schön dickes globiges schweres Zeug - ob mir das im Bad vor Der Dusche gut gefällt..? Also ich bin nicht sicher ob das für mich die Lösung ist.
Ich hab mir ein DOIF auf Residents absent angelegt, den Trigger auf nur einmal am Tag könnte ich doch mit dem Timestamp von history_0 holen, oder? Hat da vielleicht jemand schon einen schnipsel - oder muss ich mich durch den Faden lesen ?
Zitat von: der-Lolo am 05 Februar 2019, 21:05:08
Magnetband ist heute gekommen - puh ganz schön dickes globiges schweres Zeug - ob mir das im Bad vor Der Dusche gut gefällt..? Also ich bin nicht sicher ob das für mich die Lösung ist.
V1 oder V2?
Bei V2 gäbe es das Magnetband auch in "virtuell"...
Zitat von: der-Lolo am 05 Februar 2019, 21:05:08
Ich hab mir ein DOIF auf Residents absent angelegt, den Trigger auf nur einmal am Tag könnte ich doch mit dem Timestamp von history_0 holen, oder? Hat da vielleicht jemand schon einen schnipsel - oder muss ich mich durch den Faden lesen ?
Ich nehme "total_cleans" habe zusätzlich (nötig weiß ich nicht [mehr]) "attr Sauger timestamp-on-change-reading total_cleans" gesetzt...
Das Reading wird (bei mir) immer am Ende des Saugvorganges gesetzt...
EDIT: Schnipsel (allerdings Perl nicht DOIF-Syntax): if(ReadingsAge("Sauger", "total_cleans", 0) > 24*60*60) -> sauge [oder auch weniger "Sekunden" als ein ganzer Tag ;) ]
Gruß, Joachim
Zitat von: MadMax-FHEM am 05 Februar 2019, 17:27:51
Bzw. gibt es die Möglichkeit eines Bereiches (ähnlich "zone-clean" nur halt quasi "no-clean-zone" ;) ) und aber auch "Sperrlinien", also sowas wie ein "virtuelles Magnetband"...
Hallo,
ich habe einen v2 und will den Teppich beim Wischen nicht mitsaugen. Über die bekannten Apps kann ich ja keine Flächen dauerhaft speichern bzw. muss die nach dem Löschen umständlich neu zeichnen.
Kann ich das etwa über das Modul realisieren? Woher nehme ich die Koordinaten für die No-Go-Area? (FloreVac, oder wird die aktuelle irgendwo ausgelesen?)
Und wie kann ich die anschließend aktivieren und deaktivieren?
Viele Grüße
Ronny
Wieso musst du das über die App jedes Mal neu machen?
Ich hatte die einmal (zum Test) angelegt (also no-go-zone) und dann war sie da und ist bei jedem Start geblieben (soweit ich mich erinnere)...
Auslesen ist nicht so leicht aktuell.
Man kann es aus den Logeinträgen bei einem gerooteten Sauger auslesen (so hat es Markus bei mir gemacht).
Leider geht das bei der FloleApp (noch) nicht auch habe ich bei der MIIApp nichts gefunden...
EDIT: aktivieren über save_map (bzw. wie das heißt) / deaktivieren, hmm, gute Frage. Hab ich nur über die MIIApp gelöscht. Ob da ein entsprechender Befehl (den Markus gesehen hat) dabei war weiß ich nicht. (ich hab nicht so detailliert ins Log geschaut)
Gruß, Joachim
Zitat von: thymjan am 05 Februar 2019, 16:54:05
Ich hab die Syntax / die Anwendungsweise noch nicht richtig verstanden. Wenn ich den Befehl
set vacuum save_map [x1,y1,x2,y2,n]
abgesetzt habe. Wird die Fläche dann gespeichert? Und dann fährt der Sauger dort nicht hin?
Ich hab' auch nur den V1... Falls es da mal funktioniert wären "nogo_zones" schon komfortabel.
Nein, die Syntax ist hier etwas anders.
Das hier hatte jemand als Beispiel, sollte eine Linie und eine Fläche ergeben:
1,26353,26920,27314,26042 0,25375,26490,25884,26490,25884,25860,25375,25860
Wie du die Dinger bekommst, kann ich dir leider nicht sagen.
Vielleicht gibt es noch get_map müsste mal jemand mit einem S5 direkt via MiIO testen.
Da bin ich leider mangels Hardware raus.
Teste man den Anhang, damit hast du jetzt named presets
Also z.B.
attr vacuum map_names testmap:[1,26353,26920,27314,26042],[0,25375,26490,25884,26490,25884,25860,25375,25860]
EDITBitte nochmal runterladen und auch folgendes testen:
start_edit_map
end_edit_map
reset_map
use_new_map
use_old_map
get_persist_map
get_fresh_map
lab_status
Eventuelle Logeinträge (verbose 3) bitte posten
Zitat von: Markus M. am 06 Februar 2019, 17:58:30
Teste man den Anhang, damit hast du jetzt named presets
Also z.B.
attr vacuum map_names testmap:[1,26353,26920,27314,26042],[0,25375,26490,25884,26490,25884,25860,25375,25860]
Danke!
Werde die Version mal testen...
...wenn Zeit ist...
Zitat von: Markus M. am 06 Februar 2019, 17:58:30
Wie du die Dinger bekommst, kann ich dir leider nicht sagen.
Vielleicht gibt es noch get_map müsste mal jemand mit einem S5 direkt via MiIO testen.
Da bin ich leider mangels Hardware raus.
Wie müsste ich das testen?
Logeinstellung beim Sauger wie gehabt (auf 3) und dann in der MIIO-App was?
Karte laden?
Vielleicht finde ich auch was wo das abgelegt wird...
...brauche nur erst mal wieder etwas Zeit dafür :-\
Gruß, Joachim
So sieht das dann aus:
Bild1: im "Edit-Modus"
Bild2: Linie und Rechteck
Gruß, Joachim
Mein S50 ist die Tage angekommen. das Token habe ich ausgelesen, ist 32 Zeichen lang, rein numerisch.
Auch wenn nicht alle Module benötigt werden, so habe ich trotzdem alle vom Wiki installiert, es gab auch keine Fehler.
sudo apt-get install libjson-perl
sudo apt-get install libdigest-md5-perl
sudo apt-get install libcrypt-cbc-perl
sudo cpan Crypt::Rijndael_PP
sudo apt-get install libcrypt-ecb-perl (nur nötig, wenn ihr einen verschlüsselten Token mit 96 Zeichen habt)
sudo cpan Crypt::Cipher::AES (nur nötig, wenn Crypt::Rijndael_PP aus irgendwelchen Gründen nicht funktioniert)
Trotzdem kommt "Crypt::Cipher::AES or Crypt::Rijndael_PP is required!"
Woran kann das liegen?
Hi,
ich habe ein kleines DOIF gebaut um "dynamisch" einzelne Räume, Kombinationen oder alles reinigen zu können. Vielleicht ist das für den einen oder anderen auch interessant. Ich habe für jeden Raum einen Dummy und einen Start.Saugen dummy. Mann kann die einzelnen Räume selektieren (Ich mache das in HomeKit) und beim drücken den Startbuttons werden die entsprechenden Räume gesaugt. Es gibt eine Limitierung auf 5 Zonen seitens des Staubsaugers. Wenn man feiner aufteilen will muss Zonen zusammenfassen wenn es nötig wird. Ein saugen ohne Zonen kann ich leider bei uns nicht starten, da wir eine NOGO Zone bräuchten, der v1 das aber nicht kann. Das DOIF überwacht auch noch die Anzahl der Cleanings und fährt den Sauger zum Mülleimer wenn nötig.
##Saugen Stoppen
([Start.Saugen] eq "off")
(set WZ.XiaomiRobot charge, get WZ.XiaomiRobot data)
##Wenn Staubsauger fertig, alle Dummys resetten und benachrichtigen, wenn nötig in die Küche fahren zum entleeren
DOELSEIF
([WZ.XiaomiRobot:state] eq "Charging")
(set Start.Saugen off,
set EZ.Saugen off,
set FL.Saugen off,
set GWC.Saugen off,
set HWR.Saugen off,
set KUE.Saugen off,
set WZ.Saugen off,
get WZ.XiaomiRobot clean_summary,
setreading WZ.XiaomiRobot dayclean true,
deletereading WZ.XiaomiRobot zonenspeicher.*,
setreading WZ.XiaomiRobot dustbin {([WZ.XiaomiRobot:dustbin]+1)})
((set push message [WZ.XiaomiRobot:history_0] | Staubsaugen beendet))
(IF ([WZ.XiaomiRobot:dustbin] ge "3")
(setreading WZ.XiaomiRobot dustbin 0, (set push message Sauger fährt in die Küche um Staubbehälter zu leeren | Staubbehälter), (set WZ.XiaomiRobot goto 27600,19800)) )
## Zonenreinigung
DOELSEIF
([Start.Saugen] eq "on")
(IF ([WZ.Saugen] eq "on")
((setreading WZ.XiaomiRobot zonenspeicher1 24800,21800,28850,26000,1)) )
(IF ([FL.Saugen] eq "on")
((setreading WZ.XiaomiRobot zonenspeicher2 23400,17500,26000,21800,1)) )
(IF ([GWC.Saugen] eq "on")
((setreading WZ.XiaomiRobot zonenspeicher3 20800,20200,23500,21800,1)) )
(IF ([HWR.Saugen] eq "on")
((setreading WZ.XiaomiRobot zonenspeicher4 20800,18300,23500,19600,2)) )
(IF ([KUE.Saugen] eq "on")
((setreading WZ.XiaomiRobot zonenspeicher5 26000,17500,28200,21800,1)) )
(IF ([EZ.Saugen] eq "on")
((setreading WZ.XiaomiRobot zonenspeicher6 20800,23000,24800,26000,1)) )
##Zonen zusammenfassen bei Vollreinigung, da mehr als 5 Räume
(IF ([FL.Saugen] eq "on" and [GWC.Saugen] eq "on" and [HWR.Saugen] eq "on" and [KUE.Saugen] eq "on")
(deletereading WZ.XiaomiRobot zonenspeicher4,
deletereading WZ.XiaomiRobot zonenspeicher5,
(setreading WZ.XiaomiRobot zonenspeicher2 20800,17500,28700,21800,1),
(setreading WZ.XiaomiRobot zonenspeicher3 20800,17500,24500,19600,2)) )
((set WZ.XiaomiRobot zone [WZ.XiaomiRobot:zonenspeicher1] [WZ.XiaomiRobot:zonenspeicher2] [WZ.XiaomiRobot:zonenspeicher3] [WZ.XiaomiRobot:zonenspeicher4] [WZ.XiaomiRobot:zonenspeicher5] [WZ.XiaomiRobot:zonenspeicher6]))
Vielen Dank für das DoIF, ich habe bei mir versucht das Ganze mit einem Dummy in Alexa einzubinden ( also nicht Dein DoIF ). Bei mir fährt der Sauger dann nur kurz nach vorne und fährt dann wieder an die Station zurück... Hast Du Deinen V1 dafür gerootet?
Hi,
nein ist nicht gerootet. Wenn der Sauger nur kurz nach vorne fährt stimmt zu 99% etwas nicht an den Koordinaten die du angibst. Wenn die für den Staubsauger invalid sind führt das genau zu dem verhalten.
Ich kann es mal versuchen zu erklären:
Start ist immer bei 25000,25000 (Ladestation), nach unten wird y verkleinert, nach oben vergrößert. X wird nach rechts erhöht und nach links verringert . Zum testen kann du mal eine kleine Zone von der Ladestation aus erstellen. X1,Y1 ist von dem Rechteck immer die linke Seite, X2 und Y2 die Rechte. Das ganze ist abhängig von der Kartendarstellung bei dir.
Also:
25000,24000,26000,25000,1
sollte ein Rechteck von der Ladestation nach unten und rechts ergeben.
Grüße
Wenn man keine Komplette Karte in der MiApp vorhanden ist, und der Sauger dann außerhalb des Bereichs Fahren soll, fährt er kurz vor und bricht dann ab.
Mir ist gerade aufgefallen, daß die history_0...9 Daten beim Saugrobbi V1 nicht mehr mit den neuen Daten aktualisiert werden.
Hab ich da etwas verpasst? ???
Zitat von: RappaSan am 08 Februar 2019, 13:40:35Mir ist gerade aufgefallen, daß die history_0...9 Daten beim Saugrobbi V1 nicht mehr mit den neuen Daten aktualisiert werden.
Hab ich da etwas verpasst? ???
Funktioniert bei mir noch.
Vielleicht mal auf verbose 5 debuggen?
Zitat von: Christian72D am 06 Februar 2019, 20:38:30
Mein S50 ist die Tage angekommen. das Token habe ich ausgelesen, ist 32 Zeichen lang, rein numerisch.
Auch wenn nicht alle Module benötigt werden, so habe ich trotzdem alle vom Wiki installiert, es gab auch keine Fehler.
sudo apt-get install libjson-perl
sudo apt-get install libdigest-md5-perl
sudo apt-get install libcrypt-cbc-perl
sudo cpan Crypt::Rijndael_PP
sudo apt-get install libcrypt-ecb-perl (nur nötig, wenn ihr einen verschlüsselten Token mit 96 Zeichen habt)
sudo cpan Crypt::Cipher::AES (nur nötig, wenn Crypt::Rijndael_PP aus irgendwelchen Gründen nicht funktioniert)
Trotzdem kommt "Crypt::Cipher::AES or Crypt::Rijndael_PP is required!"
Woran kann das liegen?
Keiner eine Idee???
Er meckert, weil er benötigte Software nicht findet.
Wenn die installiert ist, mal ein Reboot versucht?
Hab gerade festgestellt, daß in der MiHome app ebenfalls die "Cleaning history" nicht weitergeführt wird. Letzter Eintrag ist vom 24.1.2019.
Danach mußte ich einen neuen Akku bestellen (sudden death), der gestern eingebaut wurde.
Nu läuft der Sauger wie zuvor wieder, aber ohne history.
Ich bin auf dem Europa server. Vielleicht stimmt dort etwas nicht.
Alles wieder OK.
Die Karte mußte wieder neu aufgebaut werden. Nach einem kompletten cleaning (kein zoned clean) gibt es auch wieder die entsprechenden History-Einträge.
Hat die Karte also so etwas wie ein Verfallsdatum... ???
Zitat von: Christian72D am 09 Februar 2019, 07:29:42
Keiner eine Idee???
Rijndael_PP ist nicht richtig installiert.
Versuch doch mal es zu entfernen und stattdessen AES zu installieren.
Moin,
ich hatte lange meinen Sauger mit FHEM verbunden, aber im Okt scheint sich wohl mein Token geändert zu haben (musste meine leider kurz zerlegen) und seitdem war meiner immer disconnected. Nun habe ich endlich mal Zeit gehabt den neuen Token auszulesen. Diesen habe ich nun in der Definition geändert und FHEM neu gestartet aber trotzdem steht weiterhin "disconnected" (Sauger ist aber in der App online)
Jemand eine Idee woran das liegen kann?
kann es mit der FUUID zusammenhängen? (meine Hardware hat sich nicht geändert)
Grüße
Heatseeker
Zitat von: Markus M. am 09 Februar 2019, 16:41:02
Rijndael_PP ist nicht richtig installiert.
Versuch doch mal es zu entfernen und stattdessen AES zu installieren.
Hatte ich ja geschrieben:
sudo cpan Crypt::Cipher::AES
Ist installiert.
Zitat von: Christian72D am 11 Februar 2019, 08:50:23
Hatte ich ja geschrieben:
sudo cpan Crypt::Cipher::AES
Ist installiert.
Und Rijndael_PP?
Irgendwas passt mit deiner Installation nicht.
Versuch mal das ohne sudo zu installieren.
Moin,
könnte mein Problem lösen, dass ich keine Verbindung mehr hatte. Es scheint, dass sich mein Pi irgendwie sich eines der benötigten Pakete entledigt hatte (vermutlich libdigest-md5-perl). Habe einfach mal alles nachinstalliert und nun habe ich wieder aktuelle readings.
Grüße
Heatseeker
Moinsen,
für den Roborock S50 gibt es eine neue Firmware. Gibt es irgendwo ein Changelog? Was meint ihr, installieren oder nicht?
Gruß Hoppel
Zitat von: hoppel118 am 16 Februar 2019, 10:45:00
Moinsen,
für den Roborock S50 gibt es eine neue Firmware. Gibt es irgendwo ein Changelog? Was meint ihr, installieren oder nicht?
Gruß Hoppel
Würde mich auch interessieren. Ändert sich der Token bei Firmware Updates? Kann man also relativ angstlos aktualisieren?
Token hat sich bislang bei noch keinem FW-Update geändert...
Allerdings: warum updaten, wenn alles läuft und unklar ist was geändert wurde... ;)
Gruß, Joachim
Der Token hat sich bisher bei Updates noch nie geändert.
Möglicherweise verbaut ihr euch aber den Root Zugriff. Bisher ging das mit den letzten Firmwares wohl noch.
Gib es Pläne den "XIAOMI Universal IR-Fernbedienung Controller (360 Grad)" einzubinden?
https://forum.iobroker.net/topic/10121/xiaomi-remote-360
Keine Pläne und auch kein Testgerät.
Hast du eins? Dann können wir das gerne mal probieren.
Habe auch keins.
Bin nur drüber gestolpert, wäre ne günstige Alternative zum IRBlaster360.
Zitat von: hoppel118 am 16 Februar 2019, 10:45:00
Moinsen,
für den Roborock S50 gibt es eine neue Firmware. Gibt es irgendwo ein Changelog? Was meint ihr, installieren oder nicht?
Gruß Hoppel
ich verwende nicht die Mi Home app, sondern Flole und habe auf dem S50 Firmware 3.3.9_001810 am laufen. Nach den letzten Updates hatte ich eigentlich nur feststellen können, dass er die Fläche anders abfährt als vorher.
Zitat von: NEA am 23 Februar 2019, 17:59:40
ich verwende nicht die Mi Home app, sondern Flole und habe auf dem S50 Firmware 3.3.9_001810 am laufen. Nach den letzten Updates hatte ich eigentlich nur feststellen können, dass er die Fläche anders abfährt als vorher.
Ich habe hier nur Apple Devices. Flole ist wohl nur für Android verfügbar.
Wieso bietet er dir in der Flole App die v 3.3.9_001810 und mir mit der Xiaomi App nur die 3.3.9_001702? Ist die 1810 schon offiziell?
FHEM connected also ganz normal?
Danke und viele Grüße Hoppel
Du wirst wohl das erste Model haben. Xiaomi Roborock S50 ist momentan bei 3.9.9_001810
Gruß
erste Generation ist bei 3.3.9_003600
Hi,
habe meinen RoboRock S50 hinzugefügt inkl. 32 stelligen Token, die Pakete installiert:
sudo apt-get install libjson-perl
sudo apt-get install libdigest-md5-perl
sudo apt-get install libcrypt-cbc-perl
sudo apt-get install libcrypt-rijndael-perl
und bekomme dennoch als Status nur "Crypt::Cipher::AES or Crypt::Rijndael_PP is required!"
auch die CPAN-Befehle
sudo cpan Crypt::Rijndael_PP
sudo cpan Crypt::Cipher::AES
habe ich ausgeführt, aber ich glaube die haben nicht sauber abgeschlossen:
ZitatLoading internal null logger. Install Log::Log4perl for logging messages
CPAN: Storable loaded ok (v2.62)
Reading '/root/.local/share/.cpan/Metadata'
Database was generated on Wed, 13 Mar 2019 15:17:03 GMT
Running install for module 'Crypt::Rijndael_PP'
CPAN: Digest::SHA loaded ok (v5.96)
CPAN: Compress::Zlib loaded ok (v2.074)
Checksum for /root/.local/share/.cpan/sources/authors/id/D/DE/DELTA/Crypt-Rijndael_PP-0.05.tar.gz ok
'YAML' not installed, will not store persistent state
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v2.150010)
CPAN: CPAN::Meta loaded ok (v2.150010)
CPAN: Module::CoreList loaded ok (v5.20170922_26)
Configuring D/DE/DELTA/Crypt-Rijndael_PP-0.05.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Crypt::Rijndael_PP
Writing MYMETA.yml and MYMETA.json
DELTA/Crypt-Rijndael_PP-0.05.tar.gz
/usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK
Running make for D/DE/DELTA/Crypt-Rijndael_PP-0.05.tar.gz
DELTA/Crypt-Rijndael_PP-0.05.tar.gz
make -- NOT OK
No such file or directory
Bei mir läuft FHEM auf nem Intel NUC mit Lubuntu 18.04 LTSB.
habe ehrlich gesagt keine Ahnung was das Problem ist, jemand eine Idee?
Vielen Dank im Voraus,
Thomas
Versuch mal Rijndael_PP manuell komplett zu entfernen
Hi,
habe einmal libcrypt-rijndael-perl deinstalliert und neu installiert, sudo cpan Crypt::Rijndael_PP neu ausgeführt, gleicher Fehler.. :-[
Zitat von: zensbert am 14 März 2019, 20:58:56habe einmal libcrypt-rijndael-perl deinstalliert und neu installiert, sudo cpan Crypt::Rijndael_PP neu ausgeführt, gleicher Fehler.. :-[
Was willst du mit libcrypt-rijndael-perl? Das ist ewas ganz anderes.
Crypt::Cipher::AES installieren und Crypt::Rijndael_PP komplett entfernen.
Dann sollte es funktionieren.
OK, dann schnall ich nicht wie ich das installiere:
root@Smarty:/home/zensbert# apt-get remove Crypt::Rijndael_PP
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
E: Paket Crypt::Rijndael_PP kann nicht gefunden werden.
root@Smarty:/home/zensbert# apt-get install Crypt::Cipher::AES
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
E: Paket Crypt::Cipher::AES kann nicht gefunden werden.
CPAN ist kein Package Manager.
Und das sind auch keine APT Pakete.
Du musst das kaputte Paket manuell aus dem Filesystem löschen.
Und dann nur AES mit CPAN wieder installieren.
also ich habe jetzt den kompletten Pfad "/home/zensbert/.local/share/.cpan" weggesichert und "sudo cpan Crypt::Cipher::AES" ausgeführt, das Ergebnis
zensbert@Smarty:~$ sudo cpan Crypt::Cipher::AES
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.
Would you like to configure as much as possible automatically? [yes] yes
CPAN: Storable loaded ok (v2.62)
CPAN: LWP::UserAgent loaded ok (v6.31)
Fetching with LWP:
http://www.cpan.org/authors/01mailrc.txt.gz
Reading '/home/zensbert/.local/share/.cpan/sources/authors/01mailrc.txt.gz'
CPAN: Compress::Zlib loaded ok (v2.074)
............................................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/02packages.details.txt.gz
Reading '/home/zensbert/.local/share/.cpan/sources/modules/02packages.details.txt.gz'
Database was generated on Fri, 15 Mar 2019 15:17:03 GMT
.............
New CPAN.pm version (v2.25) available.
[Currently running version is v2.18]
You might want to try
install CPAN
reload cpan
to both upgrade CPAN.pm and run the new version without leaving
the current session.
...............................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/03modlist.data.gz
Reading '/home/zensbert/.local/share/.cpan/sources/modules/03modlist.data.gz'
DONE
Writing /home/zensbert/.local/share/.cpan/Metadata
Running install for module 'Crypt::Cipher::AES'
Fetching with LWP:
http://www.cpan.org/authors/id/M/MI/MIK/CryptX-0.063.tar.gz
CPAN: Digest::SHA loaded ok (v5.96)
Fetching with LWP:
http://www.cpan.org/authors/id/M/MI/MIK/CHECKSUMS
Checksum for /home/zensbert/.local/share/.cpan/sources/authors/id/M/MI/MIK/CryptX-0.063.tar.gz ok
'YAML' not installed, will not store persistent state
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v2.150010)
CPAN: CPAN::Meta loaded ok (v2.150010)
CPAN: Module::CoreList loaded ok (v5.20170922_26)
Configuring M/MI/MIK/CryptX-0.063.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for CryptX
Writing MYMETA.yml and MYMETA.json
MIK/CryptX-0.063.tar.gz
/usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK
Running make for M/MI/MIK/CryptX-0.063.tar.gz
MIK/CryptX-0.063.tar.gz
make -- NOT OK
No such file or directory
..also:
nachdem ich "sudo apt-get install build-essential" ausgeführt hatte, war nun auch make installiert und dann lief das "sudo cpan Crypt::Cipher::AES" auch soweit durch! Danke für die Hilfe!
Hallo,
da ich weiss, dass es für einen Laien manchmal (sehr) schwierig sein kann neue Devices einzubinden, hier eine mögl. detaillierte Anleitung, wie ich meinen Xiaomi S50 Roborock2/ Smart Vacuum Cleaner V2 (3.3.9:001720) mit einem Mac (OS 10.13.6) in FHEM angelernt habe:
1. Backup der FHEM-SD-Karte
2. iPhone App "Mi Home" laden
3. Mac App "iBackupViewer" laden
4. Mi Account erstellen
5. Saugroboter in "Mi Home" App anlernen
6. Unverschlüsseltes iPhone Backup via iTunes erstellen
7. iTunes schließen
8. iBackupViewer starten
9. Backup auswählen (Doppelklick in Bild)
10. Icon mit Baum-Symbol auswählen
11. In der linken Spalte "AppDomain-com.xiaomi.mihome" auswählen
12. In der rechten Splate nach "Documents/xxxxxxxxxx_mihome.sqlite" (xxxxxxxx variiert) suchen
13. Diese Datei exportieren
14. DB Browser laden http://sqlitebrowser.org
15. "Datenbank öffnen"
16. Reiter "Daten durchsuchen" -> Tabelle "ZDEVICE" auswählen
17. Unter "ZLOCALIP" die IP des Saugroboters eintragen
18. Unter "ZTOKEN" kann nun der (verschlüsselte) Token ausgelesen werden. Verschlüsselt ist er, wenn er länger als 32 Zeichen lang ist (dies war bei mir der Fall).
19. http://aes.online-domain-tools.com
20. Input text: Die Zeichen des verschlüsselte Tokens reinkopieren
Hex
Function: AES
Mode: ECB (electronic codebook)
Key: 00000000000000000000000000000000
Hex
> Decrypt!
21. Rechts die ersten zwei Reihen abschreiben (2 x 16 Zeichen). Das ist der Token.
Per SSH:
1. sudo apt-get update
2. sudo apt-get install libjson-perl
sudo apt-get install libdigest-md5-perl
sudo apt-get install libcrypt-cbc-perl
sudo cpan Crypt::Rijndael_PP (entweder hierbei, oder bei dem Befehl in der nächsten Zeile wurden mir Fehlermeldungen angezeigt, die ich ignorierte)
sudo apt-get install libcrypt-ecb-perl
sudo cpan Crypt::Cipher::AES (dauert sehr lange)
3. sudo shutdown -r 0
4. define saugroboter XiaomiDevice 192.168.0.xx <Token>
Ich hoffe, es hilft dem Einen oder Anderen.
Gruß Chris
Edit: Bereits wenn das Wlan und/oder das Passwort geändert/gewechselt wird, wird (zumindest in meinem Fall) ein neuer Token benötigt.
Hab da ein paar Fragen:
Wenn ein Xiaomi S50 Roborock2/ Smart Vacuum Cleaner V2 (3.3.9:001720) sich bereits per FHEM steuern lässt,..
..ist es dann möglich die Kommunikation nach China seitens des Saugroboters zu unterbinden und falls ja, wie?
..und die Kommunikation nach China seitens des Saugroboters unterbunden wurde, ist es dann noch möglich, die Wohnung in einzelne Zonen aufzuteilen, so dass bei Bedarf nur bestimmte Bereiche gesaugt/gewischt werden?
..und die Kommunikation nach China seitens des Saugroboters unterbunden wurde, ist es dann noch möglich, Bereiche zu definieren, in die der Saugroboter nicht fahren soll?
Werden die Maps/Karten auf dem Gerät gespeichert?
Gruß Chris
Zu 1. Die Kommunikation lässt sich beispielsweise in einer FritzBox verbieten. Danach ist es immer noch möglich den Robi aus fhem heraus zu steuern.
Zu 2. Wenn sie vorher definiert sind, sollte das kein Problem sein.
Zu 3. Nein, da du das in der App machst, und diese dann keinen Zugriff mehr hat.
Zu 4. Ich bin der Meinung , das die Karten mittlerweile gespeichert werden, aber die bringen dir nicht mehr viel, wenn du ihm die Kommunikation zur App abdrehst.
Meiner Meinung nach, solltest du dich mit dem Thema root beschäftigen. Stichwort xiaomi valetudo.
Grüße
ZitatDer Air Purifier kann aktuell auch ohne Token eingerichtet werden, ebenso der Ventilator und die Lampe.
Ist das noch aktuell? Ich bekomme den Purifier v2 seit dem letzten MiApp Update nicht mehr verbunden.. Das Modul schaltet sich sofort auf disable 1
Grüße
stoxx
2019.03.25 19:13:59 3: Luftreiniger: disconnecting
2019.03.25 19:13:59 2: Luftreiniger: connecting
2019.03.25 19:13:59 3: Luftreiniger: initialized
2019.03.25 19:13:59 5: Luftreiniger: initSend
2019.03.25 19:13:59 5: Luftreiniger Send SUCCESS
2019.03.25 19:13:59 5: Luftreiniger > 21300020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2019.03.25 19:13:59 5: Luftreiniger < 213000200000000003aff5fd00000cf700000000000000000000000000000000 (32)
2019.03.25 19:13:59 1: Luftreiniger: Token could not be retrieved automatically from already cloud-connected device!
2019.03.25 19:14:03 4: Luftreiniger: write {"id":5,"method":"miIO.wifi_assoc_state","params":[""]} (55)
2019.03.25 19:14:03 3: XiaomiDevice Luftreiniger is disabled, communication cancelled.
Zitat von: stoxx am 25 März 2019, 20:06:58
Ist das noch aktuell? Ich bekomme den Purifier v2 seit dem letzten MiApp Update nicht mehr verbunden.. Das Modul schaltet sich sofort auf disable 1
Das ist mit Sicherheit nicht mehr aktuell :(
Aus der alten App sollte es aber noch funktionieren.
Wo findet man mehr Informationen zu start_edit_map?
Zitat von: chq am 26 März 2019, 10:24:55Wo findet man mehr Informationen zu start_edit_map?
Nirgends - ebensowenig wie zu den anderen neuen Funktionen.
Ich habe keinen S50 und keine Ahnung was es tut.
Wenn du durch Ausprobieren was rausfindest, bitte hier im Forum teilen :)
Zitat von: Skusi am 19 April 2018, 21:10:56Ich habe dann einfach eine Zone definiert die über die gesamte Wohnung geht.
Wie kann man denn eine Zone definieren?
Gruß Chris
In der App kannst du Zonen definieren. Wenn ich mich richtig erinnere musst du dann die Koordinaten der Zone herausbekommen. In der alternativen App ging dass mit "lange auf den Punkt drücken" dann laut Syntax in fhem als Attribut hinterlegen.
Grüße
Hallo,
da die Steuerung des Saugroboter bei mir im Bezug auf WAF ein sehr heikles Thema zu sein scheint, würde ich gerne nochmals ein paar Gedanken bzgl. des Problems der sich drehenden Karte austauschen wollen.
Ich habe den kompletten Thread gelesen und gehe von folgendenden Gegebenheiten aus:
1. Die Karte kann sich drehen, wenn nicht ausschließlich per Zonenreinigung gereinigt wird.
2. Die Karte kann sich drehen, sobald ein "normaler Reinigungsvorgang über die Reinigungstaste am Saugroboter" eingeleitet wurde.
Insbesondere der zweite Punkt stellt mich vor eine etwas größere Herausforderung, da Frau (ganz pragmatisch) den Saugroboter am Gerät bedienen möchte und keine Lust auf eine Bedienung via Smartphone hat. Sie hat auch keine Lust darauf, irgendwelche Schalter (oder Taster) zu drücken, die sich nicht am Saugroboter befinden, um die Reinigungsvorgänge einzuleiten.
Da ich den Roboter jedoch gerne inkl. dem Feature "Zonenreinigung" vollumfänglich in FHEM einbinden möchte, bin ich bei folgendem Gedanken angekommen:
Ich baue z.B. einen ESP8266 in den Roboter und sorge dafür, dass die Taste auf dem Roboter von da an lediglich dem ESP8266 als Eingabequelle dient. Dabei könnte ich evtl. gleich die LED(s) am Roboter entfernen, da wir diese nicht benötigen. Der ESP8266 würde dann bei Druck auf die Reinigungstaste via WLAN und FHEM eine Zonenreinigung des kompletten Stockwerks anweisen.
Natürlich würde ich dabei in Kauf nehmen müssen, dass der Reinigungsvorgang nicht gestartet werden könnte, wenn kein WLAN vorhanden und/oder FHEM nicht erreichbar wäre, doch das würde ich in Kauf nehmen, da ich das dann ja immer noch auf eine Fehlfunktion vom Saugroboter schieben könnte. :P
Hat evtl. Einer von Euch ähnliche Probleme? ;D
Gruß Chris
ich hätte auch nochmal eine Frage bezüglich der Zonenreinigung. Ich habe mir jetzt den s50 zugelegt ( der speichert ja die Karten ). Wenn ich den in der FloleVac App zur Zonenreinigung schicke passt alles. Wenn ich ihn über FHEM mit einem DoIF da hin schicke kommen Fehler und er irrt herum...
Fehlermeldung laut Event Monitor
2019-03-28 18:39:09 DOIF di_Staubi_Kueche cmd_nr: 1
2019-03-28 18:39:09 DOIF di_Staubi_Kueche cmd: 1
2019-03-28 18:39:09 DOIF di_Staubi_Kueche cmd_event: Staubi_Alexa_sauge_Kueche
2019-03-28 18:39:09 DOIF di_Staubi_Kueche error: 17181: Unknown command 17181, try help. 29072: Unknown command 29072, try help. 19331: Unknown command 19331, try help. 1: Unknown command 1, try help.
2019-03-28 18:39:09 DOIF di_Staubi_Kueche cmd_1
2019-03-28 18:39:09 dummy Staubi_Alexa_sauge_Kueche on
Mein DoIf sieht so aus
([Staubi_Alexa_sauge_Kueche:"on"]) (set Staubi zone 26972,17181,29072,19331,1)
Wenn ich den Befehl so absetze in FHEM
set Staubi zone 26972,17181,29072,19331,1
dann macht er, was er soll...
Hat jemand einen Tipp?
Wenn Du zunächst Zonen nach folgendem Schema definierst:
attr vacuum zone_names table:[19700,20800,22600,23600,1] kitchen:[20300,23900,21600,26500,2] bathroom:[23500,30750,23750,31000,2],[24300,29800,26500,31900,2]
kannst Du sie z.B. über
set vacuum zone table
aufrufen (über drop-down-menü).
Ich hab das Ganze ja über einen Dummy und einem DoIf geregelt. Wenn ich die Zone anlege, brauche ich dann noch den Dummy, oder setze ich dann einfach das DoIf auf set vacuum table? Ich glaub es ist nur ein Fehler in meinem DoIf, ich weiss aber nicht was da falsch ist.. Müsste doch auch so funktionieren ( wenn ich den Befehl so starte läuft es ja auch...)
Aber irgendetwas scheint er hier nicht zu mögen:
Zitaterror: 17181: Unknown command 17181, try help. 29072: Unknown command 29072, try help. 19331: Unknown command 19331, try help. 1: Unknown command 1, try help.
FHEM interpretiert hier die Zahlen nach dem ersten Komma als Kommandos.
Wenn Du die Zone "table" angelegt hast reicht ein
set vacuum zone table
danke :-) Hab das DoIf jetzt mal umgebaut und die Zone so gesetzt
([Staubi_Alexa_sauge_Kueche:"on"]) (set Staubi zone kitchen)
Hallo Markus,
mir ist noch aufgefallen dass der Wifi Smart Plug keine toggle Funktion besitzt, ist es kompliziert diese Funktion zu implementieren?
Hier der List:
Internals:
CHANGED
DEF 1.1.1.1 **************************
FD 9
FUUID 5c8f599f-f33f-69d4-92a0-afd9b6eec7f9885b
NAME WiFi_Steckdose
NR 113
STATE on
TYPE XiaomiDevice
hardware ESP8266
mac XX:XX:XX:XX:XX
model chuangmi.plug.v3
token **************************
wifi_firmware 1.5.0-dev7f7a714
Helper:
DBLOG:
device_firmware:
logdb:
TIME 1553860542.37817
VALUE 1.3.0_97
device_uptime:
logdb:
TIME 1553860542.37817
VALUE 267.45
error:
logdb:
TIME 1553863644.11211
VALUE none
load_power:
logdb:
TIME 1553863944.08059
VALUE 43.00
off:
logdb:
TIME 1553863033.8147
VALUE
on:
logdb:
TIME 1553863041.6153
VALUE
power:
logdb:
TIME 1553863644.07037
VALUE on
state:
logdb:
TIME 1553860542.30539
VALUE connected
temperature:
logdb:
TIME 1553863644.07037
VALUE 30
usb_power:
logdb:
TIME 1553863644.07037
VALUE off
wifi_auth_fail_count:
logdb:
TIME 1553860542.32145
VALUE 0
wifi_conn_fail_count:
logdb:
TIME 1553860542.32145
VALUE 0
wifi_conn_success_count:
logdb:
TIME 1553860542.32145
VALUE 1
wifi_dhcp_fail_count:
logdb:
TIME 1553860542.32145
VALUE 0
wifi_led:
logdb:
TIME 1553863644.07037
VALUE on
wifi_rssi:
logdb:
TIME 1553860542.37817
VALUE -79
wifi_state:
logdb:
TIME 1553860542.32145
VALUE online
READINGS:
2019-03-29 19:55:42 device_firmware 1.3.0_97
2019-03-29 19:55:42 device_uptime 267.45
2019-03-29 20:55:45 error none
2019-03-29 20:52:24 load_power 43.00
2019-03-29 20:55:45 power on
2019-03-29 19:55:42 state connected
2019-03-29 20:55:45 temperature 30
2019-03-29 20:55:45 usb_power off
2019-03-29 19:55:42 wifi_auth_fail_count 0
2019-03-29 19:55:42 wifi_conn_fail_count 0
2019-03-29 19:55:42 wifi_conn_success_count 1
2019-03-29 19:55:42 wifi_dhcp_fail_count 0
2019-03-29 20:55:45 wifi_led on
2019-03-29 19:55:42 wifi_rssi -79
2019-03-29 19:55:42 wifi_state online
helper:
ConnectionState connected
crypt AES
delay 60
dev 0581
id 1a24
ip 1.1.1.1
last_read 1553864145
packetid 62
port 54321
sequence 1552897727
token **************************
packet:
18 powerplug_data
19 powerplug_power
Attributes:
devStateIcon on:general_an@red:off off:general_aus@green:on
event-on-change-reading .*
icon hue_filled_outlet
room unsorted
stateFormat power
subType PowerPlug
webCmd toggle:on:off
Gruß
Alex
ZitatHallo,
da ich weiss, dass es für einen Laien manchmal (sehr) schwierig sein kann neue Devices einzubinden, hier eine mögl. detaillierte Anleitung, wie ich meinen Xiaomi S50 Roborock2/ Smart Vacuum Cleaner V2 (3.3.9:001720) mit einem Mac (OS 10.13.6) in FHEM angelernt habe:
......
@chq: Vielen Dank für die super detaillierte Anleitung, insb. was das Auslesen des Tokens betrifft! Habe dadurch meinen Xiaomi Purifier 2 wieder angebunden bekommen.
vg stoxx
@stoxx: Sehr gerne. Freut mich. :)
Zitat von: hatamoto am 10 März 2018, 21:34:37Beim Start fährt der Sauger zunächst rückwärts von der Bodenplatte und dreht sich anschließend um 180 Grad.
Ist es auch bei Dir so, dass Du den Roboter somit nicht "einfach nur rückwärts" von der Ladestation fahren lassen kannst, da er sich in jedem Fall nach wenigen Zentimetern dreht, so dass gesagt werden kann, dass ein
Rückwärtsfahren in diesem Fall letzten Endes
keinen Sinn macht?
Gruß Chris
Sorry, aber der Sauger steht doch mit dem "Hintern" am Ladekontakt. Er kann nur vorwärts raus fahren, rückwärts von der Ladestation ist doch unmöglich!?
Gruß Otto
Aus meiner Sicht hat er (S50) die Kontakte vorne und fährt somit ein Stück zurück, bevor er sich im Anschluss weg von der Ladestation dreht.
Gruß Chris
Ach so - ich habe den Xiaomi Mi Robot Vacuum V1 - dann ist der da komplett anders. Er fährt rückwärts in die Ladestation.
Zitat von: dl4fb am 17 Januar 2019, 18:01:46Alternativ Root einrichten und die Karten speichern und zurückladen.
Hast Du hierfür evtl. einen heissen Link?
Gruß Chris
Hallo,
ich habe folgendes Phänomen.
Ich mache täglich für die einzelne Räume eine Zonenreinigung. Der Roborock steht in einem Raum, wo die Tür manchmal zu ist. Sobald dies der Fall ist, gibt es natürlich keine Reining, auch wenn die Tür wieder offen ist. Dann muss ich erst eine clean machen, anschließend funktioniert wieder Reining. In dem Fall gibt es im Modul kein Event für lastCleanArea.
Diese Event erhalte ich
2019-04-02 11:13:49 XiaomiDevice Xiaomi_Staubsauger zone Küche
2019-04-02 11:13:54 XiaomiDevice Xiaomi_Staubsauger Zoned Clean
2019-04-02 11:13:54 XiaomiDevice Xiaomi_Staubsauger in_fresh_state: no
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger Docked
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger in_fresh_state: yes
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger total_cleans: 616
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger last_timestamp: 1554196429
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger history_0: 2019-04-02 11:13:49: 0.00m² in 0.00h, finished cleaning
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger letzteReinigung: 2019-04-02 11:13:49
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger history_1: 2019-04-02 11:04:16: 0.00m² in 0.00h, finished cleaning
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger history_2: 2019-04-02 10:59:59: 0.00m² in 0.00h, finished cleaning
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger history_3: 2019-04-02 10:00:00: 0.00m² in 0.00h, finished cleaning
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger history_4: 2019-04-01 14:00:01: 3.73m² in 0.10h, finished cleaning
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger history_5: 2019-04-01 13:00:01: 0.00m² in 0.00h, finished cleaning
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger history_6: 2019-04-01 11:30:01: 0.00m² in 0.00h, finished cleaning
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger history_7: 2019-04-01 10:30:01: 0.00m² in 0.00h, finished cleaning
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger history_8: 2019-04-01 10:00:01: 0.00m² in 0.01h, finished cleaning
2019-04-02 11:14:54 XiaomiDevice Xiaomi_Staubsauger history_9: 2019-03-31 21:30:35: 0.00m² in 0.00h, not finished
Mein Gedanke war, wenn nicht gereinigt wurde, soll es eine Benachrichtung geben, plus ggf. eine Aktion. Hat jemand noch andere Ideen?
Gruß
TWART016
Du kannst ja für jede Zone 3 mehrere (bis zu 4 oder 5) rechteckige Bereiche angeben. Ich habe für die Zonen für die der Staubsauger durch eine Tür durch muss vor der Tür einen 25cm^2 großen Bereich definiert den er dann zunächst abfährt und dabei die offene Tür scannt und dann auch durchfährt.
Ich verstehe nicht was du meinst. Der Staubsauger fährt schon durch die Tür. Nur wenn sie einmal zu war, nicht mehr. Dann muss ich eine Komplettreinigung starten und beenden. Anschließend fährt er wieder durch.
Versuch's doch einfach mal.
Bei mir erkennt der Sauger auch bei einer Zonenreinigung, ob ein Hindernis noch vorhanden ist und passt daraufhin die Karte an, ohne sie komplett neu aufzubauen.
Wie gesagt, eine Zone kann max. 3 4 bis 5 Bereiche umfassen. Die Badezimmertür ist immer zu wenn der Staubsauger den Flur säubert. Also weiß er nicht, dass er durch die Tür ins Bad kann. Legst Du jetzt einen Dummybereich im Flur vor der Badtür fest, wird er diesen zunächst reinigen, dabei die offene Tür scannen und anschließend dann auch ins Bad fahren.
Zitat von: RappaSan am 01 Juni 2018, 12:14:59
Ist bunt gemischt, sollte aber für beide Versionen gelten.
Den Befehl "set vacuum zone create_map" kenne ich aber nicht. Was soll der denn bewirken?
Der Frage möchte ich mich gerne anschließen. Wurde bisher leider (noch) nicht beantwortet.
Gruß Chris
:) Auf die Frage gibt es bestimmt eine Antwort.
Nur finden muss man diese. :o
Gen1 Vacuum mit root wird natürlich mit diesem netten fhem Modul genutzt.
Ich nutze am Smartphone Valeduto, dort habe ich auch Zonen und die aktuelle Map unterlegt.
Die Koordinaten der Zone bzw. Map ist anders aufgebaut als in fhem.
Jedenfalls wenn ich die Zahlenwerte von Valeduto in fhem übernehmen, geht der sauger kurz an, und wieder aus.
zone_names
Kueche:[-999,1997,-449,2530,1]
Die Flole App geht ja zum auslesen nicht mehr..root
Kann ich die Valeduto Werte umrechnen, so das diese in fhem zur Zonenreinigung genutzt werden?
create_map ist einfach eine von mir definierte Zone, so wie etwa bathroom oder kitchen.
Allerdings habe ich mir diese Zone weniger zum Staubsaugen definiert, sondern, wie der Name schon sagt, zum möglichst raschen Erstellen der Karte.
Geht also die Karte durch eine unbeabsichtigte Aktion verloren, schicke ich den Staubsauger nicht mit clean los und muss 1,5h warten bis er durch die ganze Wohnung durch ist. Nein, ich schicke in auf eine kurze "Scan-Tour" durch die Wohnung. Bei der er innerhalb 6 Minuten relevante "Aussichtspunkte" anfährt, dort ein Quadrat mit 25cm Kantenlänge "reinigen" muss und dabei die Umgebung erfasst.
Damit kann ich ihn wieder alle vordefinierten Zimmer/Zonen anfahren lassen ohne das die Meldung kommt 'kenn ich nicht, deshalb fahr ich wieder zurück zum Dock'.
Zitat von: cortmen am 06 April 2019, 14:47:24
Die Flole App geht ja zum auslesen nicht mehr..root
Wer sagt das/woher hast du das??
Also ich habe V1 und V2 alle gerootet und arbeite mit der Flole-App...
...bislang habe ich meine Zonen-Koordinaten immer damit ausgelesen...
Gruß, Joachim
Nutzt flole nicht die xiaomi cloud, wenn man diese nicht mehr hat :)
Zitat von: cortmen am 06 April 2019, 14:59:13
Nutzt flole nicht die xiaomi cloud, wenn man diese nicht mehr hat :)
Ja, dann nat. (verm.) nicht mehr...
...aber du hast ja "nur" von root geschrieben ;)
Gruß, Joachim
:) Sonst jemand ne Idee ?
Ich beobachte hier ein merkwürdiges Phänomen bei meinem Sauger V1...
Der set-Parameter fan_power verschwindet manchmal in der dropdown-Liste.
Manchmal hilft ein "shutdown restart", manchmal ein "get data".
Zitat von: MadMax-FHEM am 06 April 2019, 14:56:20Also ich habe V1 und V2 alle gerootet
Kannst du dann mal die neuen Funktionen rund um gespeicherte Karten alle durchtesten? Idealerweise mit höherem MiIO Log level auf dem V2.
Da ich selbst keinen V2 habe sind die allesamt blind programmiert.
Zitat von: Markus M. am 09 April 2019, 14:10:42
Kannst du dann mal die neuen Funktionen rund um gespeicherte Karten alle durchtesten? Idealerweise mit höherem MiIO Log level auf dem V2.
Da ich selbst keinen V2 habe sind die allesamt blind programmiert.
Jep, klar.
Wusste nur nicht, dass es da schon was (in der offiziellen Version) zu testen gibt.
Ich schau mal was ich da finde...
Logs etc. wieder an dich?!
Gibt es "Abläufe" die interessant sind?
Ist mir wohl nicht (einfach so) aufgefallen, da ich die Funktion bzgl. "No-Go" eher/lieber beim V1 hätte...
...V2 ist wegen zusätzlicher Wisch-Funktion in anderen Räumen unterwegs wo ich diese(s) Feature nicht brauche... ;)
Gruß, Joachim
set <Device> stop funktioniert bei meinem V2, unabhängig davon was er grad macht, nicht.
Gruß Chris
Edit: Falls jmd. Interesse an einer wenigstens halbwegs WAFtauglichen Tastensteuerung hat (siehe Bild), bitte melden. :P
Zitat von: thymjan am 02 April 2019, 12:59:21
Du kannst ja für jede Zone 3 rechteckige Bereiche angeben.
Woher hast Du die Info, dass es "nur" drei Bereiche sein dürfen? Konnte in der Commandref. hierzu nichts finden?
Funktioniert Deine Methode auch mit jeweils 0 qm großen Zonen? :P
Gruß Chris
Edit: Antwort: Nein, das funktioniert nicht.
Zitat von: chq am 12 April 2019, 08:15:00
Woher hast Du die Info, dass es "nur" drei Bereiche sein dürfen? Konnte in der Commandref. hierzu nichts finden?
Die Länge einer MiIO Nachricht ist begrenzt.
Ich glaube auf 128 Zeichen komplett - daher gehen nicht beliebig viele Bereiche auf einmal.
Das ist aber merkwürdig, da man beim Roborock 2/ S50 per App offenbar bis zu fünf Zonen definieren kann.
Das wäre cool, da ich optimalerweise vier brauchen würde (dreimal Türcheck, einmal Zonenreinigung).
Ich werde es die Tage mal testen und dann berichten.
Gruß Chris
Dann sollte es auch mit dem Modul funktionieren.
Nur eben möglicherweise nicht für den V1.
Ich prüfe intern nicht darauf ob die Message zu lang ist - funktioniert dann halt im Zweifelsfall nicht ;)
Drei Bereiche war eine falsche Info von mir. Es gehen definitiv auch vier mit dem V1 (siehe mein Screenshot mit create-map oben). Hatte nur im Kopf, dass ich mal an eine Grenze gestossen bin.
Ok. Leider will er bei mir, trotz 25x25cm Scanzonen, deren nahesten Außenkanten jeweils ca. 30cm vor jeder Tür definiert sind, nicht durch Türen, die vorher mal geschlossen waren, aber aktuell offen sind.
Kannst Du noch etwas konkretere Infos bzgl. der Platzierung Deiner Scanzonen liefern?
Gruß Chris
Du kannst ganz hinten noch den Zähler hochstellen, dann fährt er die 25cmx25cm Fläche mehrmals ab.
Also z.B. [0,0,250,250,2].
Beobachte das ganze in der Xiaomi app (o.ä.). Da siehst Du dann wie die geschlossene Tür nach und nach verschwindet.
Hat hier jmd. den S5/S50/Vaccuum Cleaner 2/Xiaomi Roborock 2 für eine Etage "durchprogrammiert" (Zonen) und verwendet ihn ab und an auch auf anderen Etagen?
Gruß Chris
Zitat von: MadMax-FHEM am 09 April 2019, 14:14:14
Jep, klar.
Wusste nur nicht, dass es da schon was (in der offiziellen Version) zu testen gibt.
Ich schau mal was ich da finde...
Logs etc. wieder an dich?!
Gibt es "Abläufe" die interessant sind?
Ist mir wohl nicht (einfach so) aufgefallen, da ich die Funktion bzgl. "No-Go" eher/lieber beim V1 hätte...
...V2 ist wegen zusätzlicher Wisch-Funktion in anderen Räumen unterwegs wo ich diese(s) Feature nicht brauche... ;)
Gruß, Joachim
@Markus:
also ich hatte heute mal ein klein wenig Zeit und hab mal ein wenig "rumgespielt"...
...du hast Mail ;)
EDIT: habe ich in der Mail vergessen: FW 3.3.9_001632 gerootet. Aktuell laut App: 3.3.9_001720. App auf aktuellem Stand (laut PlayStore). Sprache auf dem Sauger (noch) Englisch. Aktuelle FW laut https://dustbuilder.xvm.mit.edu/pkg/s5/ ist die v11_001820.fullos.pkg 2019-04-03 23:31 106M
EDIT2: vielleicht (wenn wieder Zeit ist) gönne ich meinen Saugern mal ein gerootetes Update ;) DustCloud etc. steht ja auch noch auf dem Plan... Leider aus Zeitmangel mit nicht so hoher Prio...
EDIT3: leider gibt (und wird es wohl auch nicht :-| ) es das "no-go" Feature nicht für den V1...
Gruß, Joachim
Hallo zusammen,
erstmal danke an den Modulersteller, mein Robbi (s50 V2) funktioniert bestens mit FHEM.
Eine Sache stört mich aber.. dieses willkürliche drehen der Karte. Mal steht in der Map die Ladestation auf 6 Uhr ( unten ), mal auf 9 Uhr.
Ich habe alle Zonen für beide Kartenvarianten und wechsle diese, wenn die Karte mal wieder von Robbi gedreht wurde händisch in FHEM bei den zone_names.
Hatte da ncht einer von euch mal etwas in FHEM programmiert, das die Kartendrehung irgendwie abgefragt und die Zonen in Fhem dann automatisch angepasst wurden?
Könnte mir da einer helfen?
Gruß Scourge
Ich hab das so gemacht https://forum.fhem.de/index.php/topic,73052.msg816153.html#msg816153 (https://forum.fhem.de/index.php/topic,73052.msg816153.html#msg816153)
LG
Marlen
Hallo,
ich habe mir nun 2 Luftbefeuchter bestellt:
https://www.gearbest.com/goods/pp_009681841976.html?lang=en&wid=1433363&utm_source=email_sys&utm_medium=email&utm_campaign=GB_GB_orderCreate_190423
und
https://www.gearbest.com/goods/pp_009676291735.html?lang=en&wid=1433363&utm_source=email_sys&utm_medium=email&utm_campaign=GB_GB_orderCreate_190423
Kann ich die beiden Geräte in FHEM einbinden ? Mir ist noch unklar, wie ich die eigentlich connecten kann ? Haben die WiFi oder einen LAN Anschluss ? Ich kann das nicht erkennen.
Grüße,
Visionsurfer
wtf? Da macht aber jemand definitiv keine halben Sachen [emoji23]
Die sollten sich beide bereits einbinden lassen.
Der mit Ultraschall wird zu 100% unterstützt (habe ich selbst), der andere sollte grundsätzlich auch funktionieren - es fehlen wahrscheinlich nur noch 1-2 Readings für den Wasserstand.
Melde dich einfach nochmal wenn du den angebunden hast, dann baue ich das ein und du darfst testen.
@Markus M.
Ja ich hatte dir auch schon eine PM gesendet :)
Aber ist ja nicht schlimm. Können wir ja auch hier besprechen. Wie binde ich die ein ? Bzw. wie erfolgt die Anbindung ?
Haben die Geräte einen LAN Anschluss oder Wifi on Board ? Weil das konnte ich bei der Bestellung auf der Webseite nicht erkennen oder ich bin blind.
Ja du hast mir die Teile ja empfohlen. Daher habe ich nun beides mal bestellt. Ist schon unterwegs.
Grüße,
Visionsurfer
Das Forum ist dafür sowieso besser.
Die haben WiFi, genau wie alle anderen Geräte für dieses Modul.
Wenn ich ehrlich bin hab ich hier sowieso schon eine Version mit der der zweite Luftbefeuchter komplett unterstützt werden sollte ;)
Geil.
O.K. dann bin ich gespannt wenn die da sind und dann werde ich mich melden.
Sag mal kannst du was zu Winmatic sagen ? Bist du zufrieden ? Ich habe gesehen du hast so ein Teil ? Oder hattest du schon mal irgendwo was dazu geschrieben ?
Grüße,
Visionsurfer
Du kannst dann gerne mal vergleichen, welches Prinzip bei den Luftbefeuchtern Vor- und Nachteile hat.
Off-topic: Winmatic hab ich in jedem Raum. Ich liebe sie, meine Frau hasst sie - allerdings eher prinzipbedingt. Funktionieren fast störungsfrei (teilweise Probleme durch schwergängige Mechanik der Fenster), den Akku alle 2-3 Monate laden reicht bei uns.
Zitat von: cortmen am 06 April 2019, 18:37:31
:) Sonst jemand ne Idee ?
Hi,
kennst du RRCC? https://www.roboter-forum.com/index.php?thread/30309-roborock-control-center-desktop-app-f%C3%BCr-win-lin-osx/&pageNo=1
Damit ist es recht kompfortabel möglich die Zonen "fhem tauglich" zu bekommen.
Einfach die Zone einzeichnen in der Map und die Koordinaten testweise bei set zone eingeben. Sollte das wie zu erwarten nicht funktionieren so musst du mit der rechten Maustaste mit den Optionen Spiegelung und tauschen so lange testen bis die korrekten Werte ermittelt sind. Dann mit dieser Option die restlichen Zonen einzeichnen und ablesen.
Es kommt übrigens auf die Valetudo Version an ob gedreht oder gespiegelt werden muss!
Valetudo unter 0.2.3 hat komplett andere Werte. Die 0.3.0 flippt die Karte um 180° und die 0.3.1 flippt die Karte wiederrum zurück mit nochmal anderen Werten , dies ist such abhängig von der Firmware des Roborock.
viel Erfolg, der Lohn sind eine timergesteuerte Multizonen Reinigung was bis jetzt nicht mal die original App beherrscht 😁
Ich habe ein Notify ala defmod NTFY_Sauger_state notify Sauger:state:.* set teleBot _msg Sauger: $EVTPART1
um den state vom Sauger per Telegram bei Änderung zu erhalten. Dabei habe ich in unregelmäßigen Abständen ein "disconnected" und darauf gleich ein "connected" gefolgt von einen "Docked" oder sonstigen Sauger state. Die Wlan-Verbindung ist dabei ununterbrochen aktiv.
Kann das an einem Timeout im Modul liegen? oder ein Problem mit dem Sauger?
Zitat von: mrixs am 02 Mai 2019, 21:56:36
Ich habe ein Notify ala defmod NTFY_Sauger_state notify Sauger:state:.* set teleBot _msg Sauger: $EVTPART1
um den state vom Sauger per Telegram bei Änderung zu erhalten. Dabei habe ich in unregelmäßigen Abständen ein "disconnected" und darauf gleich ein "connected" gefolgt von einen "Docked" oder sonstigen Sauger state. Die Wlan-Verbindung ist dabei ununterbrochen aktiv.
Kann das an einem Timeout im Modul liegen? oder ein Problem mit dem Sauger?
Mit der WLAN Verbindung hat das erst mal nichts zu tun.
Das Modul möchte eine Anfrage schicken und eine Antwort erhalten.
An irgendeiner Stelle klappt dann eben was nicht.
Was sagt denn das Log auf Level 3 über einen durchschnittlichen Tag?
Zitat von: Markus M. am 02 Mai 2019, 22:49:41
Was sagt denn das Log auf Level 3 über einen durchschnittlichen Tag?
2019.05.03 05:11:43.904 3: Sauger: connection timeout
2019.05.03 05:14:43.914 3: Sauger: disconnecting
2019.05.03 05:14:43.914 2: Sauger: connecting
2019.05.03 05:14:43.915 3: Sauger: initialized
2019.05.03 07:29:39.066 3: Sauger: connection timeout
2019.05.03 07:32:39.073 3: Sauger: disconnecting
2019.05.03 07:32:39.074 2: Sauger: connecting
2019.05.03 07:32:39.074 3: Sauger: initialized
so sah es bei mir aus wenn das Token falsch ist
Zitat von: mrixs am 03 Mai 2019, 14:20:44
2019.05.03 05:11:43.904 3: Sauger: connection timeout
2019.05.03 05:14:43.914 3: Sauger: disconnecting
2019.05.03 05:14:43.914 2: Sauger: connecting
2019.05.03 05:14:43.915 3: Sauger: initialized
2019.05.03 07:29:39.066 3: Sauger: connection timeout
2019.05.03 07:32:39.073 3: Sauger: disconnecting
2019.05.03 07:32:39.074 2: Sauger: connecting
2019.05.03 07:32:39.074 3: Sauger: initialized
Sieht nach "völlig normaler" schlechter WLAN Verbindung aus.
Der Sauger startet zudem einmal am Tag neu.
Notify nur bei sinnvollen Werten triggern, Problem gelöst.
Zitat von: Typ1er am 03 Mai 2019, 14:22:36
so sah es bei mir aus wenn das Token falsch ist
Dein anderer Beitrag ist verschwunden.
Token falsch?!
Ich hatte den Beitrag gelöscht, ja irgendwie hatte sich das Token aktualisiert. Habe es dann neu ausgelesen danach ging es wieder.
so sah es aus mit falschem Token
2019.05.01 00:00:44 3: Ventilator: disconnecting
2019.05.01 00:00:44 2: Ventilator: connecting
2019.05.01 00:00:44 3: Ventilator: initialized
2019.05.01 00:01:33 3: Ventilator: connection timeout
mit verbose 5
'ATTR Ventilator verbose 5'
];
2019.05.03 02:39:14 3: Ventilator: disconnecting
2019.05.03 02:39:14 2: Ventilator: connecting
2019.05.03 02:39:14 3: Ventilator: initialized
2019.05.03 02:39:14 5: Ventilator: initSend
2019.05.03 02:39:14 5: Ventilator Send SUCCESS
2019.05.03 02:39:14 5: Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2019.05.03 02:39:15 5: Ventilator < 2131002000000000055f8b28000385dbffffffffffffffffffffffffffffffff (32)
2019.05.03 02:39:21 4: Ventilator: write {"id":493,"method":"get_prop","params":["angle","angle_enable","power","bat_charge","battery","speed_level","natural_level","buzzer","led_b","poweroff_time","ac_power","child_lock","temp_dec","humidity","speed","button_pressed"]} (229)
2019.05.03 02:39:21 5: Ventilator: send 2131011000000000055f8b28000385e1bb37d381109e737594421cd4e01033139c32b4cb6270292033ae85e493ee3a483fbea35a6904ffffd63f6d15633fce8a7fc39e4d1e2eff935523b7a41a121e94f0d03f4b773beb69213552ee46c135c4b2ddc9c9645a07b951505207fb68e55ebfaadafb9fd8498468bae0033a0a89a1f187dacc4ad48112e82d8526de5b5193e55576662c15b00cf0105e24acdd059be2086cdfbf8a1b5db613502b4deb6e2f0a313834d309c0735019e86375e9f8a07f73a382ce8faf412aa4d754b6a4b8cf3755aadc5405e69d02695e82e42ea7b81f89c6c10963e00ced3a43a78476a59417d9a434c6cda2b439db9a417957dd24e9200d25d6729cdbf2a90d2b376b11d6
2019.05.03 02:39:21 5: Ventilator Send SUCCESS
2019.05.03 02:39:21 5: Ventilator > 2131011000000000055f8b28000385e1bb37d381109e737594421cd4e01033139c32b4cb6270292033ae85e493ee3a483fbea35a6904ffffd63f6d15633fce8a7fc39e4d1e2eff935523b7a41a121e94f0d03f4b773beb69213552ee46c135c4b2ddc9c9645a07b951505207fb68e55ebfaadafb9fd8498468bae0033a0a89a1f187dacc4ad48112e82d8526de5b5193e55576662c15b00cf0105e24acdd059be2086cdfbf8a1b5db613502b4deb6e2f0a313834d309c0735019e86375e9f8a07f73a382ce8faf412aa4d754b6a4b8cf3755aadc5405e69d02695e82e42ea7b81f89c6c10963e00ced3a43a78476a59417d9a434c6cda2b439db9a417957dd24e9200d25d6729cdbf2a90d2b376b11d6
2019.05.03 02:39:24 4: Ventilator: write {"id":494,"method":"get_prop","params":["angle","angle_enable","power","bat_charge","battery","speed_level","natural_level","buzzer","led_b","poweroff_time","ac_power","child_lock","temp_dec","humidity","speed","button_pressed"]} (229)
2019.05.03 02:39:24 5: Ventilator: send 2131011000000000055f8b28000385e40591f4ca226599ac09606113c13271ce39b8281382db68629c2dff626d0cf4ca231d4324c02920c217ec92547e9269f698d9a86bf1a617a7db46d7087f6633a829137d9917146e3579da3d80485a738b59ea4c843cc385cd36f6e0304d223ea5e8af99d751ef8010d176eb18726750268ac371340639f3325025f0c2beae8fc95dd9fa1ccf7b1a029740b5ea274a52fe755f3ea76a03bb3dfebdc1f6f172d476249a2f1fd7dd6b8e06e04f263fadf3876541c2ee696e5635691da39be16216273685dfec147903ce68ec2e26f7bcbaa8842e71698b75446e89c1dfd003595633a6115da10c472d430a6fc74266edde8ba713a4d84b461994653530a86f6cae95
2019.05.03 02:39:24 5: Ventilator Send SUCCESS
2019.05.03 02:39:24 5: Ventilator > 2131011000000000055f8b28000385e40591f4ca226599ac09606113c13271ce39b8281382db68629c2dff626d0cf4ca231d4324c02920c217ec92547e9269f698d9a86bf1a617a7db46d7087f6633a829137d9917146e3579da3d80485a738b59ea4c843cc385cd36f6e0304d223ea5e8af99d751ef8010d176eb18726750268ac371340639f3325025f0c2beae8fc95dd9fa1ccf7b1a029740b5ea274a52fe755f3ea76a03bb3dfebdc1f6f172d476249a2f1fd7dd6b8e06e04f263fadf3876541c2ee696e5635691da39be16216273685dfec147903ce68ec2e26f7bcbaa8842e71698b75446e89c1dfd003595633a6115da10c472d430a6fc74266edde8ba713a4d84b461994653530a86f6cae95
2019.05.03 02:40:06 3: Ventilator: connection timeout
2019.05.03 02:43:06 3: Ventilator: disconnecting
2019.05.03 02:43:06 2: Ventilator: connecting
2019.05.03 02:43:06 3: Ventilator: initialized
2019.05.03 02:43:06 5: Ventilator: initSend
2019.05.03 02:43:06 5: Ventilator Send SUCCESS
2019.05.03 02:43:06 5: Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2019.05.03 02:43:06 5: Ventilator < 2131002000000000055f8b28000386c3ffffffffffffffffffffffffffffffff (32)
2019.05.03 02:43:13 4: Ventilator: write {"id":495,"method":"get_prop","params":["angle","angle_enable","power","bat_charge","battery","speed_level","natural_level","buzzer","led_b","poweroff_time","ac_power","child_lock","temp_dec","humidity","speed","button_pressed"]} (229)
2019.05.03 02:43:13 5: Ventilator: send 2131011000000000055f8b28000386ca1dfabedd201d69063523c21a6f7865a412daebfae2add2f1746a847c81f378d8736ad5d1a3b3cfb25473e162acfd3e6971cd88094fd6936999013c0f5a38d5f08a0a9e73288652401093c65e1c5ccdd4957da3549906098030d413e58e7510c6c3d093d4a036bf1acbc00eeee99f8cdc4343fc52d57f8897a8dedafcf15379d8f3c51ce38f1ccf68b72b1a6a36584b4489e4124929458cd26212c640d993f4288aaa449fcafcc42f596dd61becf94680b80a3796b563219713bc1ff5864c47162c2a031821d7b510b6135f86a9e5e755fdaec0ef44a4523fc5dd300396bf3f8497f69c5c416d8f6c5b8afe6e51728d672222dab2d3cb00f27e4171e1907c60e8
2019.05.03 02:43:13 5: Ventilator Send SUCCESS
2019.05.03 02:43:13 5: Ventilator > 2131011000000000055f8b28000386ca1dfabedd201d69063523c21a6f7865a412daebfae2add2f1746a847c81f378d8736ad5d1a3b3cfb25473e162acfd3e6971cd88094fd6936999013c0f5a38d5f08a0a9e73288652401093c65e1c5ccdd4957da3549906098030d413e58e7510c6c3d093d4a036bf1acbc00eeee99f8cdc4343fc52d57f8897a8dedafcf15379d8f3c51ce38f1ccf68b72b1a6a36584b4489e4124929458cd26212c640d993f4288aaa449fcafcc42f596dd61becf94680b80a3796b563219713bc1ff5864c47162c2a031821d7b510b6135f86a9e5e755fdaec0ef44a4523fc5dd300396bf3f8497f69c5c416d8f6c5b8afe6e51728d672222dab2d3cb00f27e4171e1907c60e8
2019.05.03 02:43:16 4: Ventilator: write {"id":496,"method":"get_prop","params":["angle","angle_enable","power","bat_charge","battery","speed_level","natural_level","buzzer","led_b","poweroff_time","ac_power","child_lock","temp_dec","humidity","speed","button_pressed"]} (229)
2019.05.03 02:43:16 5: Ventilator: send 2131011000000000055f8b28000386cdb02bd5a2dabaef62c3c611ef373097c85df083f955696fd05fd47ea00324fc4dea329bd118fc6ca6b8e94c35f012ac42d38eafc861dacdc0111e9c0850d52bf3c792b423e80e145f1f8e7fb23a66b8dce83e8c951ff0f80ba4be49a7551c5e5fd5648bba373c100dccbdb4742a1a357c799d1e121a221d8b0bd0a43db62d3995a62c6feb44ad7f3315d257e24ce7ae134b24ed3c6c9b8c98e8a43c9783c3f48ecae4b06ecd5ed0b71372a66fe199ca8402308222ce967f1d2bc5538cf6aafe4ffdd980283cc9ecbeae329a2f30b65cde941b059110a591315122db854a96527afa21ada684cc8463fc439019c00583ba0e6df5b6b7c1fea672160381852b3abb
2019.05.03 02:43:16 5: Ventilator Send SUCCESS
2019.05.03 02:43:16 5: Ventilator > 2131011000000000055f8b28000386cdb02bd5a2dabaef62c3c611ef373097c85df083f955696fd05fd47ea00324fc4dea329bd118fc6ca6b8e94c35f012ac42d38eafc861dacdc0111e9c0850d52bf3c792b423e80e145f1f8e7fb23a66b8dce83e8c951ff0f80ba4be49a7551c5e5fd5648bba373c100dccbdb4742a1a357c799d1e121a221d8b0bd0a43db62d3995a62c6feb44ad7f3315d257e24ce7ae134b24ed3c6c9b8c98e8a43c9783c3f48ecae4b06ecd5ed0b71372a66fe199ca8402308222ce967f1d2bc5538cf6aafe4ffdd980283cc9ecbeae329a2f30b65cde941b059110a591315122db854a96527afa21ada684cc8463fc439019c00583ba0e6df5b6b7c1fea672160381852b3abb
2019.05.03 02:43:58 3: Ventilator: connection timeout
Der Token wird erneuert wenn du beispielsweise die WLAN Einstellungen änderst.
Das Modul bekommt dann maximal noch eine Antwort auf das HELLO Packet, sonst nichts mehr.
Zitat von: chq am 31 März 2019, 17:53:59
Zitat von: dl4fb am 17 Januar 2019, 18:01:46
Alternativ Root einrichten und die Karten speichern und zurückladen.
Hast Du hierfür evtl. einen heissen Link?
Gruß Chris
Das fände ich auch interessant im Hinblick auf meine Entscheidung ob ich einen Roborock S50 bestelle oder nicht.
Das Hauptproblem hier im Thread scheint immer wieder die drehende Karte zu sein.
Klingt irgendwie ein wenig als könnte man die Zonenfunktion damit nicht wirklich langfristig stabil bekommen.
Möchte ungern mehr Zeit in Zonenkorrekturen stecken, als das Saugen von Hand in Anspruch nimmt. :P
Mal von der Akzeptanz mangehaft eingebundener Automatisierungen durch die bessere Hälfte abgesehen.
Mit Rooten hätte ich keine Probleme, ist aber eben die Frage ob man die vom Sauger für die Navigation herangenommene Karte eben sichern/wiederherstellen kann.
@Markus_M oder zielen die neuen Funktionen rund um gespeicherte Karten, um welche es auf den letzten Seiten ging auch auf diesen Zweck ab?
Zum Root evtl. im Roboter Forum nachschauen, da gibt es eine eigene Rubrik.
Interessant - bei mir drehte sich die Karte bislang noch nie.
Da ich die Zonen per Amazon Dash-Button anfahre, wäre der WAF entsprechenden gering, hi.
Ich starte allerdings, wenn ich mal keine Zone fahre, immer die gleiche Fläche im EG (2. Xiaomi im OG). Also immer die gleichen Türen geöffnet usw.
Das bedeutet, dass die Karte nach jedem kompletten Lauf gleich aussieht.
So funktioniert das Ganze bei mir mit hohem WAF.
Auf die Fahrt ganz ohne Zonen würde ich evtl. verzichten und eben eine Zone gesamte Wohnung erstellen.
Mir ging es erstmal darum eine Einschätzung zu bekommen wie "schlimm" das Problem ist.
Passiert das vielen hier alle paar Wochen, oder eher einmal im Jahr?
Wenn man die Karte dann wieder komplett erstellen lässt (komplette Fahrt ohne Zonen), kann man dann die alten Zonenkoordinaten aus FHEM wieder verwende, da die Wohnung an sich ja noch gleich aussieht und die Karte wieder richtig gedreht sein sollte?
Habe gesehen über root + Valetudo ist ja wohl das Auslesen der Karte als Bilddatei möglich. (Oder geht das auch ohne Fake-Cloud/Offline-Nutzung?)
Man könnte das Bild ja vor der Reinigung analysieren und dann entweder Zonen für die normale oder gedrehte Karte übergeben.
Evtl. reicht es hier ja schon, zu schauen ob die Karte horizontal oder vertikal ist.
Falls nicht lässt sich sicher mit OpenCV und einem kleinen Script auswerten an welcher Stelle des Bildes die Ladestation eingezeichnet ist.
Will halt vermeiden mir das Gerät jetzt zu kaufen und dann klappt die von mir als recht wichtig angesehene Einzelraum/Zonenreinigung alle paar Tage / Wochen nicht mehr...
Ich benutze hier ausschließlich Zonenreinigung - mittlerweile.
Wenn sich die Karte aus irgend einem Grund mal verdreht haben sollte reicht es, die Komplettreinigung anzustoßen. Wenn die Karte dann auf dem Kopf steht - meist klappt es beim zweiten Mal.
Die Komplettreinigung muß auch nicht vollständig abgearbeitet werden. Ich habe in dem Raum 3-4 Punkte markiert, die ich dann anfahre und einen möglichst kleinen Bereich dort säubern lasse. Dabei vervollständigt sich die Karte. Die alten Koordinaten der Zonenreinigung funktionieren hier danach wieder.
Zitat von: Thyraz am 09 Mai 2019, 08:52:47
Auf die Fahrt ganz ohne Zonen würde ich evtl. verzichten und eben eine Zone gesamte Wohnung erstellen.
Habe ich bei mir (teilweise) auch so.
Also "kleinere Zonen" und dann eine Zone "gesamt".
Je nachdem steuere ich dann an was ich brauche...
Zitat von: Thyraz am 09 Mai 2019, 08:52:47
Mir ging es erstmal darum eine Einschätzung zu bekommen wie "schlimm" das Problem ist.
Passiert das vielen hier alle paar Wochen, oder eher einmal im Jahr?
Also bei mir ist es jetzt 1x (oder vielleicht 2x) vorgekommen.
Allerdings war ich "selber schuld": hab den Robbi auf Koordinate rausfahren lassen, ihn dann "aufgenommen" (Reinigen, mal kucken, ...) und dann wieder "irgendwo" (also halt nicht "genau") zurückgesetzt und ihn dann "heim geschickt"...
Da hat er angefangen eine ganz "seltsame" Karte zu malen ;)
Danach einen (mehr oder weniger) Komplettvorgang (ohne Zone) und dann hat es wieder gepasst...
Mittlerweile mache ich das anders: ich "ziehe" ihn aus der Station, reinige ihn und stelle ihn wieder zurück. Seither passt alles...
Zitat von: Thyraz am 09 Mai 2019, 08:52:47
Wenn man die Karte dann wieder komplett erstellen lässt (komplette Fahrt ohne Zonen), kann man dann die alten Zonenkoordinaten aus FHEM wieder verwende, da die Wohnung an sich ja noch gleich aussieht und die Karte wieder richtig gedreht sein sollte?
Wie geschrieben: hat bei mir funktioniert.
Wichtig ist (denke ich), dass er halt wieder gleiche/ähnliche Umgebung vorfindet. Also immer ähnlichen Bereich "sieht", dann ist die Karte wieder (ähnlich) wie zuvor und dadurch brauchbar.
Ich musste nur einmal (glaube ich) nachbessern, weil sich die Karte nicht mehr gedreht hat...
...aber seither: passt es.
Fahre aber dort wo ich mit Zonen arbeite auch NUR mit Zonen (eigentlich verwende ich das nur beim Gen1).
(In der Küche und Bad [Gen2] wird "nur" gereinigt, nix mit Zonen)
Zitat von: Thyraz am 09 Mai 2019, 08:52:47
Habe gesehen über root + Valetudo ist ja wohl das Auslesen der Karte als Bilddatei möglich. (Oder geht das auch ohne Fake-Cloud/Offline-Nutzung?)
Ich habe "nur" gerootet und komme auch an die Karte dran.
Gibt wohl verschiedene Möglichkeiten und auch verschiedene Karten.
Der Sauger legt auch Karten in einer "DB" ab...
Und es gibt noch die "Live-Karten", die halt nur wenn er auch saugt... ;)
Hier steht ein wenig was dazu: https://forum.fhem.de/index.php/topic,86535.msg789573.html#msg789573
Habe das aber (Zeitmangel und keine [große] Not) noch nicht wirklich weiterverfolgt... :-|
Zitat von: Thyraz am 09 Mai 2019, 08:52:47
Man könnte das Bild ja vor der Reinigung analysieren und dann entweder Zonen für die normale oder gedrehte Karte übergeben.
Evtl. reicht es hier ja schon, zu schauen ob die Karte horizontal oder vertikal ist.
Falls nicht lässt sich sicher mit OpenCV und einem kleinen Script auswerten an welcher Stelle des Bildes die Ladestation eingezeichnet ist.
Wie so oft: man kann sicher viel tun ;)
Zeit müsste man nur haben...
Zitat von: Thyraz am 09 Mai 2019, 08:52:47
Will halt vermeiden mir das Gerät jetzt zu kaufen und dann klappt die von mir als recht wichtig angesehene Einzelraum/Zonenreinigung alle paar Tage / Wochen nicht mehr...
Also hier die kurze Version:
Ich bin voll zufrieden!
Mit beiden Varianten.
Da ich Zone bei Gen2 nicht nutze (da ich den nur wegen der Wischfunktion habe) kann ich nicht sagen, ob die dort besser geht.
Was schön ist, sind die "no-go" Sachen (bräuchte ich aber eher beim Gen1).
Wenn man dafür sorgt, dass der Sauger immer ähnliche Verhältnisse vorfindet / gleiche/ähnliche Umgebung sieht geht das mit den Zonen einwandfrei (bei mir).
Allerdings müssen die bei mir nicht so große Bereiche abdecken, mag helfen...
Gen1 vs. Gen2 (meine Meinung):
wenn kein Wisch und kein "no-go" notwendig: Gen1 (weil der praktisch genau so gut ist aber nur die Hälfte kostet)...
Er wird halt wohl keine Features mehr bekommen :-|
Bzgl.: "dümmer" bei Zonenreinigung kann ich so nicht ganz bestätigen. Habe einen Hocker ("Vollkubus") und den schiebe ich schon mal hier und da hin. Den "stößt" er schon beim Reinigen. Aber (ich glaube) das macht er auch, wenn ich nicht Zone hätte (hatte ich zuvor eine Zeit lang ohne da war es [gefühlt] genau so). Beim Zurückfahren in die Station weiß er dann schon wo er lang muss, egal wo ich den Hocker vorher stehen hatte. Gut man könnte ihn sicher ärgern (und dann würde er [vermutlich] auch dumm fahren) und vor dem Zurückfahren den Hocker wieder in den Weg stellen ;)
Gruß, Joachim
Ok, dann fühle ich mich mal soweit sicher, dass ich an dem Gerät mehr Spaß als Ärger haben werde.
Danke für die nochmalige ausführliche Rückmeldung.
Dann wird mal bestellt. :)
@Markus:
ich habe ja (nochmal) das mit "save_map" getestet.
Wie per Mail geschrieben funktioniert das mit der "offiziellen" Version (zumindest bei mir) nicht so...
...mit der damals zur Verfügung gestellten "Prototypversion" geht es.
Leider nutze ich das Feature nicht, daher fällt es mir nur auf, wenn ich teste...
...da es ja leider nur beim Gen2 geht ich es aber für den Gen1 bräuchte (mir aber nur deswegen für den Teil der Wohnung OHNE Wischen aber keinen extra zulegen will / und immer Wischeinsatz rein und raus ist doof / und den Gen1 habe ich ja mal für den Teil der Wohnung gekauft [da wusste ich noch nicht, dass das kommt und ich das gut brauchen könnte ;) ] ).
@all:
nutzt (noch) jemand das Feature!?
Funktioniert das!?
Gruß, Joachim
Zitat von: Markus M. am 06 Februar 2019, 17:58:30
Nein, die Syntax ist hier etwas anders.
Das hier hatte jemand als Beispiel, sollte eine Linie und eine Fläche ergeben:
1,26353,26920,27314,26042 0,25375,26490,25884,26490,25884,25860,25375,25860
Hier mal die Logik wie das zu funktionieren scheint, die erste Zahl ist immer der Typ (0=Nogo-Zone, 1=Sperrlinie).
Ob es allgemein im Modul funktioniert, kann ich leider erst nächste Woche sagen.
Nogo-Zone:
0,X_oben_links,Y_oben_links,X_oben_rechts,Y_oben_rechts,X_unten_rechts,Y_unten_rechts,X_unten_links,Y_unten_links
Sperrlinie:
1,X1,Y1,X2,Y2
Hat schon jemand rausgefunden, ob man mit einem der Map Commands die Nogo-Zonen und Sperrlinien zurücksetzen kann,
ohne die gespeicherte Karte komplett zu löschen?
So richtig nützlich ist das einzeichnen von neuen Sperrbereich per SmartHome ja nur, wenn man sie auch wieder automatisiert los wird.
Z.B. Teppiche sperren beim Wischen und wieder erlauben beim Saugen.
Zitat von: Thyraz am 20 Mai 2019, 15:40:50
Hier mal die Logik wie das zu funktionieren scheint, die erste Zahl ist immer der Typ (0=Nogo-Zone, 1=Sperrlinie).
Ob es allgemein im Modul funktioniert, kann ich leider erst nächste Woche sagen.
Nogo-Zone:
0,X_oben_links,Y_oben_links,X_oben_rechts,Y_oben_rechts,X_unten_rechts,Y_unten_rechts,X_unten_links,Y_unten_links
Sperrlinie:
1,X1,Y1,X2,Y2
Hat schon jemand rausgefunden, ob man mit einem der Map Commands die Nogo-Zonen und Sperrlinien zurücksetzen kann,
ohne die gespeicherte Karte komplett zu löschen?
So richtig nützlich ist das einzeichnen von neuen Sperrbereich per SmartHome ja nur, wenn man sie auch wieder automatisiert los wird.
Z.B. Teppiche sperren beim Wischen und wieder erlauben beim Saugen.
Kann ich bei Gelegenheit mal probieren...
Allerdings (hier noch mal der Hinweis / https://forum.fhem.de/index.php/topic,73052.msg938158.html#msg938158) funktioniert (bei mir) save_map unter Mitgabe von Koordinaten für no-go (Zone/Linie) nur mit einer Vorabversion ("Prototyp") des Moduls.
Mit der aktuellen funktioniert es nicht...
Gruß, Joachim
Kann ich einbauen wenn das alles soweit funktioniert.
Ich hab nur V1, kann daher nicht testen.
Was die Exclusions bzw. das Löschen angeht: funktioniert das denn in der App?
Falls ja: einfach mal auf einem S50 mit root im MiIO Log nachsehen, dann wisst ihr wie es geht.
Hallo Markus, hab in den Weiten des Netzes gefunden, dass man es mit einem leeren Array als Übergabeparameter "params" wohl löschen kann.
Dann gerade in deinen Quellcode reingeschaut und gesehen, dass du das ja wohl schon eingebaut hast. ;D
elsif ($cmd eq 'save_map')
{
my $packetid = $hash->{helper}{packetid};
$hash->{helper}{packetid} = $packetid+1;
$hash->{helper}{packet}{$packetid} = "save_map";
my $map = "[".join("],[", @arg)."]";
$map = $hash->{helper}{maps}{$arg[0]} if(defined($hash->{helper}{maps}) && defined($hash->{helper}{maps}{$arg[0]}));
$map = "" if($arg[0] eq "reset");
XiaomiDevice_WriteJSON($hash, '{"id":'.$packetid.',"method":"save_map","params":['.$map.']}' );
}
Ein set <device> save_map reset sollte das also schon erledigen.
Ob das ganze bei mir funktioniert, werde ich nächste Woche anschauen können, wenn ich dazu komme den Roboter daheim zu testen.
Mehr als ne kleine Testrunde ohne FHEM hat es davor leider nicht gereicht. :(
Ansonsten wäre interessant was in der Testversion von MadMax anders war als im aktuell eingecheckten Zustand.
Grüße,
Tobias
Zitat von: Thyraz am 20 Mai 2019, 21:25:17Ansonsten wäre interessant was in der Testversion von MadMax anders war als im aktuell eingecheckten Zustand.
Nichts mehr. Im SVN ist aktuell alles drin.
Zitat von: Markus M. am 20 Mai 2019, 23:17:06
Nichts mehr. Im SVN ist aktuell alles drin.
Auf meinem Hauptsystem habe ich folgende Version:
72_XiaomiDevice.pm 18977 2019-03-20 12:22:57Z moises
Werde mal ein Update machen bzw. auf meinem Testsystem (dort ist noch die "Prototyp-Variante) und sehen was geht...
Gruß, Joachim
Zum Thema "verdrehte Karte" etc. hab ich mal was gebastelt um sie per MQTT Messages sichern/wiederherstellen zu können.
Um hier nicht zu Offtopic zu werden hab ich dafür mal einen neuen Thread aufgemacht:
https://forum.fhem.de/index.php?topic=101197.msg946580#msg946580
Zitat von: Thyraz am 06 Juni 2019, 09:18:28
Zum Thema "verdrehte Karte" etc. hab ich mal was gebastelt um sie per MQTT Messages sichern/wiederherstellen zu können.
Um hier nicht zu Offtopic zu werden hab ich dafür mal einen neuen Thread aufgemacht:
https://forum.fhem.de/index.php?topic=101197.msg946580#msg946580
Den hab ich mir schon "abgespeichert" :) ;)
Werde ich mir mal anschauen, wobei ich das evtl. mal ohne MQTT probieren will...
...aktuell nutze ich MQTT nur auf einem meiner Testsysteme (und das wollte ich [vorerst] auch so lassen)...
Danke, Joachim
Hallo Leute,
draußen wird es so langsam aber sicher Sommer, so dass ich mir gerade den ,,Mi Smart Fan" gegönnt habe.
Muss man bei der Inbetriebnahme/Konfiguration irgendwas beachten?
Danke und viele Grüße Hoppel
Token am besten mit Hilfe der russischen Mi-Home App auslesen, da dort der Token als Klartext angezeigt wird,anschließend definieren,und den Subtyp per Attribut setzen..Danach kannst du ihn über fhem steuern!
Grüße
Ok, also brauche ich den Token doch. Im ersten Beitrag dieses Threads steht, dass man den beim Ventilator nicht benötigt.
Da ich ausschließlich Apple Devices habe, wird das mit der russischen App nichts. Ich werde das dann wohl über ein unverschlüsseltes iTunes Backup machen müssen. Beim Roborock S50 hat es auf diesem Wege auch geklappt.
Danke für die Info
Hallo Markus,
ich spiele ja grad ein wenig mit den Karten auf den Saugern rum: https://forum.fhem.de/index.php/topic,101197.msg946535.html#msg946535
Mir ist dann aufgefallen, dass es beim Modul auch einige set-Befehle bzgl. Karten/maps gibt:
get_fresh_map
get_persist_map
use_new_map
use_old_map
dazu konnte ich aber keine Beschreibung finden...
...weder "Device specific help" noch Commandref...
Auch nicht im ersten Post...
Die folgenden verstehe ich (mehr oder weniger), die habe ich ja schon mal getestet (wobei die ja in der aktuellen Version NICHT [so] funktioniert haben [wie mit der Vorabversion so um Weihnachten] / hatte ich ja hier schon mal geschrieben):
start_edit_map
end_edit_map
(wobei ich nicht weiß, ob man die tatsächlich braucht, weil bei meinen Tests hat der save_map gereicht bzw. wurden damit halt [wieder] die übergebenen Sperrzonen/Sperrlinien gesetzt)
save_map (ist klar)
Machen die was ähnliches!?
Wenn ich Zeit hab schaue ich mal in den Code, vielleicht werde ich da schlau(er)...
Gruß, Joachim
Hallo Leute,
mein Fan ist da, bekomme ihn allerdings nicht mit der App gekoppelt. Evtl. hat jemand von euch eine Idee dazu. Ich habe dafür einen eigenen Thread erstellt, da es hier nicht so richtig reinpasst:
https://forum.fhem.de/index.php?topic=101495.msg949329#msg949329
Wäre schön, wenn sich jemand mit so einem Gerät mal meinen Thread anschauen könnte.
Danke und viele Grüße Hoppel
Hallo Leute,
wie in dem vorangegangenen Thread ermittelt habe ich nun einen "Smartmi DC Pedestal Fan", den ich in der Region China betreiben muss, damit er von der App überhaupt erkannt wird. Ich habe genau zwei Xiaomi Geräte. Den Roborock S50 und diesen Ventilator. Den Robocrock betreibe ich in der Region "Deutschland" und den Ventilator in China (weil es anscheinend nicht ander geht). Dafür muss ich in der Xiaomi App in der Region immer hin und her switchen. Das gefällt mir nicht so richtig.
Bin nun am Überlegen mir nochmal einen "Smartmi Standing Fan 2S" zu bestellen und den "Smartmi DC Pedestal Fan" wieder zurückzuschicken. Der "2S" hat so wie ich das nun ermittelt habe ebenfalls ein Akku, was beim "2 (ohne S)" dann fehlt. Voraussetzung dafür ist allerdings, dass der "2S" auch von diesem Modul "72_XiaomiDevice" unterstützt wird.
Kannst du @Markus M. oder jemand anderes mir nochmal bestätigen, dass der 2S mit diesem Modul läuft?
Danke euch und Gruß Hoppel
Darf ich mal kurz fragen, warum du den Fan überhaupt per App nutzen willst?
Grüße
Hm, gute Frage... :) Warum will ich das überhaupt? Mein Ziel ist es den Ventilator über das Modul in FHEM einzubinden und dann über Homebridge in Homekit, damit ich ihn mit Siri steuern kann. Von daher ist es eigentlich nicht so wichtig, ihn direkt in der Xiaomi App zu sehen.
Ich finde es halt einfach bescheiden, dass ich die Region in der Xiaomi App bei erst 2 Geräten schon switchen muss.
Wahrscheinlich ist das einfach eine Sache meines inneren Wohlbefindens. ;)
Dass es mittlerweile so viele verschiedene Versionen dieses Lüfters gibt, war mir gar nicht bewusst.
Wie dem auch sei. Für den Roborock nutze ich die App ab und zu, um einen Blick auf die Karte werfen zu können. Dann wäre es schön, dort auch direkt den Ventilator zu sehen.
Die Frage bleibt also: Sind ,,Smartmi Standing Fan 2/2S" kompatibel mit diesem Modul?
Gruß Hoppel
Da ich den alten Fan habe: vermutlich ja.
Probier es aus, wenn deiner dann andere Befehle braucht, kann ich die wahrscheinlich ohne große Probleme einbauen.
Ok, danke für das Feedback, dann werde ich mir gleich mal den 2S bestellen. Das ältere Modell kann ich noch bis Mitte Juli zurückgeben. Hatte den bei Amazon bestellt.
Nichtsdestotrotz werde ich den älteren bei Gelegenheit auch mal einrichten, um für den 2S eine Referenz in FHEM zu haben.
Ich melde mich wieder.
Danke und Gruß Hoppel
@Marcus Hast du deinen Fan in homebridge eingerichtet? Welchen genericDeviceType hast du verwendet und kannst du mir dein homebridgeMapping zur Verfügung stellen, insofern du eins konfiguriert hast. Ich werde mich heute Abend vrsl. damit beschäftigen, falls es zeitlich passt.
Danke und viele Grüße Hoppel
Hi, so habe gerade den Token von dem Fan ausgelesen und das Device in FHEM definiert:
Hier ein List des Devices:
Internals:
CFGFN
DEF XX.XX.XX.XX yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
FD 59
FUUID 5d06a0c9-f33f-5dcf-94ed-8d09d5d8e2f1992d
NAME OG_Buero_Ventilator
NR 496
STATE ???
TYPE XiaomiDevice
helper:
ConnectionState initialized
crypt AES
delay 660
ip XX.XX.XX.XX
packetid 3
port 54321
token yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
packet:
1 power_off
2 power_on
Attributes:
subType SmartFan
verbose 5
2019.06.16 22:04:25 3: OG_Buero_Ventilator: initialized, using AES
2019.06.16 22:04:35 3: OG_Buero_Ventilator: disconnecting
2019.06.16 22:04:35 2: OG_Buero_Ventilator: connecting
2019.06.16 22:04:35 3: OG_Buero_Ventilator: initialized
2019.06.16 22:06:05 3: OG_Buero_Ventilator: disconnecting
2019.06.16 22:06:05 2: OG_Buero_Ventilator: connecting
2019.06.16 22:06:05 3: OG_Buero_Ventilator: initialized
2019.06.16 22:06:05 5: OG_Buero_Ventilator: initSend
2019.06.16 22:06:05 5: OG_Buero_Ventilator Send SUCCESS
2019.06.16 22:06:05 5: OG_Buero_Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2019.06.16 22:06:12 4: OG_Buero_Ventilator: write {"id":1,"method":"set_power","params":["off"]} (46)
2019.06.16 22:06:12 5: OG_Buero_Ventilator: initSend
2019.06.16 22:06:12 5: OG_Buero_Ventilator Send SUCCESS
2019.06.16 22:06:12 5: OG_Buero_Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2019.06.16 22:06:12 1: OG_Buero_Ventilator: internal error, values missing
2019.06.16 22:06:14 4: OG_Buero_Ventilator: write {"id":2,"method":"set_power","params":["on"]} (45)
2019.06.16 22:06:14 5: OG_Buero_Ventilator: initSend
2019.06.16 22:06:14 5: OG_Buero_Ventilator Send SUCCESS
2019.06.16 22:06:14 5: OG_Buero_Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2019.06.16 22:06:14 1: OG_Buero_Ventilator: internal error, values missing
Ich habe sicherheitshalber noch AES installiert. Vorher hatte ich noch folgende Meldungen im Logfile:
OG_Buero_Ventilator: initialized, using Rijndael
2019.06.16 21:47:32 3: OG_Buero_Ventilator: disconnecting
2019.06.16 21:47:32 2: OG_Buero_Ventilator: connecting
2019.06.16 21:47:32 3: OG_Buero_Ventilator: initialized
2019.06.16 21:48:29 1: OG_Buero_Ventilator: internal error, values missing
2019.06.16 21:48:31 1: OG_Buero_Ventilator: internal error, values missing
2019.06.16 21:48:33 1: OG_Buero_Ventilator: internal error, values missing
2019.06.16 21:48:48 1: OG_Buero_Ventilator: internal error, values missing
2019.06.16 21:51:37 4: OG_Buero_Ventilator: Crypt::Cipher::AES not found
2019.06.16 21:51:37 3: OG_Buero_Ventilator: initialized, using Rijndael
2019.06.16 21:51:47 3: OG_Buero_Ventilator: disconnecting
2019.06.16 21:51:47 2: OG_Buero_Ventilator: connecting
2019.06.16 21:51:47 3: OG_Buero_Ventilator: initialized
2019.06.16 21:51:47 5: OG_Buero_Ventilator: initSend
2019.06.16 21:51:47 5: OG_Buero_Ventilator Send SUCCESS
2019.06.16 21:51:47 5: OG_Buero_Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Ob das wirklich notwendig war, weiß ich nicht.
Morgen bin ich erst Abends wieder zu Hause. Ich frage mich sowieso gerade, ob wir (falls es hier etwas zu entwickeln gibt) das machen, wenn der andere SmartFan "2S" auch da ist. Dann können wir das für beide gleichzeitig machen.
Oder gibt es hier evtl. für mich noch eine einfache Möglichkeit das zu lösen?
Für Ratschläge bin ich offen. ;)
Danke und viele Grüße Hoppel
Hallo @Nighthawk,
habe gerade zufällig entdeckt, dass du mit deinem Airpurifier schonmal dasselbe Problem hattest, wie ich momentan mit meinem Fan habe.
Zitat von: Nighthawk am 06 Oktober 2018, 05:50:26
Hallo Markus,
als erstes vielen Dank für das Modul.
Leider funktioniert es nicht mit meinen Airpurifier.
Folgendes ist im log zu sehen:
2018.10.06 11:45:15 3: Luftreinigung_OG: disconnecting
2018.10.06 11:45:15 2: Luftreinigung_OG: connecting
2018.10.06 11:45:15 3: Luftreinigung_OG: initialized
2018.10.06 11:45:15 5: Luftreinigung_OG: initSend
2018.10.06 11:45:15 5: Luftreinigung_OG Send SUCCESS
2018.10.06 11:45:15 5: Luftreinigung_OG > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Hier der list des Geräts:
Internals:
DEF 192.168.1.106 826f9b3d5a7047316cc59b34dc01ac1c
FD 29
NAME Luftreinigung_OG
NR 24
STATE ???
TYPE XiaomiDevice
helper:
ConnectionState initialized
crypt AES
delay 0
ip 192.168.1.106
packetid 1
port 54321
token 826f9b3d5a7047316cc59b34dc01ac1c
Attributes:
subType AirPurifier
verbose 5
Zitat von: Markus M. am 07 Oktober 2018, 00:29:48
Leider keine Ahnung. Da tut sich irgendwie gar nichts.
Token stimmt? FHEM kann die IP erreichen?
Zitat von: Nighthawk am 14 Oktober 2018, 02:24:40
Hallo Markus,
Hab nochmal alles neu angelegt, jetzt funktioniert alles, war wohl irgendwo ein Fehler drin.
Danke nochmal für das Modul.
Gruß Alex
Was hast du genau neu angelegt? Kannst du mir da evtl. noch einen Tip geben?
Habe das 96stellige Token aus einem unverschlüsselten iTunes Backup ausgelesen und mich zur Entschlüsselung an folgende Anleitung gehalten: https://forum.smartapfel.de/forum/thread/370-xiaomi-token-auslesen/
Vor dem Token steht übrigens "zhimi.fan.v3VentilatorGallien-IoT". Es handelt sich also um das Token für den Lüfter/Ventilator und nicht um ein Token für irgend etwas anderes.
Gestern habe ich übrigens auch das Device in der Xiaomi App nochmal gelöscht und neu angelegt, um einen neuen Token zu erhalten, damit ich einen Copy-and-Paste-Fehler ausschließen kann. Auch das Define habe ich in FHEM mehrfach angelegt. Leider immer mit dem selben Ergebnis. Das "list" ist quasi leer, sämtliche Readings fehlen. Aus den Logs werde ich nicht schlau, eigentlich steht da nichts.
Falls hier ansonsten noch jemand anders eine Idee hat, immer her damit. ;)
Die IP des Ventilators ist von FHEM aus erreichbar und ich kann ihn mit der App steuern. Firmware Version ist laut App: 1.4.3_108
Viele Grüße Hoppel
Hallo Leute,
da bin ich wieder. Mittlerweile ist schon der 2S hier und ich habe den Fehler gefunden. Anscheinend klemmt irgendwas in der Kommunikation zwischen meinem normalen und meinem IoT-VLAN. Sobald ich die Ventilatoren in meinem normalen VLAN in Betrieb nehme erscheinen sofort alle Readings. Alle anderen Geräte funktionieren wie es sein soll in meinem IoT-VLAN, bspw. auch mein Roborock S50. Eigenartig, dass werde ich aber ein anderes Mal analysieren.
Ich habe nun beide Lüfter in Betrieb.
Hier ein list des Smartmi DC Pedestal Fan:
Internals:
DEF XX.XX.XX.XX yyyyyyyyyyyyyyyyyyyyyyyyyy
FD 45
FUUID 5d07966d-f33f-5dcf-6f14-8bd7b62dfc1327f1
NAME Fan_Test
NR 450
STATE connected
TYPE XiaomiDevice
READINGS:
2019-06-18 18:27:15 ac_power on
2019-06-18 18:27:15 angle 90
2019-06-18 18:27:15 angle_enable on
2019-06-18 18:27:15 batteryPercent 100
2019-06-18 18:27:15 batteryState ok
2019-06-18 18:27:15 button_pressed speed
2019-06-18 18:27:15 buzzer off
2019-06-18 18:27:15 charging complete
2019-06-18 18:27:15 child_lock off
2019-06-17 15:50:52 device_firmware 1.4.3_108
2019-06-17 15:50:52 device_uptime 0.75
2019-06-18 18:27:15 error none
2019-06-18 18:27:15 humidity 59
2019-06-18 18:27:15 led off
2019-06-18 18:27:15 level 0
2019-06-18 18:27:15 level_on 37
2019-06-18 18:27:15 mode straight
2019-06-18 18:27:15 power off
2019-06-18 18:27:15 poweroff_time 0
2019-06-18 18:27:15 speed 0
2019-06-18 17:57:12 state connected
2019-06-18 18:27:15 temperature 26
2019-06-17 15:32:44 wifi_auth_fail_count 0
2019-06-17 15:32:44 wifi_conn_fail_count 0
2019-06-17 15:32:44 wifi_conn_success_count 1
2019-06-17 15:32:44 wifi_dhcp_fail_count 0
2019-06-17 15:50:52 wifi_rssi -50
2019-06-17 15:32:44 wifi_state online
helper:
ConnectionState connected
crypt AES
delay 60
dev 0436
id e469
ip XX.XX.XX.XX
last_read 1560875235
packetid 547
port 54321
sequence 1560792979
token yyyyyyyyyyyyyyyyyyyyyyyyyy
packet:
472 fan_data
475 fan_data
480 fan_data
484 fan_data
486 fan_data
489 fan_data
491 fan_data
494 fan_data
496 fan_data
538 fan_data
Attributes:
subType SmartFan
Hier ein list des Smartmi Standig Fan 2S:
Internals:
CFGFN
DEF XX.XX.XX.XX yyyyyyyyyyyyyyyyyyyyyyyyyy
FD 61
FUUID 5d090ba7-f33f-5dcf-5733-be5e4bad21e06cc9
NAME OG_Buero_Fan
NR 1445
STATE ???
TYPE XiaomiDevice
hardware esp32
mac zz:zz:zz:zz:zz:zz
mcu_firmware 0008
model zhimi.fan.za4
token yyyyyyyyyyyyyyyyyyyyyyyyyy
wifi_firmware v3.1.3-8-gce4d3fe10
READINGS:
2019-06-18 18:31:23 ac_power on
2019-06-18 18:31:23 angle 90
2019-06-18 18:31:23 angle_enable on
2019-06-18 18:31:23 buzzer 0
2019-06-18 18:31:23 child_lock off
2019-06-18 18:05:10 device_firmware 2.0.2
2019-06-18 18:05:10 device_uptime 0.13
2019-06-18 18:31:23 error none
2019-06-18 18:31:23 led bright
2019-06-18 18:31:23 level 47
2019-06-18 18:31:23 level_on 47
2019-06-18 18:31:23 mode straight
2019-06-18 18:31:23 power on
2019-06-18 18:31:23 poweroff_time 0
2019-06-18 18:31:23 speed 504
2019-06-18 18:05:10 wifi_rssi -49
helper:
ConnectionState connected
crypt AES
delay 60
dev 0657
id a71c
ip XX.XX.XX.XX
last_read 1560875483
packetid 108
port 54321
sequence 1560873434
token yyyyyyyyyyyyyyyyyyyyyyyyyy
packet:
11 get_fw_features
12 app_get_locale
Attributes:
subType SmartFan
Ich habe direkt alle Funktionen des 2S getestet. Grundsätzlich scheint alles bis auf "buzzer" zu funktionieren.
Ansonsten ist mir aufgefallen, dass folgende Readings bei dem neueren Modell fehlen, die bei dem älteren Modell verfügbar sind:
- batteryPercent
- batteryState
- button_pressed
- charging
- humidity
- state (bei beiden Geräten erscheint das state Reading, wenn man einmal die Batterie leer laufen lässt. Danach ist "state : connected" vorhanden. Vorher ist kein state Reading verfügbar, "STATE : ??? ")
- temperature
- wifi_auth_fail_count
- wifi_conn_fail_count
- wifi_conn_success_count
- wifi_dhcp_fail_count
- wifi_state
Insbesondere battery/charging, humidity und temperature wären natürlich schön, wenn die auch beim 2S verfügbar wären. Allerdings stellt sich mir die Frage, ob in dem 2S überhaupt noch Temperatur bzw. Humidity Sensoren verbaut sind.
@Markus: Was brauchst du von mir, um die fehlenden Readings beim 2S herzustellen und die buzzer-Funktion zu reparieren? Der 2S hat auf jeden Fall ein Akku. Das ist der Unterschied zum 2 (ohne S). Der hat keinen Akku. Außerdem habe ich gerade das Netzkabel gezogen. Er läuft munter weiter. ;)
Danke dir und viele Grüße Hoppel
ZitatInsbesondere battery/charging, humidity und temperature wären natürlich schön, wenn die auch beim 2S verfügbar wären. Allerdings stellt sich mir die Frage, ob in dem 2S überhaupt noch Temperatur bzw. Humidity Sensoren verbaut sind.
Es sind keine Sensoren mehr verbaut..Auch den Akkustand teilt das Gerät nicht mit.
Hatte letztes Jahr die gleiche Anfrage gestellt.
Grüße
Das hier spuckt meiner aus Model DC smartmi 2018
Internals:
DEF 192.168.178.37 667b091e1c01b6af57bad28f91dfbe78
FD 145
FUUID 5cc763c3-f33f-06ea-58d1-c2cb727b59c7c6b6
NAME Ventilator
NR 238
STATE straight 0%
TYPE XiaomiDevice
READINGS:
2019-06-16 14:02:46 ac_power on
2019-06-16 14:02:46 angle 120
2019-06-16 14:02:46 angle_enable off
2019-06-16 14:02:46 buzzer 0
2019-06-16 14:02:46 child_lock off
2019-06-16 14:02:46 error none
2019-06-16 14:02:46 led bright
2019-06-16 14:02:46 level 0
2019-06-16 14:02:46 level_on 35
2019-06-16 14:02:46 mode straight
2019-06-16 14:02:46 power off
2019-06-16 14:02:46 poweroff_time 0
2019-06-16 14:02:46 speed 0
2019-06-16 13:44:54 state connected
helper:
ConnectionState initialized
crypt AES
delay 60
ip 192.168.178.37
packetid 1
port 54321
token 667b091e1c01b6af57bad28f91dfbe78
Attributes:
icon Ventilator_fett
room Wohnzimmer,XiaomiMiSmartHome
stateFormat mode level%
subType SmartFan
Zitat von: Esjay am 19 Juni 2019, 06:44:34
Es sind keine Sensoren mehr verbaut..Auch den Akkustand teilt das Gerät nicht mit.
Hatte letztes Jahr die gleiche Anfrage gestellt.
Hm... das ist ja schade.
Zitat von: Typ1er am 19 Juni 2019, 07:53:27
Das hier spuckt meiner aus Model DC smartmi 2018
Das sind nochmal 3 Readings (device_firmware, device_uptime, wifi_rssi) weniger als bei dem 2S.
Aber der Unterschied zwischen dem Smartmi DC Pedestal Fan und den neueren Generationen ist schon größer. Ich bin nun gerade etwas hin- und hergerissen, welchen Fan ich nun behalte. Das ältere Modell mit den ganzen Sensoren, der in der Region Deutschland nicht betrieben werden kann oder das neuere Modell ohne die Sensoren, dafür aber dem europäischen Datenschutz "gerecht" (was auch immer das bedeutet :) ) wird. Oder ich behalte einfach beide. ;)
Könnt ihr beide @Esjay und @Typ1er nochmal schauen, ob folgende Befehle bei euch funktionieren:
set <device> buzzer on
set <device> buzzer off
Damit kann man die Töne / Audiobestätigung bei Betätigung einer Taste am Gerät, beim Einstellen in der Xiaomi App oder beim Einstellen über das FHEM WebUI, whatever... ein bzw. ausschalten. Bei dem Smartmi DC Pedestal Fan funktioniert das. Bei dem 2S nicht.
Sobald ich diese Befehle ausführe, sehe ich in dem Reading error "invalidarg". Wie sieht das bei euch aus? Über die Xiaomi App funktioniert das auf jeden Fall auch bei dem 2S.
Das ist jetzt zwar nicht überlebenswichtig, aber ich bin gerade dabei die Homebridgemappings zu bauen, die ich auch im Wiki bereitstellen möchte. Dafür wäre es ganz gut Gewissheit zu haben.
@Esjay Welches Modell hast du genau?
Viele Grüße Hoppel
Zitat von: hoppel118 am 19 Juni 2019, 09:08:22
Könnt ihr beide @Esjay und @Typ1er nochmal schauen, ob folgende Befehle bei euch funktionieren:
set <device> buzzer on
set <device> buzzer off
Damit kann man die Töne / Audiobestätigung bei Betätigung einer Taste am Gerät, beim Einstellen in der Xiaomi App oder beim Einstellen über das FHEM WebUI, whatever... ein bzw. ausschalten. Bei dem Smartmi DC Pedestal Fan funktioniert das. Bei dem 2S nicht.
Das klappt bei mir, das Reading "error" wird aktualisiert , bleibt bei "none" der buzzer löst kein Event aus, wird auch erst beim Seiten refresh aktualisiert.
Zitat von: hoppel118 am 19 Juni 2019, 09:08:22
Hm... das ist ja schade.
Das sind nochmal 3 Readings (device_firmware, device_uptime, wifi_rssi) weniger als bei dem 2S.
die Readings sind noch aufgetaucht, war unterwegs, als den Beitrag erstellt habe
Hallo zusammen,
wäre es ggf. sinnvoll das Module zu erweitern damit es mit der Valetudo API auf den Vaccums sprechen kann?
Wir hatten da eine kleine Diskussion wegen der Koordinaten, siehe: https://forum.fhem.de/index.php/topic,101197.msg950415.html#msg950415
Aktiveren mit einem Attribute wie use_valetudo_api und dann könnte man über /api/get_config die Zonen aus Valetudo auslesen und automatisch in das zone_names Attribute übernehmen. Irgendwie mit einem SET Command z.b.
Ich würde auch selber mal versuchen das Module zu erweitern wenn das erlaubt ist.
mfg
Marcel
Für diejenigen, die auch Homebridge verwenden, ist vielleicht interessant, dass ich gerade meine Mappings für die beiden Lüfter im Wiki ergänzt habe. Außerdem habe ich (leicht angepasst) dass Mapping von Typ1er für den Roborock S50 veröffentlicht. Dickes Danke dafür.
https://wiki.fhem.de/wiki/Homebridge_User_Configs
@Markus: Es wäre schön, wenn du bei Gelegenheit noch mit mir die "buzzer" Thematik beim 2S prüfen und reparieren könntest. Bei dem neueren Modell funktioniert das nicht mehr, siehe vorangegangene Posts. Teile mir bitte mit, was du dafür von mir brauchst. Da ich wahrscheinlich beide Lüfter behalten werde, hat das erstmal keine Eile. :D
Gruß Hoppel
Buzzer funktioniert bei mir auch nicht..Ich denke ein verbose 5 bei ausgeführten Befehl sollte reichen.
@ rakete123: Ich denke gegen einen Patch hat niemand etwas. Machen ja viele so!
Grüße
@Esjay: Welches Modell hast du nochmal genau?
Das ist meiner ZhiMiDCVariableFrequencyFan (2018) oder ZRFFS01ZM oder Kennung aus der Fritzbox zhimi-fan-za1-miio00
-ohne Readings für Temperatur und Feuchte
-Keine Akkuzustandsreading
der Buzzer funktioniert
Anscheinend gibt es 3 Generationen
1. inkl. battery, humidity, temperature
2. (2018) ohne battery, humidity, temperature mit dem buzzer der 1. Generation
3. (2019 mit und ohne Akku) ohne battery, humidity, temperature mit einem anderen buzzer
Gruß Hoppel
es gab jedes Jahr ein Modell mit und ohne Akku
Achso, ok... Was die für uns relevanten Unterschiede betrifft, scheint es sich auf diese 3 Generationen zu belaufen. Seit welchem Jahr gibt es diese Lüfter?
Hattest du nochmal das andere Mapping für den neuen 2S getestet?
Das müsste bei dir eigentlich vollständig funktionieren.
Gruß Hoppel
nachdem jetzt den buzzer einmal mit der App verstellt habe geht er nicht mehr :-\
Reading buzzer steht auch auf 0, statt on/off
Reading error wechselt beim setzen auf invalidarg
Ok, dann hast du jetzt den gleichen Zustand, den ich auch habe. Dass mit der Bedienung in der App zusammenhängt, hätte ich jetzt nicht zusammengebracht. Ich habe natürlich, als ich den Ventilator eingerichtet habe, direkt erstmal alle Funktionen in der App ausprobiert...
Dazu muss einer von uns beiden nochmal ein verbose 5 vom Ausführen der buzzer on/off Befehle an Markus liefern.
Viele Grüße Hoppel
Hallo,
ich musste kürzlich an meinem Roborock das WiFi zurücksetzen, weil der Staubsauger in der App nicht mehr verbunden war.
Leider klappt danach die Verbindung mit fhem nicht mehr. Davor ging es mindestens ein Jahr lang problemlos.
Jetzt ist er in der App verbunden, lässt sich aber aus fhem nicht mehr steuern.
Der Token ist nach dem WiFi Reset unverändert. Ich habe es neu aus der iPhone-App ausgelesen nach dieser Anleitung: https://forum.smartapfel.de/forum/thread/370-xiaomi-token-auslesen/ (https://forum.smartapfel.de/forum/thread/370-xiaomi-token-auslesen/)
Hier ein Logauszug beim "get dobby data":
2019.06.24 20:48:06 2: dobby: connecting
2019.06.24 20:48:06 3: dobby: initialized
2019.06.24 20:48:06 5: dobby: initSend
2019.06.24 20:48:06 5: dobby Send SUCCESS
2019.06.24 20:48:06 5: dobby > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2019.06.24 20:48:06 5: dobby < 213100200000000004ec7f6a5d111ae6ffffffffffffffffffffffffffffffff (32)
2019.06.24 20:48:10 4: dobby: write {"id":149,"method":"miIO.wifi_assoc_state","params":[""]} (57)
2019.06.24 20:48:10 5: dobby: send 213100600000000004ec7f6a5d111aeac7d1e43bd57047ba27b25002e6bcd44e707c19af7f8f848100aa065bb2e0fdc5e0c9a268c2c62c3a9f80af59ccbe83d7d452d5cc67c3b779de21eb58df0433d45f162c7f1ed3ce558fa4b86072ac3d13
2019.06.24 20:48:10 5: dobby Send SUCCESS
2019.06.24 20:48:10 5: dobby > 213100600000000004ec7f6a5d111aeac7d1e43bd57047ba27b25002e6bcd44e707c19af7f8f848100aa065bb2e0fdc5e0c9a268c2c62c3a9f80af59ccbe83d7d452d5cc67c3b779de21eb58df0433d45f162c7f1ed3ce558fa4b86072ac3d13
2019.06.24 20:48:10 4: dobby: write {"id":150,"method":"miIO.info","params":[""]} (45)
2019.06.24 20:48:10 5: dobby: send 213100500000000004ec7f6a5d111aea4fca2e959301be445f09b020b35de48d9f8f49013b11eed599cf4b9a1d102873c1bae8322dfb57c6582dca9eb212859cb0bf33613557dc7780cca4ba49165614
2019.06.24 20:48:10 5: dobby Send SUCCESS
2019.06.24 20:48:10 5: dobby > 213100500000000004ec7f6a5d111aea4fca2e959301be445f09b020b35de48d9f8f49013b11eed599cf4b9a1d102873c1bae8322dfb57c6582dca9eb212859cb0bf33613557dc7780cca4ba49165614
2019.06.24 20:48:10 4: dobby: write {"id":151,"method":"get_serial_number","params":[""]} (53)
2019.06.24 20:48:10 5: dobby: send 213100600000000004ec7f6a5d111aea3edf9cb43bb9cb9a963df575f312aee0c720ba87ad298dd66c41af7eae82de89d3b180eb86bc2c6fe17bb275b4fe6e68d54996c85547a41cdf952195805b0eccbd3e4f8c2dbf961b43ae44739d976699
2019.06.24 20:48:10 5: dobby Send SUCCESS
2019.06.24 20:48:10 5: dobby > 213100600000000004ec7f6a5d111aea3edf9cb43bb9cb9a963df575f312aee0c720ba87ad298dd66c41af7eae82de89d3b180eb86bc2c6fe17bb275b4fe6e68d54996c85547a41cdf952195805b0eccbd3e4f8c2dbf961b43ae44739d976699
2019.06.24 20:48:10 4: dobby: write {"id":152,"method":"get_timezone","params":[""]} (48)
2019.06.24 20:48:10 5: dobby: send 213100600000000004ec7f6a5d111aeaa3f6d8279b78cbdf37173f98b04c2bd35cac88e43855968295da262f7fd2d98afc086adfd9a73f38965a5fc7fc522f04aebeb4d2265ff1dbde7dab291a48f301f36c78cc39e4ad5173e792f4fee2b4b2
2019.06.24 20:48:10 5: dobby Send SUCCESS
2019.06.24 20:48:10 5: dobby > 213100600000000004ec7f6a5d111aeaa3f6d8279b78cbdf37173f98b04c2bd35cac88e43855968295da262f7fd2d98afc086adfd9a73f38965a5fc7fc522f04aebeb4d2265ff1dbde7dab291a48f301f36c78cc39e4ad5173e792f4fee2b4b2
2019.06.24 20:48:13 4: dobby: write {"id":153,"method":"get_consumable","params":[""]} (50)
2019.06.24 20:48:13 5: dobby: send 213100600000000004ec7f6a5d111aed85f5d3789965cb0a88aa1cb56d0f230da0bcfa89df853b62de262d59c39057c217b5ce8b2fa4819ece6f9e336e4b4c9b3d49e7f5171f8ee971e7a73661fc5c70be6036e1bc132462ea85f6e1810e274f
2019.06.24 20:48:13 5: dobby Send SUCCESS
2019.06.24 20:48:13 5: dobby > 213100600000000004ec7f6a5d111aed85f5d3789965cb0a88aa1cb56d0f230da0bcfa89df853b62de262d59c39057c217b5ce8b2fa4819ece6f9e336e4b4c9b3d49e7f5171f8ee971e7a73661fc5c70be6036e1bc132462ea85f6e1810e274f
2019.06.24 20:48:13 4: dobby: write {"id":154,"method":"get_clean_summary","params":[""]} (53)
2019.06.24 20:48:13 5: dobby: send 213100600000000004ec7f6a5d111aed05a9cdfd5082928fbf223c7d8b191684313cc5fbbca754abbe3a0e84061184a95848687dab4c73efec4c047fac8019417c59081a7767a74d320a517bb32bd2a300bd09cd0f10197f39aa94c0855df01e
2019.06.24 20:48:13 5: dobby Send SUCCESS
2019.06.24 20:48:13 5: dobby > 213100600000000004ec7f6a5d111aed05a9cdfd5082928fbf223c7d8b191684313cc5fbbca754abbe3a0e84061184a95848687dab4c73efec4c047fac8019417c59081a7767a74d320a517bb32bd2a300bd09cd0f10197f39aa94c0855df01e
2019.06.24 20:48:13 4: dobby: write {"id":155,"method":"get_dnd_timer","params":[""]} (49)
2019.06.24 20:48:13 5: dobby: send 213100600000000004ec7f6a5d111aed052030d2667f6f4ac48dbdf364c9b630ad1b8a6fd7fb2b25c5493cfb93fc0bbae84c40af05ce6d068b0e433537f66037edc7d761b02826f1d51f2b73a4cd73faa6de8ba59e5962ad7de2bbd4462e38f5
2019.06.24 20:48:13 5: dobby Send SUCCESS
2019.06.24 20:48:13 5: dobby > 213100600000000004ec7f6a5d111aed052030d2667f6f4ac48dbdf364c9b630ad1b8a6fd7fb2b25c5493cfb93fc0bbae84c40af05ce6d068b0e433537f66037edc7d761b02826f1d51f2b73a4cd73faa6de8ba59e5962ad7de2bbd4462e38f5
2019.06.24 20:48:13 4: dobby: write {"id":156,"method":"get_timer","params":[""]} (45)
2019.06.24 20:48:13 5: dobby: send 213100500000000004ec7f6a5d111aedd1d8237246967ecd1dbfa4da618a588443ea9817058428c31eeb9cc236a77d5584e345704a09cb9a96c48e407b1af540c5303e85aa992f3b4a1aab23f6c0c6de
2019.06.24 20:48:13 5: dobby Send SUCCESS
2019.06.24 20:48:13 5: dobby > 213100500000000004ec7f6a5d111aedd1d8237246967ecd1dbfa4da618a588443ea9817058428c31eeb9cc236a77d5584e345704a09cb9a96c48e407b1af540c5303e85aa992f3b4a1aab23f6c0c6de
2019.06.24 20:48:13 4: dobby: write {"id":157,"method":"get_sound_volume","params":[""]} (52)
2019.06.24 20:48:13 5: dobby: send 213100600000000004ec7f6a5d111aedc942ed2cacdd89654fe4c602b580769d26093321a453d56b58333d452c0b9466c15f24a2d409469abde3b61caaef56e819463056b38a60b7925bec8a57c1d7c099476be3076e1776ffa7337be30ec5c3
2019.06.24 20:48:13 5: dobby Send SUCCESS
2019.06.24 20:48:13 5: dobby > 213100600000000004ec7f6a5d111aedc942ed2cacdd89654fe4c602b580769d26093321a453d56b58333d452c0b9466c15f24a2d409469abde3b61caaef56e819463056b38a60b7925bec8a57c1d7c099476be3076e1776ffa7337be30ec5c3
2019.06.24 20:48:13 4: dobby: write {"id":158,"method":"get_carpet_mode","params":[""]} (51)
2019.06.24 20:48:13 5: dobby: send 213100600000000004ec7f6a5d111aed32459ae305cb325108565e685f79bf3fa7a0f2b6f90244476dbc9442344ff1abc973b92f526a52f157acdeefbe9ac8ff1b4dc547075cf552c136653676a3621c1167ddf87e38bf6ce0fd9f65f57bf41a
2019.06.24 20:48:13 5: dobby Send SUCCESS
2019.06.24 20:48:13 5: dobby > 213100600000000004ec7f6a5d111aed32459ae305cb325108565e685f79bf3fa7a0f2b6f90244476dbc9442344ff1abc973b92f526a52f157acdeefbe9ac8ff1b4dc547075cf552c136653676a3621c1167ddf87e38bf6ce0fd9f65f57bf41a
2019.06.24 20:48:13 4: dobby: write {"id":159,"method":"get_fw_features","params":[""]} (51)
2019.06.24 20:48:13 5: dobby: send 213100600000000004ec7f6a5d111aed2d5e7d8267f18081080101ff59ae77e121fa84ea38cb65adf80c2a67af2da86b75a484302733333766119dae38b619dee9206201466705d28cddabd756f36a0bd120df01764ca0e6cb7afa76edfa6c39
2019.06.24 20:48:13 5: dobby Send SUCCESS
2019.06.24 20:48:13 5: dobby > 213100600000000004ec7f6a5d111aed2d5e7d8267f18081080101ff59ae77e121fa84ea38cb65adf80c2a67af2da86b75a484302733333766119dae38b619dee9206201466705d28cddabd756f36a0bd120df01764ca0e6cb7afa76edfa6c39
2019.06.24 20:48:13 4: dobby: write {"id":160,"method":"app_get_locale","params":[""]} (50)
2019.06.24 20:48:13 5: dobby: send 213100600000000004ec7f6a5d111aed99fbd4a68e8b013d75fd30181f40b8035bedcf1922cae455fc729a5865841a6f40fc85c6df6b8bfbe7fdf80aeff8f22b1e0aadf8655764371fd34d753c11b478008997fb64b5a810b73eee554c3f4dde
2019.06.24 20:48:13 5: dobby Send SUCCESS
2019.06.24 20:48:13 5: dobby > 213100600000000004ec7f6a5d111aed99fbd4a68e8b013d75fd30181f40b8035bedcf1922cae455fc729a5865841a6f40fc85c6df6b8bfbe7fdf80aeff8f22b1e0aadf8655764371fd34d753c11b478008997fb64b5a810b73eee554c3f4dde
2019.06.24 20:48:16 4: dobby: write {"id":161,"method":"get_prop","params":["get_status"]} (54)
2019.06.24 20:48:16 5: dobby: send 213100600000000004ec7f6a5d111af0889889ca792a90c02616b3baf7a7783d3f0640b06a1341568450c179b10f883c3d66e59ec72b8d8dcf9c3099569a62ea16a626b7823c00fc0b62988637d4aacecf4abbfb5c46a10ce65805c105ac84f8
2019.06.24 20:48:16 5: dobby Send SUCCESS
2019.06.24 20:48:16 5: dobby > 213100600000000004ec7f6a5d111af0889889ca792a90c02616b3baf7a7783d3f0640b06a1341568450c179b10f883c3d66e59ec72b8d8dcf9c3099569a62ea16a626b7823c00fc0b62988637d4aacecf4abbfb5c46a10ce65805c105ac84f8
2019.06.24 20:48:49 3: dobby: disconnecting
2019.06.24 20:48:49 2: dobby: connecting
2019.06.24 20:48:49 3: dobby: initialized
2019.06.24 20:48:49 5: dobby: initSend
2019.06.24 20:48:49 5: dobby Send SUCCESS
2019.06.24 20:48:49 5: dobby > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2019.06.24 20:48:50 5: dobby < 213100200000000004ec7f6a5d111b12ffffffffffffffffffffffffffffffff (32)
2019.06.24 20:48:53 4: dobby: write {"id":162,"method":"miIO.wifi_assoc_state","params":[""]} (57)
2019.06.24 20:48:53 5: dobby: send 213100600000000004ec7f6a5d111b153c9577f36c2563ab642143ee7d0e9b545be8d03eebf4b81bec2b848e58ea23619bb2a51981fe30ccecaaa0bd54541334b753b908707901689436d2c99557c2a1739809669233ae886b2d895730019f31
2019.06.24 20:48:53 5: dobby Send SUCCESS
2019.06.24 20:48:53 5: dobby > 213100600000000004ec7f6a5d111b153c9577f36c2563ab642143ee7d0e9b545be8d03eebf4b81bec2b848e58ea23619bb2a51981fe30ccecaaa0bd54541334b753b908707901689436d2c99557c2a1739809669233ae886b2d895730019f31
2019.06.24 20:48:53 4: dobby: write {"id":163,"method":"miIO.info","params":[""]} (45)
2019.06.24 20:48:53 5: dobby: send 213100500000000004ec7f6a5d111b15077ae0e8b76f23454bf4a1372ca15a266a51f1c6b402f027a6750bce6a250748324c454fe1dd1207bf446e23ceda30e23a9d357df541618b6549507d80176335
2019.06.24 20:48:53 5: dobby Send SUCCESS
2019.06.24 20:48:53 5: dobby > 213100500000000004ec7f6a5d111b15077ae0e8b76f23454bf4a1372ca15a266a51f1c6b402f027a6750bce6a250748324c454fe1dd1207bf446e23ceda30e23a9d357df541618b6549507d80176335
2019.06.24 20:48:53 4: dobby: write {"id":164,"method":"get_serial_number","params":[""]} (53)
2019.06.24 20:48:53 5: dobby: send 213100600000000004ec7f6a5d111b1520b5cf9b08814097d853517188b3418c7573e96b4d83bb88d36ff54c3b55ef9b84cd7ce1688cffeed3e289e91569c93325aad58d12ea1db63e62c349369aa00f2a8260eec34a3e739a1ceb229aceaae3
2019.06.24 20:48:53 5: dobby Send SUCCESS
2019.06.24 20:48:53 5: dobby > 213100600000000004ec7f6a5d111b1520b5cf9b08814097d853517188b3418c7573e96b4d83bb88d36ff54c3b55ef9b84cd7ce1688cffeed3e289e91569c93325aad58d12ea1db63e62c349369aa00f2a8260eec34a3e739a1ceb229aceaae3
2019.06.24 20:48:53 4: dobby: write {"id":165,"method":"get_timezone","params":[""]} (48)
2019.06.24 20:48:53 5: dobby: send 213100600000000004ec7f6a5d111b1598eca422ba653da766b5807e03d3cd5bebcb2be40b1661eb2ae9c47d24a5db826324108d259dc0f5be15b63203c4a0a34ba5e1bf2c6f12c46ddf8337421bb58cb0dde8fa81cfc76d826d83ed3f08a0c0
2019.06.24 20:48:53 5: dobby Send SUCCESS
2019.06.24 20:48:53 5: dobby > 213100600000000004ec7f6a5d111b1598eca422ba653da766b5807e03d3cd5bebcb2be40b1661eb2ae9c47d24a5db826324108d259dc0f5be15b63203c4a0a34ba5e1bf2c6f12c46ddf8337421bb58cb0dde8fa81cfc76d826d83ed3f08a0c0
2019.06.24 20:48:56 4: dobby: write {"id":166,"method":"get_consumable","params":[""]} (50)
2019.06.24 20:48:56 5: dobby: send 213100600000000004ec7f6a5d111b1876003e632467368093989caee1630f3554b9db605afc0866afe1eca7b9b73b356a8ec1c42535a693513ee66e9626545107f2f0fe09a0f6994dcec83f4b8f7777ab6b631d5a53c29c845e5d0049289b3c
2019.06.24 20:48:56 5: dobby Send SUCCESS
2019.06.24 20:48:56 5: dobby > 213100600000000004ec7f6a5d111b1876003e632467368093989caee1630f3554b9db605afc0866afe1eca7b9b73b356a8ec1c42535a693513ee66e9626545107f2f0fe09a0f6994dcec83f4b8f7777ab6b631d5a53c29c845e5d0049289b3c
2019.06.24 20:48:56 4: dobby: write {"id":167,"method":"get_clean_summary","params":[""]} (53)
2019.06.24 20:48:56 5: dobby: send 213100600000000004ec7f6a5d111b185c010532e8f5bf2e6c685b0d720392f1c1a55b6167e72ed98826cba556a8ca085824e98779cfedb0ac261bbc4cc4d5e74bbe3750cd967e906959ac286ead98e000468ff3e186b3ae32949fc007159a87
2019.06.24 20:48:56 5: dobby Send SUCCESS
2019.06.24 20:48:56 5: dobby > 213100600000000004ec7f6a5d111b185c010532e8f5bf2e6c685b0d720392f1c1a55b6167e72ed98826cba556a8ca085824e98779cfedb0ac261bbc4cc4d5e74bbe3750cd967e906959ac286ead98e000468ff3e186b3ae32949fc007159a87
2019.06.24 20:48:56 4: dobby: write {"id":168,"method":"get_dnd_timer","params":[""]} (49)
2019.06.24 20:48:56 5: dobby: send 213100600000000004ec7f6a5d111b183b2432356ceff2592bba431bb62e02da0ba8bcd526c44be1ec7e1a45ac50cac532efede318d521c7a05a61f11620d6f57fb25a6dc2ebff689506afe0f305841bed9b49e0e3b66ce7244ff0f530302eb7
2019.06.24 20:48:56 5: dobby Send SUCCESS
2019.06.24 20:48:56 5: dobby > 213100600000000004ec7f6a5d111b183b2432356ceff2592bba431bb62e02da0ba8bcd526c44be1ec7e1a45ac50cac532efede318d521c7a05a61f11620d6f57fb25a6dc2ebff689506afe0f305841bed9b49e0e3b66ce7244ff0f530302eb7
2019.06.24 20:48:56 4: dobby: write {"id":169,"method":"get_timer","params":[""]} (45)
2019.06.24 20:48:56 5: dobby: send 213100500000000004ec7f6a5d111b184ee55b3ee2d350ba6b374d8a55b93dcdbc1acb9417c3b70970fd508cc369b151ecac6426e73f66a1400d505d253b0c6a6417944cf340800fb1ad242667fc71ff
2019.06.24 20:48:56 5: dobby Send SUCCESS
2019.06.24 20:48:56 5: dobby > 213100500000000004ec7f6a5d111b184ee55b3ee2d350ba6b374d8a55b93dcdbc1acb9417c3b70970fd508cc369b151ecac6426e73f66a1400d505d253b0c6a6417944cf340800fb1ad242667fc71ff
2019.06.24 20:48:56 4: dobby: write {"id":170,"method":"get_sound_volume","params":[""]} (52)
2019.06.24 20:48:56 5: dobby: send 213100600000000004ec7f6a5d111b18900ec52b177a65bc1cfb9e135e208d7c826ed33c2d20972313a03005aedfc7fd7afa6291d6374a659fa9bf5a95f7cfd68fab3b44c4c90b93bcf5d829ac56c72b9513763c3043606fa7b68bee97c8fb71
2019.06.24 20:48:56 5: dobby Send SUCCESS
2019.06.24 20:48:56 5: dobby > 213100600000000004ec7f6a5d111b18900ec52b177a65bc1cfb9e135e208d7c826ed33c2d20972313a03005aedfc7fd7afa6291d6374a659fa9bf5a95f7cfd68fab3b44c4c90b93bcf5d829ac56c72b9513763c3043606fa7b68bee97c8fb71
2019.06.24 20:48:56 4: dobby: write {"id":171,"method":"get_carpet_mode","params":[""]} (51)
2019.06.24 20:48:56 5: dobby: send 213100600000000004ec7f6a5d111b18bda05f8f8cddcafe8c179f2d858bd71465345db1c8281db7998cf89c54563e08b1422098b5df789a6b4f6117faf7d1d33e9e5ea34540fb0d425f1a83ecb27bd1d3b5334073025ef2480114d8d94abf76
2019.06.24 20:48:56 5: dobby Send SUCCESS
2019.06.24 20:48:56 5: dobby > 213100600000000004ec7f6a5d111b18bda05f8f8cddcafe8c179f2d858bd71465345db1c8281db7998cf89c54563e08b1422098b5df789a6b4f6117faf7d1d33e9e5ea34540fb0d425f1a83ecb27bd1d3b5334073025ef2480114d8d94abf76
2019.06.24 20:48:56 4: dobby: write {"id":172,"method":"get_fw_features","params":[""]} (51)
2019.06.24 20:48:56 5: dobby: send 213100600000000004ec7f6a5d111b1851e2ad25fe5cdf65b4b407e1aad373697399e8605253905ae420d80c661d1a857d7bd5ad8a26afe1caebfbce03dc4f6cb4a33b9bd1af0168e6fb31e6fc46e77aa4085f1a154dbe38ae38142774c7345e
2019.06.24 20:48:56 5: dobby Send SUCCESS
2019.06.24 20:48:56 5: dobby > 213100600000000004ec7f6a5d111b1851e2ad25fe5cdf65b4b407e1aad373697399e8605253905ae420d80c661d1a857d7bd5ad8a26afe1caebfbce03dc4f6cb4a33b9bd1af0168e6fb31e6fc46e77aa4085f1a154dbe38ae38142774c7345e
2019.06.24 20:48:56 4: dobby: write {"id":173,"method":"app_get_locale","params":[""]} (50)
2019.06.24 20:48:56 5: dobby: send 213100600000000004ec7f6a5d111b180e87b96a0ea584dd65856c3c44ee38c21f8c7f0171a03d5e60020581f4a207a7dec097741adc998978340e96d07e2c597d72973197a1c21bff09316f67de09a5f4e104b6504de76eade7d70a76fcb7de
2019.06.24 20:48:56 5: dobby Send SUCCESS
2019.06.24 20:48:56 5: dobby > 213100600000000004ec7f6a5d111b180e87b96a0ea584dd65856c3c44ee38c21f8c7f0171a03d5e60020581f4a207a7dec097741adc998978340e96d07e2c597d72973197a1c21bff09316f67de09a5f4e104b6504de76eade7d70a76fcb7de
2019.06.24 20:48:59 4: dobby: write {"id":174,"method":"get_prop","params":["get_status"]} (54)
2019.06.24 20:48:59 5: dobby: send 213100600000000004ec7f6a5d111b1b1fe2cc0d9314c5d1c588de22b0da5478797bdbde16616c2e27b8a86bc537c3c5fecff8cf5fc007df03e62c3dbc74a06873987032bfae14b3ba71d45aa76cc00e8498d5acfd9ce7ed3f13e734012e5fcb
2019.06.24 20:48:59 5: dobby Send SUCCESS
2019.06.24 20:48:59 5: dobby > 213100600000000004ec7f6a5d111b1b1fe2cc0d9314c5d1c588de22b0da5478797bdbde16616c2e27b8a86bc537c3c5fecff8cf5fc007df03e62c3dbc74a06873987032bfae14b3ba71d45aa76cc00e8498d5acfd9ce7ed3f13e734012e5fcb
2019.06.24 20:49:38 3: dobby: connection timeout
Und hier ein list des devices:
Internals:
CFGFN
CHANGED
DEF 192.168.178.165 4e6f425141766b6a5173316944465454
FD 55
FUUID 5d1112d0-f33f-5af7-db69-c0147e785967d0cd
NAME dobby
NR 556
STATE disconnected
TYPE XiaomiDevice
READINGS:
2019-06-24 20:53:27 state disconnected
helper:
ConnectionState disconnected
crypt AES
delay 180
dev 04ec
id 7f6a
ip 192.168.178.165
last_read 1561402358
packetid 188
port 54321
sequence 0
token 4e6f425141766b6a5173316944465454
packet:
1 wifi_stats
10 get_carpet_mode
100 get_status
101 wifi_stats
102 device_info
103 get_serial_number
104 get_timezone
105 get_consumable
106 get_clean_summary
107 get_dnd_timer
108 get_timer
109 get_sound_volume
11 get_fw_features
110 get_carpet_mode
111 get_fw_features
112 app_get_locale
113 get_status
114 get_status
115 get_status
116 get_status
117 wifi_stats
118 device_info
119 get_serial_number
12 app_get_locale
120 get_timezone
121 get_consumable
122 get_clean_summary
123 get_dnd_timer
124 get_timer
125 get_sound_volume
126 get_carpet_mode
127 get_fw_features
128 app_get_locale
129 get_status
13 get_status
130 get_status
131 get_status
132 get_status
133 wifi_stats
134 device_info
135 get_serial_number
136 get_timezone
137 get_consumable
138 get_clean_summary
139 get_dnd_timer
14 wifi_stats
140 get_timer
141 get_sound_volume
142 get_carpet_mode
143 get_fw_features
144 app_get_locale
145 get_status
146 get_status
147 get_status
148 get_status
149 wifi_stats
15 get_status
150 device_info
151 get_serial_number
152 get_timezone
153 get_consumable
154 get_clean_summary
155 get_dnd_timer
156 get_timer
157 get_sound_volume
158 get_carpet_mode
159 get_fw_features
16 get_status
160 app_get_locale
161 get_status
162 wifi_stats
163 device_info
164 get_serial_number
165 get_timezone
166 get_consumable
167 get_clean_summary
168 get_dnd_timer
169 get_timer
17 get_status
170 get_sound_volume
171 get_carpet_mode
172 get_fw_features
173 app_get_locale
174 get_status
175 wifi_stats
176 device_info
177 get_serial_number
178 get_timezone
179 get_consumable
18 get_status
180 get_clean_summary
181 get_dnd_timer
182 get_timer
183 get_sound_volume
184 get_carpet_mode
185 get_fw_features
186 app_get_locale
187 get_status
19 wifi_stats
2 device_info
20 device_info
21 get_serial_number
22 get_timezone
23 get_consumable
24 get_clean_summary
25 get_dnd_timer
26 get_timer
27 get_sound_volume
28 get_carpet_mode
29 get_fw_features
3 get_serial_number
30 app_get_locale
31 get_status
32 get_status
33 get_status
34 get_status
35 get_status
36 wifi_stats
37 device_info
38 get_serial_number
39 get_timezone
4 get_timezone
40 get_consumable
41 get_clean_summary
42 get_dnd_timer
43 get_timer
44 get_sound_volume
45 get_carpet_mode
46 get_fw_features
47 app_get_locale
48 get_status
49 get_status
5 get_consumable
50 get_status
51 wifi_stats
52 device_info
53 get_serial_number
54 get_timezone
55 get_consumable
56 get_clean_summary
57 get_dnd_timer
58 get_timer
59 get_sound_volume
6 get_clean_summary
60 get_carpet_mode
61 get_fw_features
62 app_get_locale
63 get_status
64 get_status
65 get_status
66 get_status
67 wifi_stats
68 device_info
69 get_serial_number
7 get_dnd_timer
70 get_timezone
71 get_consumable
72 get_clean_summary
73 get_dnd_timer
74 get_timer
75 get_sound_volume
76 get_carpet_mode
77 get_fw_features
78 app_get_locale
79 get_status
8 get_timer
80 get_status
81 get_status
82 get_status
83 wifi_stats
84 device_info
85 get_serial_number
86 get_timezone
87 get_consumable
88 get_clean_summary
89 get_dnd_timer
9 get_sound_volume
90 get_timer
91 get_sound_volume
92 get_carpet_mode
93 get_fw_features
94 app_get_locale
95 get_status
96 app_start
97 get_status
98 get_status
99 get_status
Attributes:
alias Heinz L. Mann
event-min-interval 600
event-on-change-reading .*
intervalData 300
intervalSettings 300
room Erdgeschoss->Flur
stateFormat state
subType VacuumCleaner
verbose 5
Hat jemand eine Idee, woran es liegen könnte?
Vielen Dank schonmal für jeden Tipp!
ZitatDer Token ist nach dem WiFi Reset unverändert.
Da wärst Du aber der Erste.
Nach allem was ich weiß, ist das nicht so. Beim WiFi Reset wird der Token neu gewürfelt.
Mein Tipp:
Nimm Dir die halbe Stunde und mach dir ssh Zugriff. Meine Notiz dazu (https://heinz-otto.blogspot.com/2019/06/root-und-gut.html)
Gruß Otto
Zitat von: peterboeckmann am 24 Juni 2019, 20:57:30Der Token ist nach dem WiFi Reset unverändert.
Hat jemand eine Idee, woran es liegen könnte?
Am Token. Dass der unverändert geblieben ist glaube ich irgendwie nicht.
Installier mal die App komplett neu und lies ihn erneut aus.
Hallo Otto und Markus,
Danke für die schnellen Antworten!
Das scheint tatsächlich die Ursache zu sein. Ich hatte den Roboter in der Android-App neu verbunden, aber die iPad-App wusste davon noch nichts, als ich den Token ausgelesen habe.
Ich lese den Token morgen nochmal aus, nachdem sich die App jetzt den ,,neuen" Robotr aus der Cloud geholt hat.
Ich werde berichten...
Gute Nacht,
Peter
Edit: Ich hatte versprochen zu berichten.
Das neue Backup hat tatsächlich ein neues Token enthalten. Mein dobby ist jetzt wieder da! Vielen Dank nochmal für die schnelle Unterstützung!
Notfalls müsstest du deinen dobby erneut koppeln. Dann aber mit dem iPad und nicht mit dem Android phone, wenn du den Token aus dem iTunes Backup auslesen willst.
Ich schätze, dass der Token nur bei der Inbetriebnahme in die Datei geschrieben wird.
Habe kürzlich meinen Xiaomi Smart Fan in Betrieb genommen. Der Token meines Roborocks wurde vom Fan an der gleichen Stelle einfach überschrieben. Man sieht in der Datei also immer nur den Token des zu letzt in Betrieb gegangenen Gerätes.
Gruß Hoppel
Edit:
Ich stelle mal noch ne Behauptung auf:
Der Token entsteht beim WiFi Reset. Beim nächsten Koppeln wird dieser Token verwendet.
Also kann man doch den Token erst mit dem mirobo Tool "auslesen" und dann koppeln? (Wenn man das mit ssh nicht will.)
mirobo discover --handshake true
Steht das schon irgendwo? Hat das schon einer probiert?! Klappt also nicht :'(
Gruß Otto
Das mirobo Tool bekommt man so:
sudo apt-get update
sudo apt-get install ccrypt python3-pip dos2unix
sudo pip3 install python-miio
Hi Otto,
hab ich schon probiert.
Ging bei mir nicht...
Wenn er noch nicht an einem WLAN angenmeldet ist (also AP-Mode), dann bekommt man nur ffffffff zurück (oder irgendwas anderes "unbrauchbares") und wenn er mit einem WLAN (und damit App/Cloud) verbunden ist, ging der Befehl nicht mehr...
Aber wie geschrieben: habe es nur mal versucht, so vor 2 Jahren (als die Xiaomis halt so rauskamen bzw. in fhem integriert waren/wurden) mit einem V1...
...bevor ich sie gleich roote und gut is :)
Das ist (auch) für mich die einfachste Variante der Integration bzw. Token-Auslesen...
...aktuell "spiele" ich ein wenig mit Valetudo rum, also auch "Abkopplung" von der (China)Cloud...
Gruß, Joachim
Moin Joachim,
da muss ich widersprechen, das habe ich letztens erst mehrfach probiert. ;D
Wenn der Robo mit der App verheiratet ist, dann bekommt man mit dem mirobo Tool nur ffffff zurück. Dann gibt er den Token nicht mehr preis.
Nach dem WiFi Reset, also im AP Mode, da bekommt man den Token einfach so. ;)
Ich habe lediglich nicht probiert, ob sich der Token nochmal ändert, wenn man ihn dann mit der App verheiratet.
Gruß Otto
Das tut er.
Sonst bräuchten wir ja den restlichen Zirkus erst gar nicht.
ok - schade :-[
Dann streich ich den Gedanken mal wieder.
Aber ich unterstreiche nochmal, aus meiner Sicht ist ssh Zugang herstellen der geringere Zirkus um an den Token zu kommen.
Gruß Otto
Zitat von: Otto123 am 25 Juni 2019, 09:21:04
Moin Joachim,
da muss ich widersprechen, das habe ich letztens erst mehrfach probiert. ;D
Wenn der Robo mit der App verheiratet ist, dann bekommt man mit dem mirobo Tool nur ffffff zurück. Dann gibt er den Token nicht mehr preis.
Nach dem WiFi Reset, also im AP Mode, da bekommt man den Token einfach so. ;)
Ich habe lediglich nicht probiert, ob sich der Token nochmal ändert, wenn man ihn dann mit der App verheiratet.
Gruß Otto
Dann war's so rum...
...ist schon zu lange her ;)
Und da es ja offensichtlich (aus einem anderen als den von mir genannten Grund ;) ) nicht geht:
Zitat von: Markus M. am 25 Juni 2019, 09:36:34
Das tut er.
Sonst bräuchten wir ja den restlichen Zirkus erst gar nicht.
Habe ich es einfach nicht noch mal gemacht...
Zitat von: Otto123 am 25 Juni 2019, 09:39:33
Aber ich unterstreiche nochmal, aus meiner Sicht ist ssh Zugang herstellen der geringere Zirkus um an den Token zu kommen.
Sehe ich auch so :)
Gruß, Joachim
Zitat von: Otto123 am 25 Juni 2019, 09:39:33
Aber ich unterstreiche nochmal, aus meiner Sicht ist ssh Zugang herstellen der geringere Zirkus um an den Token zu kommen.
Ich habe meinen Xiaomi Fan nun mehrfach in Betrieb genommen, da ich ihn eigentlich in meinem IoT-VLAN betreiben möchte, was warum auch immer nicht klappt. In meinem normalen VLAN klappt das ohne Probleme. Wie dem auch sei. Wenn man die Tools installiert hat und es einmal verstanden hat, wie man den Token aus einem unverschlüsselten iOS-Backup ausliest, dauert das max. 5min pro Vorgang. Also auch nicht so schlimm... ;)
Gruß Hoppel
Zitat von: hoppel118 am 25 Juni 2019, 14:08:14
Also auch nicht so schlimm... ;)
Aber bis man weiß wie man den Token aus einem unverschlüsselten IOS Backup ausliest. :-[ Und in einem halben Jahr gibt es ein anderes IOS und ein anderes Tool und man hat vergessen wie es ging ...
Und bei mir gibt es gar kein IOS ::) ;D
Und wenn ich mir morgen überlege den RockRobo in ein anderes Wlan zu stecken, dann tue ich das einfach :)
ssh root@rockrobo
nano /mnt/data/miio/wifi.conf
reboot
Das kannst du sehen. Was macht man, wenn keine Lust auf gerootete Geräte hat? ;)
Wer bestätigt dir, dass das mit dem rooten morgen noch funktioniert? Das ist eine ähnliche Problematik... ;)
Gruß Hoppel
Das rooten geht einfacher als das ich installier ne alte App oder eine aus Russland oder oder oder...
Am einfachsten, wenn er frisch aus der Packung kommt...
Das ist bislang deutlich "stabiler" als alle anderen Möglichkeiten, die immer wieder anders waren, andere App, anderes Vorgehen etc.
Rooten geht/ging bislang immer gleich...
Solange man keine nicht-gerootete FW aufspielt (gerade mit Valetudo, da ganz ohne Cloud) ist und bleibt er gerootet...
Aber wie immer: jeder wie er will/kann...
Gruß, Joachim
Jaja, ist ja schon gut! rooten ist geil! :D
Zitat von: hoppel118 am 25 Juni 2019, 21:59:18
Jaja, ist ja schon gut! rooten ist geil! :D
Genau! ;)
Gruß, Joachim
Was verpasse ich ohne rooten?
"Nur" rooten:
ssh-Zugang...
Leichtes Auslesen des Token...
"Rumstöbern" auf dem Sauger was da so drauf ist etc. :)
(es ist ja ein Ubuntu Linux drauf)
Karte auslesen...
Karte abspeichern...
...und zurückspielen... https://forum.fhem.de/index.php/topic,101197.msg946535.html#msg946535
Rooten mit "Cloud on Device" (z.B. Valetudo) einen Sauger ganz ohne externe Cloud... :)
Gruß, Joachim
Mmmh davon brauche ich gar nichts.
Nutze gern die Originale App da sie ja alle Geräte vereint, und auch Cloud fähig ist.
Und den Token lese ich aus dem iOS Backup aus, geht relativ flot.
Mit "nur" rooten geht App und Cloud weiterhin...
Mit "Cloud on Device" nat. nicht mehr...
Wenn es mit iOS so einfach geht (und sich das nicht ändert ;) ), dann ist's vermutlich unnötig...
Ich bin halt nicht so der "Cloud-Typ", wenn es gute/brauchbare Alternativen/Möglichkeiten gibt... ;)
Gruß, Joachim
Hallo,
ich habe mir unter http://192.168.178.135/zone/ einen Bereich markiert. Diese zone möchte ich nun gerne über FHEM ansteuern.
Dazu sagt mir Valetudo:
Zone coordinates (x1, y1, x2, y2):
Zone 1: [15995, 21478, 20220, 23686]
Also gebe ich in FHEM set Staubsauger zone 15995,21478,20220,23686,1 ein. Leider fährt dann der Roboter komplett in eine andere Richtung. Wenn ich die Zone aus Valetudo starte, fährt der Roboter direkt in den markierten Bereich.
Kann mir jemand sagen, wie ich das Koordinatensystem in FHEM rausbekomme, bzw.. wie das Modul die Daten benötigt?
Vielen Dank!
Definiere mit dem Attribut zone_names die Zone:
attr Staubsauger zone_names bedroom:[15995,21478,20220,23686,1]
und rufe dann die Zonenreinigung mit
set Staubsauger zone bedroom
auf. Dann sollte es klappen.
Valetudo-Koordinaten und fhem-Koordinaten sind UNTERSCHIEDLICH!
Siehe: https://forum.fhem.de/index.php/topic,101197.msg950415.html#msg950415
Etwas weiter in dem Thread sind Scripte/Code-Schnipsel zur Umrechnung...
Gruß, Joachim
Super danke! Hat geklappt :)
Gibt es eine Auflistung für alle Error Codes? Würde gerne mir eine Pushnachricht schicken über die Fehler wenn einer auftritt.
Danke :)
Moinsen,
Kann man diese Firmware eigentlich ohne Risiken auf einem Roborock S50 installieren?
Hat die 3.3.9_001768 schon irgendwer in Betrieb?
Die Xiaomi App nervt schon seit Ewigkeiten, dass das Update ansteht. Die behobenen Bugs lesen sich ganz gut. ;)
Viele Grüße
Hoppel
Hier nochmal der Screenshot mit dem Changelog zur neuen Firmware.
Wer hat die in Betrieb?
Gruß Hoppel
PSA: wenn euer Sauger neuer als Februar 2019 und ein CN Modell ist, KEIN Update ziehen und an besten rooten.
Ansonsten kann es sein dass ihr nachträglich einen Region Lock verpasst bekommt.
Ok, davon dürfte meiner dann nicht betroffen sein. Ich habe meinen im Dezember 2018 kurz vor Weihnachten bekommen.
Was bedeutet ,,Region Lock"? Kann ich ihn dann bspw. nur noch in der Region ,,Germany" betreiben?
Falls das damit gemeint ist, würde mich das nicht stören, da ich ihn sowieso in der Region Germany betreibe.
Ich würde gern das Firmware Update machen. Hat hier keiner die Version 3.3.9_001768 auf einem Roborock S50 in Betrieb?
Viele Grüße Hoppel
Zitat von: hoppel118 am 30 Juni 2019, 22:35:24
Hat hier keiner die Version 3.3.9_001768 auf einem Roborock S50 in Betrieb?
Hallo Hoppel,
Du kannst jeden Tag die gleiche Frage stellen, oder es einfach selbst testen. Mit ssh Zugang könntest Du auch jederzeit auf einen alten Firmwarestand zurück :) und andere Eventualitäten klären.
Gruß Otto
Ok, danke dir für die Rückmeldung. Gibt es irgendwo ein gutes Howto, wie ich SSH bekomme und dann die derzeitige Firmware vom Roborock S50 herunterlade?
Der SSH-Zugang wird also auch durch das Firmware Update nicht angefasst und bleibt bestehen?
Anschließend würde ich dann das Firmware Update durchführen. Danke für diesen Denkanstoß. :)
ssh bleibt nur, wenn du wieder eine FW mit ssh aufspielst...
...also KEIN Update per App oder so!
Einfache Anleitung, was ist einfach!?
Es gibt ganz gute Anleitungen wo beschrieben ist, wie es mit einem PI geht...
Drum hab ich einen PI extra dafür vorbereitet...
Das ist mein Roboter-root-PI... ;)
Otto hat (hier im Thread!?) einen Link zu seinen "Notizen" gepostet...
...und ich meine hier: https://forum.fhem.de/index.php/topic,86535.msg789573.html#msg789573
Gruß, Joachim
Danke für den Link Joachim. Damit muss ich mich bei Gelegenheit wohl dann mal auseinander setzen. Anscheinend ist rooten geil... ;)
Ein Frage noch, eine eigene Firmware, Dustcloud, whatever brauche ich eigentlich nicht. Das einzige, was ich brauche ist ein SSH-Zugang. Ist es irgendwie möglich die originale Firmware um den SSH-Zugang zu modifizieren?
Ich habe hier ein eigenes IoT-VLAN. Der Robosauger sieht erstmal nichts, was er nicht sehen darf. Ich möchte bei der herkömmlichen Firmware bleiben, aber so ein SSH-Zugang für alle Fälle kann nicht schaden.
Danke und Gruß Hoppel
Zitat von: hoppel118 am 01 Juli 2019, 22:39:37
Ist es irgendwie möglich die originale Firmware um den SSH-Zugang zu modifizieren?
genau das und nur das passiert beim "rooten"!
So habe ich das gemacht (https://heinz-otto.blogspot.com/2019/06/root-und-gut.html), ist aber der "Alte" V1
Und "rooten" ist genausowenig geil wie ständig Firmware Updates machen. :o aber manchmal ist es eine Lösung.
Zusätzliche Anmerkung:
Wie Otto geschrieben hat, "nur" FW "bauen" (wobei eine Original-FW "decodiert", "verändert" [ssh dazu] und dann wieder entsprechend signiert wird), also das Skript mit (fast) keinen Parametern aufrufen, genau "nur" ssh hinzufügt...
Alles andere bleibt, inkl. Cloud...
Man kann aber auch mehr machen, bis hin zu "Cloud-on-Device" (Valetudo), dann ist man auch unabhängig von der Cloud...
Da werden dann DNS "verbogen" und auf dem Sauger läift eine rudimentäre Cloud, damit die Sauger-SW "zufrieden" ist... ;)
Aber auch hier: es wird eine Original-FW entsprechend "erweitert", also nie eine gesamte FW "gebaut"...
Siehe auch hier: https://forum.fhem.de/index.php/topic,101197.msg946535.html#msg946535
Es liegt also daran was beim FW-Script angegeben wird... Man kann auch mqtt aktivieren etc.
Zugriff auf den Sauger gibt es nat. (erst mal) nur von dem "Rechner" (und mit dem User) wo die FW gebaut wurde bzw. werden die beim "FW-Bau" angegebenen ssh-Schlüssel verwendet...
Wenn man (wie ich) einen PI für's Rooten hat, kann man je nachdem einfach verschiedene Versionen bauen und auch laden... :)
Es geht nat. auch eine entsprechende SD Karte zu erzeugen und bei Bedarf zu nutzen... ;)
Gruß, Joachim
Ok, danke euch beiden. Dann schaue ich mir das inkl. Otto's Notizen bei Gelegenheit mal genauer an.
Raspi oder ähnliches habe ich hier nicht im Einsatz. Mit meinem Debian Stretch Server sollte das ja aber genauso gehen.
Viele Grüße Hoppel
Für Valetudo ist dies zu beachten:
ZitatWe recommend using the following firmware for the ongoing process (the current firmware on your device doesn't matter)
Xiaomi Vacuum Gen1: FW v11_003468
Roborock Vacuum Gen2 S50/S51/S55: FW v11_001782
Quelle: https://github.com/Hypfer/Valetudo/wiki/Installation-Instructions
Greetings BM030
Hallo,
ich möchte an dieser Stelle noch einmal kurz zu der Thematik bzgl. der sich drehenden Karte Stellung nehmen, für den Fall, dass man den S50/Roborock2 auf mehreren Stockwerken einsetzen möchte.
Ich habe den Saugroboter nun mehrmals in mehreren Stockwerken eingesetzt, ohne dass er die Karte des "Hauptstockwerks" (bei mir das EG) vergessen, oder diese gedreht hat.
Rahmenbedingungen:
1. Das Dock steht immer festgeklebt an der selben Stelle im EG
2. Sämtliche Reinigungsvorgänge im EG werden via Zonenreinigungen initiiert (Küche, Esszimmer, alles,..)
Vorgehensweise Reinigung eines anderen Stockwerks:
1. Den Saugroboter aufgeladen aus dem Dock nehmen
2. Den Saugroboter mit Wasser befüllen
3. Den Saugroboter im zu reinigenden Stockwerk auf den Boden stellen
4. Den großen Knopf am Saugroboter drücken
5. Warten, bis er alle Bereiche des entspr. Stockwerks gereinigt hat und im Anschluss verzweifelt versucht hat, seine Ladestation zu finden
Die Schritte 2 bis 5 ggfs. für ein weiteres Stcokwerk wiederholen.
6. Nach Abschluss sämtlicher Reinigungen in den zu reinigenden Stockwerken (in meinem Fall außer dem EG) den Saugroboter vor die Ladestation stellen und die rechte kleine Taste am Saugroboter drücken
Der Saugroboter sollte nun in die Ladestation fahren und bei der nächsten Zonenreinigung auch wieder mit der richtigen und ungedrehten Karte loslegen.
Bei mir macht er das jedenfalls (zumindest bis jetzt).
Gruß Chris
Hallo, hat jemand bereits Statusberichte per Push integriert?
Also bei starte, pause, wieder fortsetzen, stop etc. eine Benachrichtigung. Sowie bei einem Error mit Fehlerbericht?
Würde mich sehr freuen, wenn jemand dies bereitstellen könnte :)
Hallo zusammen,
ich habe schon ewig gesucht.
Ich habe einen Roborock S6 und versuche die Zonen Koordinaten wie im Wiki Artikel beschrieben über die Flolevac App zu bekommen.
Leider ist die Karte die mir dort angezeigt wird korrupt, wird wohl nicht richtig gerendert etc.
Hat jemand das gleiche Problem und evtl. eine Lösung dazu?
Viele Grüße
Hallo,
hab meinen Robbi nun auch in betrieb.
Da sind zwar noch ein / zwei Dinge, die ich nicht verstehe, aber dazu muss ich glaube ich mal das Manual zu der App lesen :-)
Ich versteh noch nicht so ganz wie ich dem sagen kann er soll jetzt das Bad oder die Küche reinigen....
Nachdem ich ihn nun das erste mal laufen lassen habe, hat er ja eine Karte von der gesamten Wohnung angelegt, also kann er ja irgendwie nicht wissen wo die Küche/Bad ist...
Die schwierigere Frages ist das angebotene Fw Update, was mir von der app vorgeschlagen wird.
Drauf ist wohl die 3.3.9_001748 und er will auf 3.3.9_001886 updaten.
Kann ich das machen oder nicht?
Matthias
Zitat von: mroschk am 17 Juli 2019, 12:33:48
Hallo,
hab meinen Robbi nun auch in betrieb.
Da sind zwar noch ein / zwei Dinge, die ich nicht verstehe, aber dazu muss ich glaube ich mal das Manual zu der App lesen :-)
Ich versteh noch nicht so ganz wie ich dem sagen kann er soll jetzt das Bad oder die Küche reinigen....
Nachdem ich ihn nun das erste mal laufen lassen habe, hat er ja eine Karte von der gesamten Wohnung angelegt, also kann er ja irgendwie nicht wissen wo die Küche/Bad ist...
Die schwierigere Frages ist das angebotene Fw Update, was mir von der app vorgeschlagen wird.
Drauf ist wohl die 3.3.9_001748 und er will auf 3.3.9_001886 updaten.
Kann ich das machen oder nicht?
Matthias
Hi Matthias,
gut, dass man sofort erkennt worüber du sprichst und was (genau) du wissen willst... ;)
(und ich hab 2-3 Seiten zurückgeblättert, um vielleicht was zu finden)
Welchen Sauger hast du?
V1, V2, S6, ...
Bei V1 geht (mit der App) kein: reinige Wohnzimmer, Bad, ...
Beim V2 (meines Wissens) auch nicht...
S6? Schon in fhem integriert? (Denke nicht)
Was geht (mit fhem z.B.) ist: Goto (den Punkt kannst du ja Küche, Wohnzimmer, ... nennen) und dann ZoneClean (und die kannst du ja auch bennenen)...
Oder du erstellt einen CommandAlias der gleich beides in einem Tut...
Oder einen (Dummy)Schalter mit Notify was auch gleich beides ausführt...
Oder auch gleich ZoneClean und entsprechend die Zone angeben (vorher halt in fhem definieren und davor eben Koordinaten rausbekommen)...
Oder... Oder... Oder...
Bzgl. FW: keine Ahnung, ich roote alle meine Sauger und nehme nur FW die dafür geeignet ist. Und nur, wenn ich ein "Fehlverhalten" bei meinem Saguer feststelle was laut Beschreibung durch einen FW-Update gefixed ist/sein könnte... Oder es ein neues Feature gibt (was ich unbedingt brauche)...
Gruß, Joachim
Hallo ich würde mich dem Thema gerne anschließen,
leider sehe ich wie in einem Post beschrieben über VoleFlac keine Karte aus der ich Zonenkoordinaten beziehen kann.
Gibt es eine andere Möglichkeit ohne den Saugi zu rooten an die Zonen bzw Raum Koordinaten zu gelangen?
Über jede Hilfe wäre ich Dankbar.
Achja der Sauger S6 ist schon in Fhem eingebunden (mit Token).
Vielen Dank
Zitat von: patator am 17 Juli 2019, 13:04:02
Hallo ich würde mich dem Thema gerne anschließen,
leider sehe ich wie in einem Post beschrieben über VoleFlac keine Karte aus der ich Zonenkoordinaten beziehen kann.
Gibt es eine andere Möglichkeit ohne den Saugi zu rooten an die Zonen bzw Raum Koordinaten zu gelangen?
Über jede Hilfe wäre ich Dankbar.
Achja der Sauger S6 ist schon in Fhem eingebunden (mit Token).
Vielen Dank
Wenn es mit Flole nicht geht, dann wird es (ohne rooten) schwer...
...irgendwo war mal was mit welche Koordinaten sind die "Home-Base" und wieviel man dann wie usw. um so und soviel cm zu kommen...
Aber das ist dann echt "hardcore"...
Da wird es wohl erst ein Update der Flole-App brauchen...
Gruß, Joachim
Hallo,
ja, da muss ich mich entschuldigen !
Ich habe einen Xiaomi Roborock S5 ( https://m.alternate.de/Xiaomi/Roborock-Saugroboter/html/product/1446585 (https://m.alternate.de/Xiaomi/Roborock-Saugroboter/html/product/1446585) )
Wie das mit den Räumen geht bekomme ich schon irgendwie raus, muss halt mal ein bisschen rumprobieren.
Wichtig war erst mal nur die Frage wegen der Firmware. In der App steht leider nicht was genau in der neuen FW anders/neu/gefixt/verbessert ist.
Ein "zurück" ist ja nach dem update etwas schwierig.
Hat die vielleicht schon jemand drauf ?
Ach so , noch was "komisches".
In FHEM ist er auch eingebunden und funktioniert auch, nur wenn ich in FHEM "get -> clean_summary" ( also wenn ich den Robbi aufrufe und dann auf den Button "get" clicke und rechts daneben "clean_summary" ) aufrufe, dann wird der button zwar so rot umrandet, aber das wars auch schon.
Es geht darum die clean ID heraus zu bekommen, damit ich die map in FHEM abrufen kann.
Matthias
Zitat von: mroschk am 17 Juli 2019, 13:21:02
Hallo,
ja, da muss ich mich entschuldigen !
Ich habe einen Xiaomi Roborock S5 ( https://m.alternate.de/Xiaomi/Roborock-Saugroboter/html/product/1446585 (https://m.alternate.de/Xiaomi/Roborock-Saugroboter/html/product/1446585) )
Kein Problem, dachte ich mir schon ;)
Aber ist halt besser als "raten" ;)
Zitat von: mroschk am 17 Juli 2019, 13:21:02
Wie das mit den Räumen geht bekomme ich schon irgendwie raus, muss halt mal ein bisschen rumprobieren.
Einfach in der Flole-App eine Zone markieren, die dem zu reinigenden Raum entspricht.
EDIT: wenn eine Zone nicht reicht für einen Raum, es können auch mehrere Koordinaten (bzw. mehrere "Einzelzonen") unter einem ZonenNamen kombiniert werden.
Lange auf den "Start-Knopf" (glaube ich wars) drücken dann hast du die Koordinaten in der "Zwischenablage"...
Dann das Attribut zoneNames und dort einen Namen mit den Koordinaten...
Dann kannst du: set Sauger zone ZonenName machen... :)
Zitat von: mroschk am 17 Juli 2019, 13:21:02
Wichtig war erst mal nur die Frage wegen der Firmware. In der App steht leider nicht was genau in der neuen FW anders/neu/gefixt/verbessert ist.
Ein "zurück" ist ja nach dem update etwas schwierig.
Hat die vielleicht schon jemand drauf ?
Tja das wird wenn es neue FW gibt immer wieder gerne gefragt...
...irgendwer muss sich aber halt dann mal trauen, sonst wird es immer ein "nein" geben ;)
Wenn du gerootet hast, dann kommst du auch wieder zurück...
...vorausgesetzt die neue gerootete FW ist auch "root-tauglich"...
Und wie geschrieben: wenn ich nichts lese was ich denke dass ich brauche und ich keine Probleme mit einem FW-Stand habe...
...warum wechseln?
Zitat von: mroschk am 17 Juli 2019, 13:21:02
Ach so , noch was "komisches".
In FHEM ist er auch eingebunden und funktioniert auch, nur wenn ich in FHEM "get -> clean_summary" ( also wenn ich den Robbi aufrufe und dann auf den Button "get" clicke und rechts daneben "clean_summary" ) aufrufe, dann wird der button zwar so rot umrandet, aber das wars auch schon.
Es geht darum die clean ID heraus zu bekommen, damit ich die map in FHEM abrufen kann.
Ich bin mir nicht sicher, ob Karte abrufen überhaupt schon implementiert ist...
...bzw.: wozu die Karte in fhem?
Wenn ich wissen will wo er lang läuft, dann öffne ich die (Flole)App...
...bzw.: Hausautomation heißt (für mich) Hausautomation wegen dem "Automation" :) ;)
Was geht ist mit Valetudo einen weblink in fhem anlegen der die Karte zeigt...
...bzw. auch andere Möglichkeiten bietet eine live-Map zu zeigen...
...Bedingt aber ein gerootetes Gerät mit Valetudo...
Z.B.: https://forum.fhem.de/index.php/topic,101197.msg946535.html#msg946535
Gruß, Joachim
Zitat
Ich bin mir nicht sicher, ob Karte abrufen überhaupt schon implementiert ist...
...bzw.: wozu die Karte in fhem?
Wenn ich wissen will wo er lang läuft, dann öffne ich die (Flole)App...
Sagen wir, du warst nicht zu Hause und hast (per Automation) deinen Sauger seinen Job tun lassen. Leider geht es dem Sauger wie den Menschen, er hat seinen Job abgebrochen oder ist irgendwo hängen geblieben.
Dann wäre es doch toll, wenn man eine Karte hätte, die man im FHEM ( Tablet UI ) anzeigen lassen könnte um zu sehen was passiert ist.
Vielleicht ist ja dann nur noch eine erneute Reinigung bestimmter Bereiche von nöten und nicht das ganze Programm...
Als kleines Beispiel...
Aber ich hab immer noch keine Idee wie ich an diese cleanID komme, die von Fhem verlangt wird, wenn ich auf get->map klicke??
FW 3.3.9_001886 läuft :-)
Maps funktionieren generell nicht, die sind via http nur in der Cloud und für uns nicht erreichbar.
Da die Xiaomi App sowieso ein wesentlich besseres UI hat als FHEM, kannst du auch darüber nachsehen was wo passiert ist. Dass was passiert ist, kann dir FHEM ja sagen.
Zitat von: mroschk am 19 Juli 2019, 11:44:42
FW 3.3.9_001886 läuft :-)
Danke für diesen Tip! Habe direkt mal auf diese Version geupdated. Sieht erstmal alles gut aus! :)
Moin,
ich habe die V1 FW 3.3.9_003468 und nutze Valetudo 0.4.0 wegen der besseren MAP und so. Das mit der Xiaomi App kann man ja vergessen, das ist ja so träge und langsam. Außerdem wollte ich den Cloud misst loswerden.
Ich habe mir jetzt unterschiedliche benamte Zonen angelegt. Kann man die jetzt irgendwie mit FHEM ansteuern? Oder geht das nur über die Eckkoordinaten?
/Daniel
Die App kann man aber nur mit einem gerootetem Gerät verwenden oder?
Mein du Valetudo? Das ist keine App, das läuft auf dem Sauger direkt. Das wird in die FW ein kompiliert und somit auch mit root Zugang wenn man es denn möchte. Kann ich nur empfehlen. Da braucht man keine App mehr, läuft alles über das Webinterface.
/Daniel
Ja meinte ich .... ach das war das, ist ein bisschen verwirrend was es da alles gibt.
Mal sehen, aber ich hab ein bisschen Angst den Robbi zu rooten, nicht das was kaput geht :-)
Die Zonen aus Valetudo kannst du nicht mit dem Modul aufrufen...
Du kannst die Koordinaten dort rauskopieren, "konvertieren" (steht irgendwo auf den letzten paar Seiten) und dann mittels Attribut zoneNames (oder so) im Modul anlegen und dann per fhem nutzen...
Oder per http-Request (musst halt rausfinden wie die lauten) die in Valetudo nutzen (z.B. HTTPMOD Modul oder direkt in Perl oder oder)...
Soweit mir bekannt hat er 2 Flash-Bänke, also sollte was sein, dann sollte/müsste er halt wieder von der ursprünglichen Bank (und mit ursprünglicher FW) booten...
Gruß, Joachim
Da passiert nichts, im Zweifel ein factory reset machen. Das passiert leider manchmal auch alleine... Zumindest mit der 0.3er Version. Mal schauen wie es mit der 0.4er jetzt ist.
Mhh früher sah man die Koordinaten auch, jetzt bei der 0.4er werden die nicht mehr angezeigt :-( Aber ich schau mal.
Wenn nicht muss ich mal schauen was die API so hergibt ja.
/Daniel
Zitat von: ext23 am 20 Juli 2019, 14:32:41
Mhh früher sah man die Koordinaten auch, jetzt bei der 0.4er werden die nicht mehr angezeigt :-( Aber ich schau mal.
Wenn nicht muss ich mal schauen was die API so hergibt ja.
Schau doch mal ob das hier https://github.com/marcelfischer/valetudo2fhem noch bei 0.4 geht. Stehe aktuell noch auf 0.3
mfg
Marcel
Cool danke, zumindest der API Aufruf "api/get_config" gibt die Koordinaten raus, das reicht mir ja sogar schon.
Ich werde es morgen mal ausprobieren!
/Daniel
Zitat von: ext23 am 20 Juli 2019, 22:27:09
Cool danke, zumindest der API Aufruf "api/get_config" gibt die Koordinaten raus, das reicht mir ja sogar schon.
Ich werde es morgen mal ausprobieren!
/Daniel
Wenn du dir "nur" die Koordinaten holst: die "Konvertierung" nicht vergessen...
...sonst fährt der Sauger etwas "komisch"... ;)
EDIT: siehe hier https://forum.fhem.de/index.php/topic,73052.msg953529.html#msg953529 und hier https://forum.fhem.de/index.php/topic,73052.msg953540.html#msg953540
Gruß, Joachim
Alles Bestens läuft! Danke!
Das Script ist doch aber Salonfähig, kann man das nicht einbauen in das FHEM Modul, so das man nur noch die Zone angeben muss? Ich fürchte gerade bei der Generation 1 wird die Karte öfter mal neu aufgebaut, so das sich die Koordinaten bestimmt öfter man ändern.
/Daniel
Es kommt bei V1 drauf an "wie man ihn behandelt"...
Ich hatte das nur zu Beginn mal...
...war aber "meine Schuld"...
Seit ich nur noch ZoneClean mache hatte ich das nicht mehr...
In einem der Links zu Valetudo/maps speichern ist auch eine mögliche Möglichkeit ;) genannt zum Speichern und Laden von Karten auch (evtl.) bei V1...
Gruß, Joachim
Das ist genau das Problem, ich glaube man sollte dann nur noch das Zone Cleanup nutzen und nie den Start Button drücken... Irgendwie ist im Zone Cleanup aber die Leistung etwas reduziert, der kommt bei mir über einige Türschwellen nicht mehr rüber.
Naja ich werd mal beobachten wie das so läuft auf Dauer.
/Daniel
Misst also die Gen 1 kann man echt vergessen. Jetzt wollte ich die Bürste reinigen, hab ihn dann vors dock gestellt und die Haus Taste gedrückt zum "einparken" und nu ist die Karte hin und somit sind die Zonen auch alle hinüber. Käse.
/Daniel
Große Wohnung?
Wenn bei mir so etwas aus Versehen passiert, lasse ich ihn mit clean loslaufen und beobachte, wie sich die Karte wieder aufbaut. Wenn die Karte sich wieder in der gleichen Orientierung aufbaut (etwas warten - manchmal dreht sie sich noch), kann die Fahrt abgebrochen werden. Es reicht dann, daß der Robbi diverse kleine Punkte auf der gesamte Fläche nach und nach "zonen-reinigt". Dabei baut sich die Karte wieder vollständig auf. Meine Reinigungsfelder sind dabei taktisch im ganzen Raum verteilt, z.B. in den Koordinaten [24450,24450,24500,24500,1] und danach zum nächsten weiter entfernt liegenden Punkt.
Ich stelle ihn dann "zwangsweise" in die Station...
...dann paast das...
Den "Fehler" hab ich auch schon mal gemacht...
Oder evtl. mal den in den letzten Seiten verlinkten Thread bzgl. Karte speichern ansehen...
Gruß, Joachim
Also ich habe da einige Probleme:
- OK Start ist zu vermeiden, das löscht die Karte.
- Home Button leider auch, aber wie bekomme ich den ins Dock nach dem reinigen? Manuell reinstelle ist schwer wenn er unterm Schrank ist.
- Dann hat die Karte jedes mal eine andere Orientierung, wie kann man das automatisch checken lassen durch FHEM?
- Bei uns steht (dank Kind) sehr viel rum, sprich Fest einprogrammierte Punkte abfahren mit FHEM um die Karte aufzubauen quittiert er mit Fehler 3...
Irgenwie habe ich da den Dreh noch nicht raus. Hat schonmal jemand versucht die Binaries vom S50 zu benutzen und auf den Gen. 1 zu spielen? So das man die Karte speichern kann. Oder die last.map mit einem schreibschutz zu versehen oder sowas?!?
/Daniel
Zitat von: RappaSan am 22 Juli 2019, 14:42:24
Große Wohnung?
Wenn bei mir so etwas aus Versehen passiert, lasse ich ihn mit clean loslaufen und beobachte, wie sich die Karte wieder aufbaut. Wenn die Karte sich wieder in der gleichen Orientierung aufbaut (etwas warten - manchmal dreht sie sich noch), kann die Fahrt abgebrochen werden. Es reicht dann, daß der Robbi diverse kleine Punkte auf der gesamte Fläche nach und nach "zonen-reinigt". Dabei baut sich die Karte wieder vollständig auf. Meine Reinigungsfelder sind dabei taktisch im ganzen Raum verteilt, z.B. in den Koordinaten [24450,24450,24500,24500,1] und danach zum nächsten weiter entfernt liegenden Punkt.
Rein ins Dock: set <Saugroboter> charge.
Kartenorientierung mußte schon selbst checken.
Wenn er beim Reinigungsstart die Karte in der richtigen Orientierung anfängt aufzubauen (Mi-App beobachten), kannst du ihn stoppen und die nächste Fläche in der Nähe anfahren und Zonen-reinigen lassen. Dabei baut sich die Karte weiter auf.
Binaries vom S50 passen gaaaanz bestimmt nicht auf den V1, dafür ist die hardware doch zu unterschiedlich.
Die Mi App habe ich nicht, meine ist nicht mehr in der Cloud, ich mach das mit Valetudo, aber egal map ist ja die gleiche. Das Problem ist, dass ich schon 5 mal den Start Button gedrückt habe und jedes mal die Karte anders orientiert ist. Das nach jedem manuellen dock wird ein Spass.
Woher nimmst du die Info, das die HW anders ist? Wir haben das mal verglichen, und CPU etc. alles komplett identisch. Die config Datei für die Sensoren, da kann man ja die alte nehmen.
/Daniel
Soweit mir bekannt hat der S50 eine andere Hauptplatine. Aber da sollten die Spezialisten hier lieber etwas dazu sagen.
Es sind teilweise auch andere Sensoren verbaut...
Aber: kauf doch einfach einen und probiere deine Hypothese... ;)
EDIT: wenn du eh schon Valetudo hast und damit die Möglichkeit MQTT nutzen/aktivieren zu können -> mal den Thread bzgl. Kartenspeicherung ansehen (https://forum.fhem.de/index.php/topic,101197.0.html), vielleicht hilft das...
Gruß, Joachim
Ja ich habe den Xiaomi, also die Gen.1 demzufolge, nicht den Rockrobo S5 oder so. Das wird alles bei meinem nicht gehen. Aber ich probiere es mal aus.
/Daniel
Mhh das Java script ist ja sehr einfach, aber wenn ich schon sehe:
function copyFiles(source, destination) {
const files = ['user_map0', 'last_map', 'PersistData_1.data', 'PersistData_2.data'];
...
diese user_map0 habe ich nicht beim Gen.1. Auf die Idee die zu kopieren bin ich auch schon bekommen aber irgendwie gibts die bei mir alle nicht. nur die last_map.
/Daniel
Zitat von: MadMax-FHEM am 22 Juli 2019, 16:06:45
Es sind teilweise auch andere Sensoren verbaut...
Wo steht das? Also das was wir alles geprüft haben, auch die Sensoren, ist alles identisch. Nur weil das Board ne andere Bauform hat ist das ja nicht gleich ein anderes Board. Hast du da ein Link zu wo das mal jemand beschrieben hat was da wirklich anders ist?
/Daniel
So also wie beschrieben scheint das wirklich zu klappen. Die last_map überschreiben mit einem backup und dann ein reboot machen (Was der Sauger ja eh jede Nacht macht) oder aber den player process killen und dann ist die alte Karte wieder da.
Ich werd also vor jedem Zone Cleanup die Datei zurückschreiben, den player killen und wenn der wieder da ist den zone cleanup starten. Da muss ich mir wohl mal ein bash script bauen.
/Daniel
Das mit den Sensoren hab ich irgendwo im Roboterforum oder sonstwo gelesen.
Zumindest der vordere Sensor ist anders bzw. hat der V2 dort 3 und der V1 nur 1...
Hab grad geschaut, hab ja beide...
Gruß, Joachim
Hallo Leute,
wenn ich meine Smart-Fans mal vom Strom nehme und nicht in Betrieb habe, weil Akku leer, sehe ich Unmengen folgender Meldungen in meinem Logfile:
2019.08.03 22:09:28 3: DG_SZ_Ventilator: disconnecting
2019.08.03 22:09:28 2: DG_SZ_Ventilator: connecting
2019.08.03 22:09:28 3: DG_SZ_Ventilator: initialized
2019.08.03 22:10:20 3: DG_SZ_Ventilator: connection timeout
2019.08.03 22:15:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 22:20:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 22:25:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 22:30:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 22:35:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 22:40:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 22:45:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 22:50:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 22:55:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 23:00:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 23:05:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 23:10:20 3: DG_SZ_Ventilator: connection timeout
2019.08.03 23:15:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 23:20:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 23:25:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 23:30:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 23:35:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 23:40:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 23:45:23 3: DG_SZ_Ventilator: connection timeout
2019.08.03 23:47:20 3: DG_SZ_Ventilator: disconnecting
2019.08.03 23:47:20 2: DG_SZ_Ventilator: connecting
2019.08.03 23:47:20 3: DG_SZ_Ventilator: initialized
2019.08.03 23:48:12 3: DG_SZ_Ventilator: connection timeout
2019.08.03 23:53:15 3: DG_SZ_Ventilator: connection timeout
2019.08.03 23:58:15 3: DG_SZ_Ventilator: connection timeout
Da wird also alle 5 Minuten ein "connection timeout" ins Logfile geschrieben. Bisher habe ich das Verbose Level an diesen Devices nicht angepasst. Wenn ich verbose auf 2 setzen würde, würde ich nur noch alle paar Stunden die "connecting" Meldungen sehen. Irgendwie ist mir das aber auch noch zu viel "Müll" im Logfile. Wenn ich die Lüfter nun im Winter einmodden würde, müsste ich das verbose Level wohl auf 0 setzen, um wirklich gar keine Meldungen mehr zu sehen.
Wie geht ihr damit um oder was empfehlt ihr mir?
Danke und Gruß Hoppel
verbose 2 wenn Disconnects vorauszusehen sind und im Winter einfach das disable Attribut setzen.
So mache ich das zumindest mit Ventilator und Luftbefeuchter.
Alles klar, weiß ich Bescheid. Habe direkt mal verbose 2 bei meinen beiden Ventilatoren gesetzt.
Danke und Gruß Hoppel
Hallo Markus,
hab bei mir den Xiaomi 1S im Einsatz:
es gibt einen neuen Status für 'state' im get_status (vacuum_states):
18: Targeted Clean
ausserdem kann "in_cleaning" auch > 1 sein.
Ich bekomme bei verbose=5 bei "get_state" folgende Info für einen targeted clean zurück:
$VAR1 = {
'id' => 628,
'result' => [
{
'battery' => 94,
'clean_area' => 15852500,
'clean_time' => 678,
'dnd_enabled' => 0,
'error_code' => 0,
'events' => [],
'fan_power' => 102,
'in_cleaning' => 3,
'in_fresh_state' => 0,
'in_returning' => 0,
'lab_status' => 1,
'map_present' => 1,
'map_status' => 3,
'msg_seq' => 191,
'msg_ver' => 1,
'state' => 18
}
]
};
Ich hab die Änderungen bei mir mal testweise gemacht, und es wird jetzt der richtige Status angezeigt.
Vllt kannst du das beizeiten noch einpflegen...
Danke! :)
Baue ich ein.
Der Rest passt?
Ja, lääääuft...
Hi,
hat jemand den S5 mit dem Modul in Betrieb?
Das dürften sehr viele sein (mich eingeschlossen). ;)
OK super, danke! Dann freue ich mich nun noch mehr auf die Lieferung :)
Jo, läuft astrein, mit aktuellster Firmware: 3.3.9_001886
Viele Grüße Hoppel
Hi,
ich habe ein Problem mit dem Xiaomi Mijia Fan 1X. Er wird als dmaker.fan.p5 erkannt. Die Firmware ist 2.0.4. RSSI wird auch noch ausgelesen.
Das war es dann auch, jeglicher Befehl wird mit einem error "useracktimeout" quittiert.
Im log erscheint dann:
Zitat
019.08.18 16:56:41.736 5: Ventilator: decrypted
{"id":5,"error":{"code":-9999,"message":"user ack timeout"}}
2019.08.18 16:56:41.736 5: Ventilator: parse id 5
$VAR1 = {
'error' => {
'code' => -9999,
'message' => 'useracktimeout'
},
'id' => 5
};
2019.08.18 16:56:41.736 4: Ventilator: parse id 5 / fan_data
2019.08.18 16:56:41.737 4: Ventilator: msg ref is
Liegt das am Modul oder an mir?
Zitat von: ucm73 am 18 August 2019, 17:31:32
Hi,
ich habe ein Problem mit dem Xiaomi Mijia Fan 1X. Er wird als dmaker.fan.p5 erkannt. Die Firmware ist 2.0.4. RSSI wird auch noch ausgelesen.
Das war es dann auch, jeglicher Befehl wird mit einem error "useracktimeout" quittiert.
Im log erscheint dann:
Liegt das am Modul oder an mir?
Vermutlich am Modul, weil der Fan vielleicht andere Kommunikation erwartet.
Google doch erst mal wie/ob andere außerhalb von FHEM das schon gelöst haben.
Hab grade leider etwas wenig Zeit.
Hallo Markus,
ja es ist wohl so, dass die verschiedenen Ventilatoren unterschiedlich angesprochen werden wollen.
Der von mir eingesetzte ist der aktuellste, was das Produktionsdatum betrifft.
Im "XiaoMi fan plugins for HomeBridge" wird er als eigenständiges Modell erwähnt.
Wenn du Zeit findest, das Modell in dein Modul einzupflegen, wäre das super.
Was kann ich dir für Infos dazu geben?
Besten Dank
Hallo Zusammen,
habe gestern erfolgreich Valetudo 0.4.0 auf meinen S5 aufgespielt bekommen.
Bin jetzt auch schon einige Foren-Beiträge durch aber wie kann ich die angelegten "zones" auf dem Roboter im Fhem nutzen?
Würde einfach gerne Z.B. auf einen Button "Küche" drücken und direkt dort eine Reinigung durchführen.
Oder muss ich die "zones" im Fhem zusätzlich anlegen?
MFG
Jens
Steht hier im Forum, ich hab die Frage auch gestellt. Musste mal suchen. Da gibt es ein Script was die Koordinaten ausliest und umrechnet und die kannste in FHEM dann einfügen.
/Daniel
Hallo Markus,
bitte aus den Zeilen
'16' => "Goto" ,
'17' => "Zoned Clean" ,
'17' => "Targeted Clean" ,
diese machen:
'16' => "Goto" ,
'17' => "Zoned Clean" ,
'18' => "Targeted Clean" ,
Dankeee!!!
@Daniel
Hy Daniel,
ich dachte nur das man irgendwie bei Fhem die Zone direkt ansteuern kann.
Es gibt ja die Möglichkeit "set zone" anzusteuern, allerdings reagiert der S5 bei mir dort nicht. (set zone WC)
dann muss ich versuchen die Koordinaten auszulesen und das ins fhem einzufügen.
MFG
Jens
Ja, die Zonen, wenn mit Attribut angelegt kannst du in fhem direkt aufrufen...
Allerdings sind die Koordinaten aus Valetudo ANDERS!
Dazu das Script...
Ist ein paar Seiten zurück...
Gruß, Joachim
@patator:
Helfen kann ich Dir bei Deinem Problem nicht, aber vielleicht hast Du bald einen Leidensgenossen ;-)
Zitat von: patator am 17 Juli 2019, 13:04:02
Achja der Sauger S6 ist schon in Fhem eingebunden (mit Token).
Hast Du den S6 normal wie im 1. Beitrag beschrieben angebunden oder etwas anders gemacht? Welche Firmware-Version hast Du denn? Bei mir ist 3.4.5_0524 drauf. Bekomme aber keinen Status, nur die folgenden Einträge im Log:
2019.09.09 10:38:53 3: Roborock: initialized, using AES
2019.09.09 10:39:03 3: Roborock: disconnecting
2019.09.09 10:39:03 2: Roborock: connecting
2019.09.09 10:39:03 3: Roborock: initialized
2019.09.09 10:39:55 3: Roborock: initialized, using AES
2019.09.09 10:40:05 3: Roborock: disconnecting
2019.09.09 10:40:05 2: Roborock: connecting
2019.09.09 10:40:05 3: Roborock: initialized
2019.09.09 10:41:42 1: Roborock: internal error, values missing
2019.09.09 10:47:42 3: Roborock: disconnecting
2019.09.09 10:47:42 2: Roborock: connecting
2019.09.09 10:47:42 3: Roborock: initialized
2019.09.09 10:48:52 3: Roborock: initialized, using AES
2019.09.09 10:49:02 3: Roborock: disconnecting
2019.09.09 10:49:02 2: Roborock: connecting
2019.09.09 10:49:02 3: Roborock: initialized
2019.09.09 11:48:21 3: Roborock: disconnecting
2019.09.09 11:48:21 2: Roborock: connecting
2019.09.09 11:48:21 3: Roborock: initialized
2019.09.09 11:48:21 5: Roborock: initSend
2019.09.09 11:48:21 5: Roborock Send SUCCESS
2019.09.09 11:48:21 5: Roborock > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Sieht nicht wirklich nach "Fehler" aus, aber er reagiert weder auf set- noch get-Befehle.
Bin mich hier auch noch am Einlesen, aber erst so in der Mitte der 119 Seiten ...
Edit:
Nach einem Editieren und Speichern der Definition (ohne Änderung) kam jetzt noch:
2019.09.09 12:27:43 4: Roborock: Crypt::Rijndael_PP not found
2019.09.09 12:27:43 3: Roborock: initialized, using AES
Ich würde mal vermuten dass der Token falsch ist.
Oder der Sauger antwortet nicht mit den Device Infos.
Log das mal bitte mit Verbose 5
Verbose steht schon die ganze Zeit auf 5. Zwischenzeitlich kam nur das dazu:
2019.09.09 12:27:53 3: Roborock: disconnecting
2019.09.09 12:27:53 2: Roborock: connecting
2019.09.09 12:27:53 3: Roborock: initialized
2019.09.09 12:27:53 5: Roborock: initSend
2019.09.09 12:27:53 5: Roborock Send SUCCESS
2019.09.09 12:27:53 5: Roborock > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2019.09.09 14:35:38 4: Roborock: Crypt::Rijndael_PP not found
2019.09.09 14:35:38 3: Roborock: initialized, using AES
2019.09.09 14:35:48 3: Roborock: disconnecting
2019.09.09 14:35:48 2: Roborock: connecting
2019.09.09 14:35:48 3: Roborock: initialized
2019.09.09 14:35:48 5: Roborock: initSend
2019.09.09 14:35:48 5: Roborock Send SUCCESS
2019.09.09 14:35:48 5: Roborock > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2019.09.09 14:36:01 4: Roborock: write {"id":1,"method":"app_wakeup_robot","params":[]} (48)
2019.09.09 14:36:01 5: Roborock: initSend
2019.09.09 14:36:01 5: Roborock Send SUCCESS
2019.09.09 14:36:01 5: Roborock > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2019.09.09 14:36:01 1: Roborock: internal error, values missing
2019.09.09 14:42:01 3: Roborock: disconnecting
2019.09.09 14:42:01 2: Roborock: connecting
2019.09.09 14:42:01 3: Roborock: initialized
2019.09.09 14:42:01 5: Roborock: initSend
2019.09.09 14:42:01 5: Roborock Send SUCCESS
2019.09.09 14:42:01 5: Roborock > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Den Token hatte ich auch schon in Verdacht. Zumindest die 32 Stellen sind plausibel. Ich versuche gerade, den noch mal auf andere Weise zu bekommen und zu vergleichen. Ist aber schwierig. MiToolkit liefert nichts. Es gibt keinen Fehler, aber die Anzeige endet mit der IP. Eine ältere App Version bietet "Europe" nicht als Server. Da kann ich mich anmelden, bekomme aber kein Device angezeigt (habe nur den Sauger).
Sorry, hat sich erledigt. Ich hatte dem S6 bereits vor 2 Tagen in der Fritzbox eine (andere) IP fest zugeordnet. Die wurde in der Fritzbox auch schon als aktiv angezeigt. Mir ist dann in FloleVac aufgefallen, dass da noch die alte steht und ich den Sauger nach Änderung dort nicht mehr bedienen kann. Nach ab-/anschalten des WLANs hat er jetzt definitiv die neue, ist darüber ansprechbar und die Verbindung zu fhem klappt.
Danke für die Hilfe.
Hallo,
heute einen Smartfan 2s bekommen und den und meinen Roborock versucht einzubinden.
Tokens ausgelesen und beide in FHEM rein.
Beide sofort eine setuuid bekommen und der Roborock lässt sich auch probemlos ansprechen.
Nur beim Smartfan geht nichts. Es kommt: XiaomiDevice Ventilator is disabled. Aborting...
Und bekomme das in die fhem.cfg mit rein: attr Ventilator disable 1
Muss ich da noch was aktivieren?
So, jetzt habe ich die 119 Seiten durch. Leider ist gar nicht viel Zeit, sich mit der Steuerung durch fhem zu beschäftigen, morgen kommt nämlich schon der Smart Fan. Aber zum Glück wird der über das gleiche Modul angebunden, also nicht noch mal so viele Seiten lesen. Wer jetzt fragt, warum man wenn es kühler wird noch einen Ventilator kauft: Wer sprechen nächsten Sommer wieder, wenn bei 40 Grad alle ausverkauft sind.
Was mir das Lesen gebracht hat: Respekt vor Marlen und Ihrer Garage;-) Viele Ideen und Code-Schnippsel für die Verwendung mit fhem. Bei Probleme an das Token zu kommen hätte er mir geholfen, so weit war ich da aber noch nicht mit lesen. Dann war da noch ein Beitrag zur Positionierung des Docks (Abstände, Ausrichtung, Freiraum), um möglichst die Änderung bei der Ausrichtung der Karte zu verhindern. Ich habe den Beitrag jetzt nicht mehr gefunden und es hat auch nie jemand darauf verwiesen. Scheint also nicht so relevant zu sein. Scheinbar habe ich mit dem S6 das Problem auch gar nicht, der erstellt auch bei einer Komplettreinigung keine neue Karte. Zumindest bekommt man in der App nichts davon mit. Das funktioniert auf 2 Etagen, solange man vorher die richtige Karte lädt.
Für die Steuerung durch fhem fehlt mir noch eine Möglichkeit, einfach an die Koordinaten zu kommen. Floles App lädt die nicht und zum Thema rooten oder alternativer Firmware habe ich auch nichts gefunden. Die zusätzlichen Features vom S6 gegenüber dem S5 wollte ich aber unbedingt haben und der Preisunterschied war nicht groß genug. Vor allem die Lautstärke war wichtig, weil wir wegen unsere Katze nur saugen, wenn wir da sind. Naja, da tut sich ja vielleicht noch was.
@tom2000:
Hoffentlich habe ich morgen nicht die gleichen Probleme. Ich berichte dann ...
@tom2000:
Also bei mir funktioniert beides, der neue Smart Fan 2S und auch noch der schon vorher verbundene Roborock S6.
@tomcat.x
Hab den Fan heute nochmal raus und neu rein und auf einmal geht er. Keine Ahnung wo das mit dem disable vorher her kam.
Auf jeden Fall ein klasse Teil.
Hallo,
ich habe seit 07/2017 eine Phillips Eyecare, die bis vor etwa einem 1/2 Jahr auch immer mit dem XiaomiDevice in FHEM funktioniert hat. Ich habe die letzte Zeit immer händisch geschaltet, heute wollte ich die Lampe wieder über FHEM steuern, aberich bekomme nun immer ein "EyeCare: invalid JSON: ", und kann die Lampe nicht mehr steuern. Weiss jemand was ich machen muss? Hier die Versionen, der LOG mit dem Fehler, und das RAW vom Device.
Latest Revision: 20263
File Rev Last Change
fhem.pl 20069 2019-08-27 08:36:02Z rudolfkoenig
72_XiaomiDevice.pm 20061 2019-08-25 23:24:43Z moises
2019.09.28 21:26:23 4: EyeCare: write {"id":1770,"method":"get_prop","params":["power","bright","scene_num","notifystatus","ambstatus","ambvalue","eyecare","bls","dvalue"]} (134)
2019.09.28 21:26:23 5: EyeCare: send 213100b00000000002f9a90300001abbbbab6e0f7.....9172537ef0
2019.09.28 21:26:23 5: EyeCare Send SUCCESS
2019.09.28 21:26:23 5: EyeCare > 213100b00000000002f9a90300001abbbbab6e0f7......9172537ef0
2019.09.28 21:26:23 5: EyeCare < 213100b00000000002f9a90300001abbffffffffffffffffffffffffffffffff (176)
2019.09.28 21:26:23 5: EyeCare: decrypted
2019.09.28 21:26:23 2: EyeCare: invalid JSON:
defmod EyeCare XiaomiDevice 168.78.0.39 12345678901234567890123456789012
attr EyeCare event-on-change-reading state
attr EyeCare group LIGHT
attr EyeCare intervalData 10
attr EyeCare intervalSettings 60
attr EyeCare room Lights
attr EyeCare sortby 09
attr EyeCare subType EyeCare
attr EyeCare verbose 5
attr EyeCare webCmd on:off:brightness:reconnect
Token geändert? Versuch ihn mal erneut auszulesen.
Danke, das wars! Alles neu macht der Mai und schon gehts wieder!
Kann mir wer sagen, wie ich dieses Script in FHEM einbinden muss? https://github.com/marcelfischer/valetudo2fhem (https://github.com/marcelfischer/valetudo2fhem)
Hab meinen S50 gerootet (Valetudo) nutze das Xiaomi Modul und bisher klappt alles. Für den Abschluß würde ich gerne noch die Zonenreinigung verschiedener Räume anlegen und bräuchte dazu die richtigen Koordinaten.
EDIT:
Habe es nun doch geschafft :) ... generell kann man es ausrechnen wie ein paar Seiten davor beschrieben.
Mit dem Tool Roborock Control Center https://github.com/LazyT/rrcc (https://github.com/LazyT/rrcc) und Valetudo auf dem Sauger lassen sich die Koordinaten sogar direkt aus der Karte entnehmen.
Dazu muss man nur schauen, dass man in der Karte die richtigen Seiten tauscht und somit die richtigen Koordinaten erhält.
(https://abload.de/thumb/rrcchtjhq.png) (https://abload.de/image.php?img=rrcchtjhq.png)
Hallo,
mein Sauger (V1) bietet mir gerade die Firmware-Version 3.5.4_004004 an (bisher 3.5.0_003476).
Gibt es da irgendwelche Probleme mit Fhem? Oder Verbesserungen?
Bin eigentlich momentan recht glücklich und nur zu Updates bereit wenn es auch was bringt.
Danke
ErdnaR
Lass das Update lieber erst mal bleiben. Kann sein dass es lokale FW Updates verhindert.
Danke.
Aber was meinst du mit "lokale FW Updates"?
Hallo,
leider ergab meine Suche nur wiedersprüchliche Ergebnissse.
Ist es möglich den S6 in FHEM einzubinden? Es haben einige geschrieben, das sie es eingerichtet haben.
edit: ich habe nämlich gelesen, dass man den Token mit der Russischen App auslesen kann, bin aber da unsicher. Gerade gibts nur den S6 für 400€
Hallo kotaro,
sorry, ich konnte nicht schnell genug auf Deine PM antworten. Meine Antwort steht jetzt hier:
https://forum.fhem.de/index.php/topic,101108.msg985419.html#msg985419 (https://forum.fhem.de/index.php/topic,101108.msg985419.html#msg985419)
Den Token habe ich genau wir von Dir angegeben ausgelesen.
Hallo,
ich habe einen Roborock S6 jetzt erfolgreich eingebunden (ohne Root! da nicht verfügbar), und bekomme auch Logs und mehr.
Gibt es eine Möglichkeit, dem Robbi (unser Sohn hat ihn Bob getauft ;)) zu entlocken, welchen Raum er gerade reinigt, wenn ich via Xiaomi-Home die Einzelraum-Reinigung angestoßen habe? Mangels Root sind die Möglichkeiten, eine eigene Karte zu erstellen bzw. auszulesen, bei diesem Model ja (noch) nicht möglich.
Stehen entsprechende Daten evtl. im Verbose5 mit im Log?
Gruß, Christoph
Moin,
gibt es eine Möglichkeit, sich benachrichtigen zu lassen, wenn beim Xiaomi Staubsauger der Staubbehälter voll ist?
Vielen Dank.
Grüße
Zitat von: caldir65 am 20 Oktober 2019, 12:26:01Gibt es eine Möglichkeit, dem Robbi (unser Sohn hat ihn Bob getauft ;)) zu entlocken, welchen Raum er gerade reinigt, wenn ich via Xiaomi-Home die Einzelraum-Reinigung angestoßen habe?
Leider nein, zumindest kenne ich keine.
Zitat von: Mave am 02 November 2019, 20:02:33gibt es eine Möglichkeit, sich benachrichtigen zu lassen, wenn beim Xiaomi Staubsauger der Staubbehälter voll ist?
Nicht zuverlässig. Eventuell kommt unter
event ein
bin_full vorbei, muss aber leider nicht.
Okay, danke.
Im Keller hatte ich noch so Xiaomi Philips RhiZhui (oder wie auch immer die genau heißen) LED-Lampen rumliegen.
Also den Freitag abend genutzt und die Lampen (wieder) in FHEM einbinden - hatte die Birnen schonmal erfolgreich in FHEM. Da ich aber mittlerweile mein Wifi-Setup geändert habe, habe ich die Lampen in der App gelöscht und neu angelegt (Mainland China, sonst werden die Lampen ja nicht erkannt). Kurze Funktionskontrolle in der App - geht, die chinesische Firewall ist heute abend eher langsam.
Dann gemäß Anleitung Token ermittelt und in FHEM wie folgt definiert:
define EZ.EG.1.LED XiaomiDevice 192.168.11.130 cd3e31e5c22f5a195569046a4111b7b5
subType noch schnell auf SmartLamp und auf die Readings gewartet. Pustekuchen.
Also das Device aus verbose = 5 gestellt und reconnect.
Hier der Auszug aus dem Log:
2019.11.08 18:46:08 3: EZ.EG.1.LED: initialized, using AES
2019.11.08 18:46:18 3: EZ.EG.1.LED: disconnecting
2019.11.08 18:46:18 2: EZ.EG.1.LED: connecting
2019.11.08 18:46:18 3: EZ.EG.1.LED: initialized
2019.11.08 18:46:18 5: EZ.EG.1.LED: initSend
2019.11.08 18:46:18 5: EZ.EG.1.LED Send SUCCESS
2019.11.08 18:46:18 5: EZ.EG.1.LED > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Versuche, via get EZ.EG.1.LED data
oder ähnliches Infos zu pollen, ergeben gar keinen Log-Eintrag.
Wenn ich on / off oder brightness bediene, kommt folgende Meldung im Log:
2019.11.08 18:54:03 4: EZ.EG.1.LED: write {"id":3,"method":"set_bright","params":[54,"smooth",30]} (56)
2019.11.08 18:54:03 5: EZ.EG.1.LED: initSend
2019.11.08 18:54:03 5: EZ.EG.1.LED Send SUCCESS
2019.11.08 18:54:03 5: EZ.EG.1.LED > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2019.11.08 18:54:03 1: EZ.EG.1.LED: internal error, values missing
Feste IP passt, auch die Signalqualität ist gemäß Unifi-Controller und auch laut MiHome App in Ordnung...
Die verwendete Firmware der Lampe ist 1.3.0_0035
Für Ideen dankebar,
Tom
Token falsch? Netzwerk-Probleme?
Deine Lampen antworten FHEM nicht.
Hi Markus,
Das Token habe ich frisch ausgelesen nach dem neu-Anlernen in der App - auch funktioniert das Schalten über die App (langsam, aber das liegt eher an China als an meinem Netz).
Die RSSI / dB-Werte sind einwandfrei.
Das Merkwürdige: Ich kann als Token angeben, was ich will - der "Send SUCCESS"-Teil bleibt immer gleich.
Ggf wesentlicher Fakt: Es handelt sich um ein anderes Subnetz (192.168.11.0 ist für IOT-Devices, der FHEM-Server steht in einem anderen Subnetz für normale Geräte). Routing zwischen den Subnetzen ist aber offen während der Einrichtung.
Sinnvolle debug / trace-Ansätze? Bevor ich mich mit wireshark u.ä. ins Vergnügen stürze ;-)
Zitat von: sledge am 08 November 2019, 19:26:26
Ggf wesentlicher Fakt: Es handelt sich um ein anderes Subnetz (192.168.11.0 ist für IOT-Devices, der FHEM-Server steht in einem anderen Subnetz für normale Geräte). Routing zwischen den Subnetzen ist aber offen während der Einrichtung.
Jetzt aber nicht mehr? Dann hast du dein Problem schon gefunden.
Das Modul arbeitet nicht mit der Cloud sondern erfordert direkte Kommunikation.
Wenn es das nicht ist, liegt's eventuell an den Lampen selbst die keine lokalen Verbindungen (mehr) zulassen.
Firmware seit dem letzten erfolgreichen Einsatz aktualisiert? Irgendwas hatte ich da mal wo gelesen.
Zitatetzt aber nicht mehr? Dann hast du dein Problem schon gefunden.
Doch - ist ja noch Einrichtungsphase ;-) Danach wird es dann via ACLs eingeschränkt auf die erforderlichen Verbindungen.
ZitatFirmware seit dem letzten erfolgreichen Einsatz aktualisiert? Irgendwas hatte ich da mal wo gelesen.
Das ist gut möglich - #damned.
Naja, dann sind die Dinger jetzt "normale" Lampen. Schade drum. Hatte gehofft, es würde ggf "nur" an den Subnetzen und irgendwelchen Broadcasts liegen... ich versuche es nochmal im gleichen Subnetz - sollte es dann nicht klappen, wird es wohl an der (zu neuen) FW liegen.
Danke für Anregung!
Ok, jetzt geht's.
Es liegt an dem anderen Subnetz - Lampe in das andere Subnetz / Wifi umgezogen, alles geht einwandfrei.
Da will ich es eigentlich nicht haben - also schaue ich mir mal den Code im Modul an.
Das Problem hatte ich mit meinen beiden Fans auch. Die wollten sich einfach nicht im IoT-VLAN in Betrieb nehmen lassen, trotz deaktivierter Firewall. Im normalen VLAN ging es ohne Probleme.
Mein Roborock S50 ließ sich damals ohne Probleme im IoT-VLAN in Betrieb nehmen.
Wenn du da irgendwann mal herausfindest, wie man das lösen kann, teile das hier bitte unbedingt mit. Bin absolut an einer Lösung interessiert. ;)
Gruß Hoppel
Hallo zusammen,
ich habe seit wenigen Tagen festgestellt, dass der Roborock die Zonen nicht ordentlich abfährt, sondern mit dem Zonenstart aus der FHEM die Zone nicht wie in FloleApp wiedergibt. D.h. starte ich die Zone in FloleVac wird sie ordentlich abgefahren, aus der Fhem mit gleichen Koordinaten ist die Fläche nach links ca. 0,5m verschoben, sichtbar in der App. Ich habe Version 3.3.9_001886 drauf, habe die Version vor kurzem draufgezogen, hoffe nicht dass es damit hängt. Konnte dieses Problem jemand bei sich auch beobachten?
Habe schon einige Forenbeiträge durchgelesen, Karte gelöscht, alles ohne Erfolg, weis jemand Rat wie ich es abstellen kann? Besten Dank!
Hallo,
auf meine Anfrage
Zitat von: erdnar am 18 Oktober 2019, 10:48:17
Hallo,
mein Sauger (V1) bietet mir gerade die Firmware-Version 3.5.4_004004 an (bisher 3.5.0_003476).
Gibt es da irgendwelche Probleme mit Fhem? Oder Verbesserungen?
Bin eigentlich momentan recht glücklich und nur zu Updates bereit wenn es auch was bringt.
Danke
ErdnaR
hat Markus M. mit
Zitat von: Markus M. am 18 Oktober 2019, 12:49:28
Lass das Update lieber erst mal bleiben. Kann sein dass es lokale FW Updates verhindert.
geantwortet.
Ich hab es also auch "erst mal bleiben lassen". Da aber die Hoffnung bekanntlich zuletzt stirbt ...
Ich hoffe immer noch auf ein Funktionsupdate des V1 der die Zonenreinigung genau so "qualifiziert" macht wie die normale.
Also, wer hat das o.g. Update gemacht und kann Gutes/Schlechtes berichten?Danke u. schönen Restsonntag.
ErdnaR
ZitatHallo zusammen,
ich habe seit wenigen Tagen festgestellt, dass der Roborock die Zonen nicht ordentlich abfährt, sondern mit dem Zonenstart aus der FHEM die Zone nicht wie in FloleApp wiedergibt. D.h. starte ich die Zone in FloleVac wird sie ordentlich abgefahren, aus der Fhem mit gleichen Koordinaten ist die Fläche nach links ca. 0,5m verschoben, sichtbar in der App. Ich habe Version 3.3.9_001886 drauf, habe die Version vor kurzem draufgezogen, hoffe nicht dass es damit hängt. Konnte dieses Problem jemand bei sich auch beobachten?
Habe schon einige Forenbeiträge durchgelesen, Karte gelöscht, alles ohne Erfolg, weis jemand Rat wie ich es abstellen kann? Besten Dank!
Habe inzwische die Lösung gefunden.
Es lag an eckigen Klammern, die ich aus der FloleApp mitübernommen wurden.
So kommt es aus der App: [[25215,22437,28515,27187,1],[25245,20875,27045,23325,1]]
Eintrag in Fhem, wie folgt: Wohnen:[25215,22437,28515,27187,1],[25245,20875,27045,23325,1]
Erst nach dem Start über set-Befehl und anschließendem Vergleich mit Wiki aufgefallen. Jetzt zieht der Robo korrekt seine Bahnen ;)
Hallo Markus,
ich habe mir einen Mi smart humidifier zugdelegt.
Im FHEM wurde er angelegt und erkannt, nur kann ich den nicht steuern und bekomme keine Werte zurück.
Es wäre super wenn Du dir das bei Gelegenheit anschauen würdest.
Hier sind die Infos vom Device:
Internals:
DEF ***.***.***.*** XXXXXXXXXXXXXXXXXXXXXXX
FD 14
FUUID 5dbe1caf-f33f-69d4-0d73-167c44b008d42a7f
NAME Luftbefeuchter
NR 189
STATE ???
TYPE XiaomiDevice
hardware esp8266
mac **:**:**:**
mcu_firmware 0111
model deerma.humidifier.mjjsq
token XXXXXXXXXXXXXXXXXXXXXXX
wifi_firmware 2709610
Helper:
DBLOG:
device_firmware:
logdb:
TIME 1574251418.99925
VALUE 2.0.4
device_uptime:
logdb:
TIME 1574251418.99925
VALUE 420.50
error:
logdb:
TIME 1574253058.70525
VALUE useracktimeout
limit_hum:
logdb:
TIME 1574253034.72955
VALUE 50
mode:
logdb:
TIME 1574253048.61375
VALUE high
off:
logdb:
TIME 1574253029.99497
VALUE
on:
logdb:
TIME 1574253023.45712
VALUE
power:
logdb:
TIME 1574253034.14476
VALUE off
wifi_rssi:
logdb:
TIME 1574251418.99925
VALUE -44
READINGS:
2019-11-03 12:54:11 buzzer on
2019-11-20 20:03:38 device_firmware 2.0.4
2019-11-20 20:03:38 device_uptime 420.50
2019-11-20 20:30:58 error useracktimeout
2019-11-20 20:30:48 mode high
2019-11-20 20:30:34 power off
2019-11-20 20:03:38 wifi_rssi -44
helper:
ConnectionState connected
crypt Rijndael
delay 60
dev 07a8
id 0474
ip ***.***.***.***
last_read 1574253058
packetid 20
port 11111
sequence 1572737605
token XXXXXXXXXXXXXXXXXXXXXXX
packet:
Attributes:
subType Humidifier
verbose 5
Und hier ein Logauszug bei einigen Betätigungen:
2019.11.20 20:28:44 4: Luftbefeuchter: write {"id":9,"method":"get_prop","params":["power","mode","temp_dec","humidity","trans_level","speed","depth","dry","temperature","button_pressed"]} (143)
2019.11.20 20:28:44 5: Luftbefeuchter: initSend
2019.11.20 20:28:44 5: Luftbefeuchter Send SUCCESS
2019.11.20 20:28:44 5: Luftbefeuchter > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2019.11.20 20:28:44 5: Luftbefeuchter: send 213100b00000000007a8047400171f379dd8520eaabda6e1fb6f572fd9577310779e0636b78a208eb92866da5096bd3d68df69a4c63963344f1e59933513b4742cea0b29e55849d0e4b2e108614e6c9e0c28cc2ef9c275cac2117d45459a44f02ed5f78dbf5e1ccf6382ee9c6777452689bc20fe2fdc713f8e30125273de6355d4fc3da52beec504ecc4de0b589ee05d05472b4a0ecd073b73bdb96564c743c5eaea120a6a01201fc292f6bf2a8f6750
2019.11.20 20:28:44 5: Luftbefeuchter Send SUCCESS
2019.11.20 20:28:44 5: Luftbefeuchter > 213100b00000000007a8047400171f379dd8520eaabda6e1fb6f572fd9577310779e0636b78a208eb92866da5096bd3d68df69a4c63963344f1e59933513b4742cea0b29e55849d0e4b2e108614e6c9e0c28cc2ef9c275cac2117d45459a44f02ed5f78dbf5e1ccf6382ee9c6777452689bc20fe2fdc713f8e30125273de6355d4fc3da52beec504ecc4de0b589ee05d05472b4a0ecd073b73bdb96564c743c5eaea120a6a01201fc292f6bf2a8f6750
2019.11.20 20:28:44 5: Luftbefeuchter < 213100200000000007a8047400171f37ffffffffffffffffffffffffffffffff (32)
2019.11.20 20:28:48 5: Luftbefeuchter < 213100600000000007a8047400171f3bd39e2761663bc671ae808dc269b558990d1457c29ae400d756fde5a0c131ffe9f3bb835c3f354ac670d6bd33266903f78d30b7c396987453395db2f98f9e4db2b6d7deea1819efd294d178d0f8cdbce5 (96)
2019.11.20 20:28:48 5: Luftbefeuchter: decrypted
{"id":9,"error":{"code":-9999,"message":"user ack timeout"}}
2019.11.20 20:28:48 5: Luftbefeuchter: parse id 9
$VAR1 = {
'id' => 9,
'error' => {
'code' => -9999,
'message' => 'useracktimeout'
}
};
2019.11.20 20:28:48 4: Luftbefeuchter: parse id 9 / hum_data
2019.11.20 20:28:48 4: Luftbefeuchter: msg ref is
2019.11.20 20:30:23 4: Luftbefeuchter: write {"id":10,"method":"set_power","params":["on"]} (46)
2019.11.20 20:30:23 5: Luftbefeuchter: send 213100500000000007a8047400171f9a14559f275b344cc88d11bccc6a3964be3413bdb5471451fdd69fdb0abf804d732c41a0b458f8ca72a2e969d58911d080962790f54595c19f8ec6710076c6baa8
2019.11.20 20:30:23 5: Luftbefeuchter Send SUCCESS
2019.11.20 20:30:23 5: Luftbefeuchter > 213100500000000007a8047400171f9a14559f275b344cc88d11bccc6a3964be3413bdb5471451fdd69fdb0abf804d732c41a0b458f8ca72a2e969d58911d080962790f54595c19f8ec6710076c6baa8
2019.11.20 20:30:27 5: Luftbefeuchter < 213100600000000007a8047400171f9e262dc015f93aa37ac7e21b09a44f14f72ac52eead4adce350c40242b7ff29f6be25a163eff67be31f8a13c51a11de5c22128b584d4985b813831ab36096cbc51d33ef828aae06a125ad38f7dc9951c9e (96)
2019.11.20 20:30:27 5: Luftbefeuchter: decrypted
{"id":10,"error":{"code":-9999,"message":"user ack timeout"}}
2019.11.20 20:30:27 5: Luftbefeuchter: parse id 10
$VAR1 = {
'id' => 10,
'error' => {
'message' => 'useracktimeout',
'code' => -9999
}
};
2019.11.20 20:30:27 4: Luftbefeuchter: parse id 10 / power_on
2019.11.20 20:30:27 4: Luftbefeuchter: msg ref is
2019.11.20 20:30:29 4: Luftbefeuchter: write {"id":11,"method":"get_prop","params":["power","mode","temp_dec","humidity","trans_level","speed","depth","dry","temperature","button_pressed"]} (144)
2019.11.20 20:30:29 5: Luftbefeuchter: send 213100c00000000007a8047400171fa0c5d7113c7120869ee413cf5f8aae655cb6381462035102c3bff0ae941c43a7d0a129f6ab80d253d2bdb745ca1a2c30f09d97f68fdce51e407555a47a720691767a805ea89a02c71624f2665af9eb9fd4f72f098f2885e5c012700c3856c071e216bd306059a0969f7766f95a83feb7d5b3b4a83ff351c0e077fba8790db3a79e5ab34ac78e236f02b8dc7e86b839957259a715d9b139717acdd3fc35f9efdbd4adefacb0dc4c340cee7666d0ed5c4c79
2019.11.20 20:30:29 5: Luftbefeuchter Send SUCCESS
2019.11.20 20:30:29 5: Luftbefeuchter > 213100c00000000007a8047400171fa0c5d7113c7120869ee413cf5f8aae655cb6381462035102c3bff0ae941c43a7d0a129f6ab80d253d2bdb745ca1a2c30f09d97f68fdce51e407555a47a720691767a805ea89a02c71624f2665af9eb9fd4f72f098f2885e5c012700c3856c071e216bd306059a0969f7766f95a83feb7d5b3b4a83ff351c0e077fba8790db3a79e5ab34ac78e236f02b8dc7e86b839957259a715d9b139717acdd3fc35f9efdbd4adefacb0dc4c340cee7666d0ed5c4c79
2019.11.20 20:30:29 4: Luftbefeuchter: write {"id":12,"method":"set_power","params":["off"]} (47)
2019.11.20 20:30:29 5: Luftbefeuchter: send 213100500000000007a8047400171fa028520b29f0c8c2fe35ce8677c9b1ee8ae8bb85cbea290aea647536772c385b0f0bd9db30c9a18199c9f7982a1f8f20e72a174881501396cf627cf73a06020875
2019.11.20 20:30:29 5: Luftbefeuchter Send SUCCESS
2019.11.20 20:30:29 5: Luftbefeuchter > 213100500000000007a8047400171fa028520b29f0c8c2fe35ce8677c9b1ee8ae8bb85cbea290aea647536772c385b0f0bd9db30c9a18199c9f7982a1f8f20e72a174881501396cf627cf73a06020875
2019.11.20 20:30:33 4: Luftbefeuchter: write {"id":13,"method":"get_prop","params":["power","mode","limit_hum"]} (67)
2019.11.20 20:30:33 5: Luftbefeuchter: send 213100700000000007a8047400171fa40276a0873f1bab28c097a49cffdb4c8062fc2ff3b4ee5dd202cd59daffb70e856dc978cebfc94cbb8372c059cbc3254f3af4273c05e8fca5ed9c40fead7a515e5dfd882ad4d1fb8e7148527ca6b0febb6d955f84a196fa3846f1da9829ab9ed7
2019.11.20 20:30:33 5: Luftbefeuchter Send SUCCESS
2019.11.20 20:30:33 5: Luftbefeuchter > 213100700000000007a8047400171fa40276a0873f1bab28c097a49cffdb4c8062fc2ff3b4ee5dd202cd59daffb70e856dc978cebfc94cbb8372c059cbc3254f3af4273c05e8fca5ed9c40fead7a515e5dfd882ad4d1fb8e7148527ca6b0febb6d955f84a196fa3846f1da9829ab9ed7
2019.11.20 20:30:33 5: Luftbefeuchter < 213100600000000007a8047400171fa46ce7c4a35ac3a4ac9c064c34c7ba1cbe883bf093eca95335fff85b8df156e9170a5801e7e304f4c26c4d80ab0218292c43dea3cdf63d095acd7d6fe4940899aa5d7aa088ca3025acf74ec365e492fdd7 (96)
2019.11.20 20:30:33 5: Luftbefeuchter: decrypted
{"id":11,"error":{"code":-9999,"message":"user ack timeout"}}
2019.11.20 20:30:33 5: Luftbefeuchter: parse id 11
$VAR1 = {
'error' => {
'code' => -9999,
'message' => 'useracktimeout'
},
'id' => 11
};
2019.11.20 20:30:33 4: Luftbefeuchter: parse id 11 / hum_data
2019.11.20 20:30:33 4: Luftbefeuchter: msg ref is
2019.11.20 20:30:34 5: Luftbefeuchter < 213100600000000007a8047400171fa4f91f1cfb39fa3ebed788c41796a1ce74282c59d99b4e129ae4fb7543d8af63840d9364dd2ca6fc46f528492f5206097bb2ada0859baaf25634aa3b17c9916a2dd70d3a9c41c7af7361ed794bd2b9586b (96)
2019.11.20 20:30:34 5: Luftbefeuchter: decrypted
{"id":12,"error":{"code":-9999,"message":"user ack timeout"}}
2019.11.20 20:30:34 5: Luftbefeuchter: parse id 12
$VAR1 = {
'id' => 12,
'error' => {
'message' => 'useracktimeout',
'code' => -9999
}
};
2019.11.20 20:30:34 4: Luftbefeuchter: parse id 12 / power_off
2019.11.20 20:30:34 4: Luftbefeuchter: msg ref is
2019.11.20 20:30:34 4: Luftbefeuchter: write {"id":14,"method":"set_limit_hum","params":[50]} (48)
2019.11.20 20:30:34 5: Luftbefeuchter: send 213100600000000007a8047400171fa431743cc97baa7b6e8c1fcbc107f38db3f576950a477db60e57a65108773bd225605f75b196d19dbe7218db20d2e6743fd87c4af25eddfe5bcf3f9c9223013ec6532598b3299eca926ea4cc709b38a758
2019.11.20 20:30:34 5: Luftbefeuchter Send SUCCESS
2019.11.20 20:30:34 5: Luftbefeuchter > 213100600000000007a8047400171fa431743cc97baa7b6e8c1fcbc107f38db3f576950a477db60e57a65108773bd225605f75b196d19dbe7218db20d2e6743fd87c4af25eddfe5bcf3f9c9223013ec6532598b3299eca926ea4cc709b38a758
2019.11.20 20:30:36 4: Luftbefeuchter: write {"id":15,"method":"get_prop","params":["power","mode","temp_dec","humidity","trans_level","speed","depth","dry","temperature","button_pressed"]} (144)
2019.11.20 20:30:36 5: Luftbefeuchter: send 213100c00000000007a8047400171fa662a2ea821e535bb14a6c8442cd0d56a3e10422da3cc28dede35f5e84f65c10626775a869e04139b5ab0f3f6b38e005ad064fbf3e12412378c43a0d09e0d24dbf9a0b16312a7c567c60e03d5421b0eb03e330a3ec696980e1620c49a873eaadb7c365f0501added4a1b8c9288a823d8f8fe73fbfb8912ace5ece7d35bb3052ae1ec0064cab5f07b142df3c003105c5d9292dcfb4ad57bc0ba45e9a50e794a114efabab307a28058dd6f63d1ece197017d
2019.11.20 20:30:36 5: Luftbefeuchter Send SUCCESS
2019.11.20 20:30:36 5: Luftbefeuchter > 213100c00000000007a8047400171fa662a2ea821e535bb14a6c8442cd0d56a3e10422da3cc28dede35f5e84f65c10626775a869e04139b5ab0f3f6b38e005ad064fbf3e12412378c43a0d09e0d24dbf9a0b16312a7c567c60e03d5421b0eb03e330a3ec696980e1620c49a873eaadb7c365f0501added4a1b8c9288a823d8f8fe73fbfb8912ace5ece7d35bb3052ae1ec0064cab5f07b142df3c003105c5d9292dcfb4ad57bc0ba45e9a50e794a114efabab307a28058dd6f63d1ece197017d
2019.11.20 20:30:37 5: Luftbefeuchter < 213100600000000007a8047400171fa898342d77afbd18ed0f77204682ddfa80914aaea269448b6042ab2ca251a77d067d6a0eb344905bbff3fefaf11a786af166940d0e1bcf2e3fe1234a4aebec6f65252d9adf59a0351cd934b88bf3a28e5d (96)
2019.11.20 20:30:37 5: Luftbefeuchter: decrypted
{"id":13,"error":{"code":-9999,"message":"user ack timeout"}}
2019.11.20 20:30:37 5: Luftbefeuchter: parse id 13
$VAR1 = {
'id' => 13,
'error' => {
'code' => -9999,
'message' => 'useracktimeout'
}
};
2019.11.20 20:30:37 4: Luftbefeuchter: parse id 13 / hum_status
2019.11.20 20:30:37 4: Luftbefeuchter: msg ref is
2019.11.20 20:30:38 5: Luftbefeuchter < 213100600000000007a8047400171fa9d92b1e64353985a6a8dd7c4cfdc95efc593dd29609f5548bf5b99dfc53d0f5de32f6e07878cb1384a3c028c7eb1e815620eeec3d3d3e5606d9da650a80752583d089d16a50dfa073552cdeacc0e13a1e (96)
2019.11.20 20:30:38 5: Luftbefeuchter: decrypted
{"id":14,"error":{"code":-9999,"message":"user ack timeout"}}
2019.11.20 20:30:38 5: Luftbefeuchter: parse id 14
$VAR1 = {
'id' => 14,
'error' => {
'message' => 'useracktimeout',
'code' => -9999
}
};
2019.11.20 20:30:38 4: Luftbefeuchter: parse id 14 / set_limit_hum
2019.11.20 20:30:38 4: Luftbefeuchter: msg ref is
2019.11.20 20:30:39 4: Luftbefeuchter: write {"id":16,"method":"get_prop","params":["power","mode","limit_hum"]} (67)
2019.11.20 20:30:40 5: Luftbefeuchter: send 213100700000000007a8047400171faa530d3059565aab4b1752e335a486e5aa4ed055b3a65bdca1220a95182cfb4772d9fed7e96597e557e0b8b4b34f58cdc9c1fdff3aa475ef4ecc3ef1bcc5eadfdf13b426b2075db83a203e4ec81b8e38052b30757902f53d35017ce468956914ed
2019.11.20 20:30:40 5: Luftbefeuchter Send SUCCESS
2019.11.20 20:30:40 5: Luftbefeuchter > 213100700000000007a8047400171faa530d3059565aab4b1752e335a486e5aa4ed055b3a65bdca1220a95182cfb4772d9fed7e96597e557e0b8b4b34f58cdc9c1fdff3aa475ef4ecc3ef1bcc5eadfdf13b426b2075db83a203e4ec81b8e38052b30757902f53d35017ce468956914ed
2019.11.20 20:30:40 5: Luftbefeuchter < 213100600000000007a8047400171fab9b821a8159d41ef3bb0042cf105f133946410435fa7067c6a326d9e81ae7c59b9490880743fffbc23aeefca404cfbad045aa2b1aab8e5fa1244ee8a607f14950e6d35c2a9d70a8e94c4d3dfce24fbb3e (96)
2019.11.20 20:30:40 5: Luftbefeuchter: decrypted
{"id":15,"error":{"code":-9999,"message":"user ack timeout"}}
2019.11.20 20:30:40 5: Luftbefeuchter: parse id 15
$VAR1 = {
'id' => 15,
'error' => {
'code' => -9999,
'message' => 'useracktimeout'
}
};
2019.11.20 20:30:40 4: Luftbefeuchter: parse id 15 / hum_data
2019.11.20 20:30:40 4: Luftbefeuchter: msg ref is
2019.11.20 20:30:40 4: Luftbefeuchter: write {"id":17,"method":"get_prop","params":["power","mode","limit_hum"]} (67)
2019.11.20 20:30:40 5: Luftbefeuchter: send 213100700000000007a8047400171fab93a83552e45c981d36ae040493af120cfdb734cb88a72699dbf46de57dda3d90ffdae588a3ad7510c5f6faea96737940b8de38dcec3a069732b416efb3c95a0720bec2da7ecf4a186ac374ea0d964f65eaf3bc24974d0867d9a143cd32c6a40e
2019.11.20 20:30:40 5: Luftbefeuchter Send SUCCESS
2019.11.20 20:30:40 5: Luftbefeuchter > 213100700000000007a8047400171fab93a83552e45c981d36ae040493af120cfdb734cb88a72699dbf46de57dda3d90ffdae588a3ad7510c5f6faea96737940b8de38dcec3a069732b416efb3c95a0720bec2da7ecf4a186ac374ea0d964f65eaf3bc24974d0867d9a143cd32c6a40e
2019.11.20 20:30:44 5: Luftbefeuchter < 213100600000000007a8047400171faef94878688e62d5c8499e7a1a5da2c18d61c60b1d10ffab06d5ef00160b2cf1c8ef0b20c17deb5e33a7907cccb3a7f363420042d0c8663cd184e404ba357155f391428f31321b039a988693d33d70643f (96)
2019.11.20 20:30:44 5: Luftbefeuchter: decrypted
{"id":16,"error":{"code":-9999,"message":"user ack timeout"}}
2019.11.20 20:30:44 5: Luftbefeuchter: parse id 16
$VAR1 = {
'id' => 16,
'error' => {
'message' => 'useracktimeout',
'code' => -9999
}
};
2019.11.20 20:30:44 4: Luftbefeuchter: parse id 16 / hum_status
2019.11.20 20:30:44 4: Luftbefeuchter: msg ref is
2019.11.20 20:30:44 4: Luftbefeuchter: write {"id":18,"method":"set_mode","params":["high"]} (47)
2019.11.20 20:30:44 5: Luftbefeuchter: send 213100500000000007a8047400171faed016d35582536260e2fbd65f0b981c1e1c43f2ba2fc62398a9fc4ed44da60ea65d4818e0504ef01d3c8263745e99cf1cc285bf374145d11a5a61e2ac7b11fe1b
2019.11.20 20:30:44 5: Luftbefeuchter Send SUCCESS
2019.11.20 20:30:44 5: Luftbefeuchter > 213100500000000007a8047400171faed016d35582536260e2fbd65f0b981c1e1c43f2ba2fc62398a9fc4ed44da60ea65d4818e0504ef01d3c8263745e99cf1cc285bf374145d11a5a61e2ac7b11fe1b
2019.11.20 20:30:44 5: Luftbefeuchter < 213100600000000007a8047400171faf05619e4991113426cc92f735496e20eafa816c903afe72edd40051408e31884aab64d3a401acd8801a061494820d674cfd27b9f9aa084d7673eb678b234e3534f1c03319a79cb0137e4d15fcc1d3863d (96)
2019.11.20 20:30:44 5: Luftbefeuchter: decrypted
{"id":17,"error":{"code":-9999,"message":"user ack timeout"}}
2019.11.20 20:30:44 5: Luftbefeuchter: parse id 17
$VAR1 = {
'error' => {
'code' => -9999,
'message' => 'useracktimeout'
},
'id' => 17
};
2019.11.20 20:30:44 4: Luftbefeuchter: parse id 17 / hum_status
2019.11.20 20:30:44 4: Luftbefeuchter: msg ref is
Danke und Gruß
Alex
Hallo Forum,
hat schon jemand den neuen Roborock S5 max in Betrieb? Nach ein paar Tagen Recherche, lacht mich dieses Gerät unwiderstehlich an. Zumal es ihn ab morgen mit Black Friday Deals günstig gibt.
Werde ich denn auch mit dem Xiaomi WiFi Devices Modul ansteuern können?
In Sachen FloleApp und Valetudo bin ich nicht ganz schlau geworden, ob die neueren Roborocks S5, S6 und S5 max auch unterstützt werden...
Gruß,
Pete37
Sollte mit dem Modul funktionieren, wenn du den Token bekommst.
Hallo Markus,
vielen Dank! Ich kann bestätigen: Auch der Roborock S5 max hört auf's (Fhem)-Wort!
Allerdings stehen die neuen Funktionen noch nicht zur Verfügung: Der Roboter kann ja auch beim Wischen verschieden viel Wasser auf das Wischtuch abgeben und die Zonen separat mit verschiedenen Wischstufen ansteuern.
Kann ich dabei behilflich sein, dass das Modul diese Funktionen dazulernen kann?
Gruß,
Pete37
Auch würde ich liebend gerne die Funktion nutzen, einzelne Räume gezielt anzufahren. Nicht über Zonen, sondern über die definierten Räume. In einem anderen Forum habe ich gelesen, dass die Räume offenbar mit eigenen IDs ausgestattet sind, die man direkt aufrufen kann. Das wäre grandios, wenn wir das in Fhem auch umsetzen könnten:
https://community.home-assistant.io/t/howto-xiaomi-vacuum-zoned-cleaning/51293/481 (https://community.home-assistant.io/t/howto-xiaomi-vacuum-zoned-cleaning/51293/481)
Ich melde mich jedenfalls freiwillig zum Testen!
Hallo,
die Zonenreinigung mache ich bei meinem S5 mit dem mqtt Interface von Valetudo, vielleicht hilft dir das weiter?
Zitat von: robertPI am 17 November 2019, 13:02:20
nächste Frage / Problem: laut https://github.com/Hypfer/Valetudo/wiki/Home-Assistant-Integration (https://github.com/Hypfer/Valetudo/wiki/Home-Assistant-Integration)
For multiple zones:
params:
'zone_ids': ["guest room","study room","bed room","living room"]
At the moment you can only send max 5 zones to clean, any more than that will be ignored.
Mit setList zone valetudo/rockrobo/custom_command {"command":"zoned_cleanup","zone_ids":["$EVTPART1"]}
wird allerdings nur der erste Parameter übergeben. Kann $EVENT durch eine Perl Funktion oder regex in den benötigten array umgewandelt werden?
Zitat von: Pete37 am 11 Dezember 2019, 01:41:31
Ich kann bestätigen: Auch der Roborock S5 max hört auf's (Fhem)-Wort!
Kannst Du kurz beschreiben, über welche Methode Du an den Token gekommen bist? Hast Du das Gerät gerootet?
LG
Oli
Wenn jemand die für die Zonen benötigten Befehle rausbekommt, kann ich die einbauen.
Ich kann das mangels S5 aber nicht selbst testen.
Zitat von: OliS. am 13 Dezember 2019, 07:46:45
Kannst Du kurz beschreiben, über welche Methode Du an den Token gekommen bist? Hast Du das Gerät gerootet?
LG
Oli
Ich habe die alte MI Home App auf Android installiert (5.4.49). Dazu hatte ich im Netz gefunden, dass diese Version in einem offenen Logfile auf dem Android den Token im Klartext hinterlegt. Dafür musste ich mich aber mit der MI App verbinden und dort ein Konto anlegen. Mit der neuen Roborock-App geht's nicht so einfach.
Gerootet habe ich das Gerät noch nicht. Bisher lese ich immer nur von älteren Versionen die man sich dann aufspielen muss. Damit würde ich aber vermutlich die neuen Funktionen, die ich ja haben will, verlieren. Genau wissen tue ich das aber nicht. Prinzipiell würde ich den schon gerne rooten.
Von der Cloud habe ich ihn jetzt erstmal abgeschnitten, in dem ich im in der FritzBox das Internet verboten habe. Er hört weiterhin auf das Fhem-Wort, lässt sich aber nicht mehr mit der Mi-App steuern. Zukünftig würde ich ihn gerne von der Cloud befreien und in mein Haustechnik-WLAN integrieren. Es gibt also noch was zu tun...
Zitat von: Markus M. am 13 Dezember 2019, 10:32:10
Wenn jemand die für die Zonen benötigten Befehle rausbekommt, kann ich die einbauen.
Ich kann das mangels S5 aber nicht selbst testen.
Da will ich gerne helfen. Wie hast du die bisherigen Befehle rausbekommen, was müsste ich tun, um die neuen zu finden?
Hi,
wäre es möglich, beim Xiaomi Humidifier noch den mode "Auto" zu ergänzen?
Welche Infos werden hierfür benötigt?
Hier mal ein List vom Device:
Internals:
CHANGED
DEF 192.168.178.61 234ce38ee0888888884cdd612156509d
FD 41
FUUID 5dd95645-f33f-1574-6de4-05dbfd4ed3bc4359
NAME Luftbefeuchter
NR 279
STATE connected
TYPE XiaomiDevice
hardware MTK7697
mac 04:CF:8C:9B:B5:94
mcu_firmware 1032
model zhimi.humidifier.ca1
token 234ce38ee0888888884cdd612156509d
wifi_firmware 20190313111057
READINGS:
2019-12-15 14:54:28 buzzer on
2019-12-15 14:54:28 child_lock off
2019-12-15 15:03:36 depth 114
2019-12-15 11:54:26 device_firmware 1.6.7
2019-12-15 11:54:26 device_uptime 520.02
2019-12-15 15:03:36 dry on
2019-12-15 15:03:43 error none
2019-12-15 15:03:36 humidity 65
2019-12-15 14:54:28 led bright
2019-12-15 15:03:43 limit_hum 70
2019-12-15 15:03:43 mode auto
2019-12-15 15:03:43 power on
2019-12-15 15:03:36 speed 712
2019-12-14 18:32:52 state connected
2019-12-15 15:03:36 temperature 23
2019-12-15 15:03:36 trans_level null
2019-12-15 14:54:28 use_time 214182
2019-12-15 11:54:25 wifi_auth_fail_count 0
2019-12-15 11:54:25 wifi_conn_fail_count 0
2019-12-15 11:54:25 wifi_conn_success_count 1
2019-12-15 11:54:25 wifi_dhcp_fail_count 0
2019-12-15 11:54:26 wifi_rssi -40
2019-12-15 11:54:25 wifi_state connecting
helper:
ConnectionState connected
crypt AES
delay 60
dev 07e8
id 4666
ip 192.168.178.61
last_read 1576418623
packetid 78
port 54321
sequence 1574535180
token 234ce38ee0888888884cdd612156509d
packet:
Attributes:
event-on-change-reading power
subType Humidifier
vg
stoxx
Zitat von: Pete37 am 13 Dezember 2019, 18:01:19
Da will ich gerne helfen. Wie hast du die bisherigen Befehle rausbekommen, was müsste ich tun, um die neuen zu finden?
Lokale Kommunikation mit dem Sauger gibt es schon eine Weile nicht mehr.
Wenn man ihn rooted, kann man aber das Logging für MiIO aktivieren. Das funktioniert aber wahrscheinlich auch nur noch für ältere Firmwares.
Zitat von: Markus M. am 16 Dezember 2019, 12:13:44
Lokale Kommunikation mit dem Sauger gibt es schon eine Weile nicht mehr.
Wenn man ihn rooted, kann man aber das Logging für MiIO aktivieren. Das funktioniert aber wahrscheinlich auch nur noch für ältere Firmwares.
Hm, das wundert mich: Ich kann den Roboter ja mit Fhem fernsteuern. Und das auch, wenn ich dem Sauger das Internet verbiete. Also muss das doch im lokalen Netzwerk von statten gehen, oder wie kommuniziert das Modul mit dem Sauger?
Du kannst das mit den bekannten Kommandos.
Die App tut es aber nicht mehr, um neue herauszufinden.
Zitat von: Markus M. am 16 Dezember 2019, 18:58:57
Du kannst das mit den bekannten Kommandos.
Die App tut es aber nicht mehr, um neue herauszufinden.
Ah, verstehe. Schade auch.
Zitat von: Pete37 am 13 Dezember 2019, 18:00:30
Ich habe die alte MI Home App auf Android installiert (5.4.49). Dazu hatte ich im Netz gefunden, dass diese Version in einem offenen Logfile auf dem Android den Token im Klartext hinterlegt. Dafür musste ich mich aber mit der MI App verbinden und dort ein Konto anlegen. Mit der neuen Roborock-App geht's nicht so einfach.
Gerootet habe ich das Gerät noch nicht. Bisher lese ich immer nur von älteren Versionen die man sich dann aufspielen muss. Damit würde ich aber vermutlich die neuen Funktionen, die ich ja haben will, verlieren. Genau wissen tue ich das aber nicht. Prinzipiell würde ich den schon gerne rooten.
Danke für die Info. Da ich kein Android-Gerät besitze, habe ich es mal über die althergebrachte Methode über das unverschlüsselte iPhone-Backup versucht. Und siehe da, das funktioniert immer noch, vorausgesetzt, man verwendet die Xiaomi-App.
Falls irgendwelche Infos in Bezug auf den S5 Max benötigt werden, immer heraus damit.
LG
Oli
Hallo und frohe Weihnachten :)
ich hab den Luftbefeuchter von Xiaomi:
https://de.gearbest.com/air-purifier/pp_1650027.html
und wollte mal fragen was benötigt wird um den richtig mit dem modul zu betreiben :)
ich konnte ihn schon einrichten mit dem subType "Humidifier" allerdings ist das glaube ich noch nicht ganz das richtige.
folgende "set" befehle:
ein aus, geht
mode, geht (alerdings schaltet "idle" aus. bei meinem gibt es noch einen "auto" modus")
led, geht nicht
limit_hum, ich glaube das hat die version nicht, zumindest nicht in der app
childlock, geht
buzzer, geht
hier ein list wie ich es momentan habe, token ist geändert:
Internals:
CFGFN
DEF 192.168.178.47 df80c61de67208c107607cb123c991a7
FD 36
FUUID 5e04da62-f33f-df7b-b4ae-c78a125a82ef3827
NAME Luftbefeuchter
NR 50800
STATE on
TYPE XiaomiDevice
hardware MTK7697
mac 04:CF:8C:A6:58:D3
mcu_firmware 1005
model zhimi.humidifier.cb1
token xxxxxxxxxxxxx
wifi_firmware 20180702211408
Helper:
DBLOG:
depth:
DBLogging:
TIME 1577385744.96844
VALUE 106
humidity:
DBLogging:
TIME 1577386042.67045
VALUE 58
speed:
DBLogging:
TIME 1577386042.67045
VALUE 788
temperature:
DBLogging:
TIME 1577385204.76648
VALUE 0
READINGS:
2019-12-26 19:41:25 Mode 0
2019-12-26 19:46:39 buzzer on
2019-12-26 19:46:39 child_lock off
2019-12-26 19:47:22 depth 106
2019-12-26 19:46:30 device_firmware 1.6.3
2019-12-26 19:46:30 device_uptime 3.72
2019-12-26 19:47:22 dry off
2019-12-26 19:47:22 error none
2019-12-26 19:47:22 humidity 58
2019-12-26 19:47:22 laufzeit 6.40
2019-12-26 19:46:39 led dim
2019-12-26 19:46:39 limit_hum 70
2019-12-26 19:47:22 mode auto
2019-12-26 19:47:22 power on
2019-12-26 19:47:22 speed 788
2019-12-26 19:47:22 temperature 0
2019-12-26 19:47:22 trans_level null
2019-12-26 19:46:39 use_time 23057
2019-12-26 17:08:15 wifi_auth_fail_count 0
2019-12-26 17:08:15 wifi_conn_fail_count 0
2019-12-26 17:08:15 wifi_conn_success_count 1
2019-12-26 17:08:15 wifi_dhcp_fail_count 0
2019-12-26 19:46:30 wifi_rssi -42
2019-12-26 17:08:15 wifi_state connecting
helper:
ConnectionState connected
crypt AES
delay 60
dev 07f2
id e9a5
ip 192.168.178.47
last_read 1577386042
packetid 278
port 54321
sequence 1577372599
token xxxxxxxxxxxxxx
packet:
Attributes:
DbLogExclude .*
DbLogInclude depth,humidity,speed,temperature
event-on-change-reading .*
homebridgeMapping On:power,cmdOn=on,cmdOff=off,valueOn=on,valueOff=off
RelativeHumidityHumidifierThreshold:limit_hum,minValue=30,maxValue=80,minStep=1,cmd=limit_hum,delay=1
AudioFeedback:buzzer,cmdOn=buzzer+on,cmdOff=buzzer+off,valueOn=on,valueOff=off
RotationSpeed=speed,minValue=0,maxValue=1000
LockPhysicalControls=child_lock,values=on:CONTROL_LOCK_ENABLED;;off:CONTROL_LOCK_DISABLED,cmds=CONTROL_LOCK_ENABLED:child_lock+on;CONTROL_LOCK_DISABLED:child_lock+off
history:size=1024
intervalData 60
room Heizung,Homekit
stateFormat power
subType Humidifier
userReadings laufzeit {sprintf("%.2f",(ReadingsVal($name,"use_time",0)/3600))}
wenn ich noch weitere infos geben kann, nur zu!:)
edit:
temperatur wird nicht übergeben
wasser füllstand auch nicht
Hallo zusammen,
nach dem Umstieg von Raspbian 9 (Stretch) auf Raspbian 10 (Buster) funktioniert mein "XiaomiDevice" (Roborock S5) in FHEM nicht mehr. Das Gerät verbleibt im STATE "Crypt::Cipher::AES or Crypt::Rijndael_PP is required!". Ich habe versucht sämtliche Tipps in diesem Thread zu berücksichtigen, leider bisher ohne Erfolg. Insbesondere habe ich natürlich
Zitat
sudo cpan Crypt::Rijndael_PP
sudo cpan Crypt::Cipher::AES
durchgeführt und das System neugestartet. Das hat leider nichts am Status geändert.
Das einzige was mir aufgefallen ist, ist dass bei der Installation von libdigest-md5-perl ein neues Problem auftritt:
Zitatsudo apt-get install libdigest-md5-perl
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libdigest-md5-perl is a virtual package provided by:
libperl5.24 5.24.1-3+deb9u5
perl 5.28.1-6
You should explicitly select one to install.
E: Package 'libdigest-md5-perl' has no installation candidate
vielleicht hat es etwas damit zu tun...
Hat jemand noch einen Tipp für mich oder hat vielleicht schon jemand ein XiaomiDevice unter Raspbian 10 laufen?
Roborock hat übrigens die Raumerkennung + Einzelraumreinigung des S6 nun doch noch für den S5 angekündigt:
https://www.ifun.de/roborock-s5-raum-erkennung-und-selektive-reinigung-kommen-147826/
Unser lieber S5 scheint sich damit zum perfekten Modell zu mausern:
Rootfähig und dennoch die wichtigeren Neuerungen des S6. :)
Zitat von: AlphaWhiskey am 28 Dezember 2019, 20:00:44
Hat jemand noch einen Tipp für mich oder hat vielleicht schon jemand ein XiaomiDevice unter Raspbian 10 laufen?
Habs gerade in einer frischen Buster / FHEM Installation probiert. Läuft :)
libdigest-md5-perl sollte nicht das Problem sein, so wie ich das verstehe ist das bei der Installation Perl inklusive.
Will sagen: Das Paket wird bei mir auch nicht installiert - läuft trotzdem alles.
Ich habe nur Crypt::Rijndael_PP installiert
So kannst Du ermitteln ob die Module installiert sind. ;)
s='Crypt::Rijndael_PP'
perl -M$s -e '' 2>/dev/null &&echo "Modul $s installiert"
s='Crypt::Cipher::AES'
perl -M$s -e '' 2>/dev/null &&echo "Modul $s installiert"
s='Digest::MD5'
perl -M$s -e '' 2>/dev/null &&echo "Modul $s installiert"
Gruß Otto
Moin,
auf meinem PI4 mit Buster läuft das genau mit der Lib Crypt::Rijndael_PP einwandfrei.
Gruß Helmut
Vielen Dank Otto und Helmut für die schnellen Antworten. Ich habe es wieder ans Laufen bekommen... typischer Anwenderfehler: Durch den Umstieg auf Buster hat sich in FHEM beim Gerät anscheinend automatisch ein Attribut disabled 1 eingeschlichen und ich hatte nur auf die Statusmeldung "Crypt::Cipher::AES or Crypt::Rijndael_PP is required!" geschaut. Nach der Umstellung auf disabled 0 konnte der Roborock auch wieder kontaktiert werden und die Fehlermeldung ist verschwunden. Sorry und danke für die Hilfe.
Die neue Firmware für den Roborock ...2008 ist über die Flolevac App zu bekommen und bringt die Roborock S6 Funktionen jetzt auch auf den S5.. (z.B Raumerkennung und selektive Reinigung)
Aber ehrlich gesagt, nichts neues dabei für Leute wie uns, die den Robbi bereits mit Zonen usw. in FHEM eingebunden haben ;)
Dafür nochmal ein Danke an Markus M. den Ersteller des Moduls!
Läuft aber bis jetzt vom feinsten 8)
Schade, dass es das nicht für die Gen. 1 gibt, obwohl die HW identisch ist, also an Ressourcenmangel liegt es nicht...
/Daniel
Hallo, ich möchte noch einmal nachfragen, ob sich jemand bzgl. der Einbindung des Xiaomi Mijia Fan 1X annehmen könnte.
Unter https://github.com/YinHangCode/homebridge-mi-fan wurde dieses Modell als DmakerFan in homebridge eingebaut.
Besten Dank
Was geht denn beim 1X nicht?
Bei mir läuft ein etwas älteres Modell und ein 2S. Meine HomebridgeMappings habe ich hier dokumentiert:
https://wiki.fhem.de/wiki/Homebridge_User_Configs
Gruß Hoppel
Der 1x lässt sich problemlos einbinden, ruft auch firmwarestatus und rssi korrekt ab, lässt sich leider überhaupt nicht steuern.
Jeglicher Befehl wird mit "useracktimeout" bestätigt.
Und damit wir uns nicht falsch verstehen, ich möchte nur eine fhem Steuerung erreichen, mit homebridge habe ich nichts vor, der link ist nur zur Verdeutlichung, dass es wohl Unterschiede bzgl. der Ansteuerung der unterschiedlichen Modelle gibt.
Vermutlich muss das Modul für das Gerät erweitert werden weil die Befehle anders sind.
Ich hab dafür nur leider aktuell nicht genug Zeit.
Traut sich jemand einen Patch zu?
Hallo!
Was bewirkten diese Befehle genau?
start_edit_map
end_edit_map
reset_map
use_new_map
use_old_map
get_persist_map
get_fresh_map
Kann ich damit in FHEM die Karte irgendwie speichern und wieder aufrufen?
Ich habe meinen Roborock S55 mit Valetudo geflashed, aber leider stellt er in unterschiedlichen Abständen wieder die original Firmware her. Das scheint wohl noch ein Bug in Valetudo zu sein.
Erneut flashen ist weniger das Problem. Nur leider fehlt ihm danach jedesmal die gespeicherte Karte. Wäre es über die Befehle möglich, die Karte einmalig zu speichern und nach einem Reset wieder einzuspielen?
Ich finde leider keine Beschreibung der Befehle.
Zitat von: swsmily am 20 Januar 2020, 22:20:22
Hallo!
Was bewirkten diese Befehle genau?
start_edit_map
end_edit_map
reset_map
use_new_map
use_old_map
get_persist_map
get_fresh_map
Kann ich damit in FHEM die Karte irgendwie speichern und wieder aufrufen?
Ich habe meinen Roborock S55 mit Valetudo geflashed, aber leider stellt er in unterschiedlichen Abständen wieder die original Firmware her. Das scheint wohl noch ein Bug in Valetudo zu sein.
Erneut flashen ist weniger das Problem. Nur leider fehlt ihm danach jedesmal die gespeicherte Karte. Wäre es über die Befehle möglich, die Karte einmalig zu speichern und nach einem Reset wieder einzuspielen?
Ich finde leider keine Beschreibung der Befehle.
Hast du beim Erzeugen der Valetudo-FW die "Option" FW-Update verhindern eingestellt?
(bzw. es wird glaube ich "nur" der Pfad zum "Krypto-Executable" "verbogen")
Karte speichern und zurückspielen geht auch so: https://forum.fhem.de/index.php/topic,101197.msg946535.html#msg946535
Gruß, Joachim
Das sind die Befehle für die virtuellen Begrenzungen und Zonen des S5.
Mangels passendem Staubsauger kann ich euch nicht sagen was sie genau bewirken oder woher ihr die passenden Parameter bekommt.
Zitat von: MadMax-FHEM am 20 Januar 2020, 22:45:16
Hast du beim Erzeugen der Valetudo-FW die "Option" FW-Update verhindern eingestellt?
(bzw. es wird glaube ich "nur" der Pfad zum "Krypto-Executable" "verbogen")
Karte speichern und zurückspielen geht auch so: https://forum.fhem.de/index.php/topic,101197.msg946535.html#msg946535
Gruß, Joachim
Die FW hab ich selbst erstellt nach Anleitung auf Github von Valetudo.
Das Problem ist dort auch bereits bekannt, aber noch keine Lösung vorhanden. Außer - wieder mit original Firmware betreiben. Aber ich hab den Robo lieber Cloudfree.
Das mit dem Karte speichern hab ich schon gelesen, aber läuft über MQTT. Ich hab es mal getestet, aber kam damit absolut nicht klar. Es entstanden nur riesen Readings, FHEM hing teilweise, daher hab ich das nicht weiter verfolgt.
Bin nur heute nachdem der Robo nach 2 Monaten wieder einen Reset durchgeführt hat auf die genannten Befehle gestoßen und dachte sie könnten evtl. helfen ohne über MQTT des Robos die Karte zu speichern und wiederherzustellen.
Hmmm, also ich hab gelesen, dass (wie geschrieben) "nur" die ausführbare Datei, die eben die "Echtheit" der FW prüft "verbogen" wird.
Dadurch kann der Update-Mechanismus nicht prüfen, dass/ob die FW original ist und somit wird wohl der Update verhindert...
Mal sehen vielleicht finde ich das noch wo...
EDIT: https://github.com/dgiese/dustcloud/wiki/VacuumRobots-disableUpdates
Ansonsten kannst du die map-Dateien auch "einfach" per ssh kopieren...
In etwa so:
scp root@IP-des-Saugers:/mnt/data/rockrobo/last_map ./mapname-der-sicherung-lokal
Das habe ich für mich für meinen V1 mal so abgelegt.
Funktioniert.
Map sichern...
Bei Bedarf zurückspielen (dann halt "umgekehrt" ;) ) und den Sauger durchbooten (oder den player-Prozess killen)...
Beim S5 gibt es noch weitere Dateien die gesichert werden können/müssen...
...sollte aber dem verlinkten Beitrag zu entnehmen sein.
Gruß, Joachim
Hallo,
ich habe vorgestern meinen Roborock S50 auf Firmware 3.5.7_002008 upgedatet und seitdem wird er in FHEM als disconnected angezeigt. Habt ihr da einen Tipp für mich? Vor dem Update war die Einbindung in FHEM stabil und funktionierte.
Gruß Frank
Komisch, mein S50 lief nach dem Einspielen von 2008 in FHEM ganz normal weiter.
IP Adresse passt noch?
Danke. Die IP-Adresse hatte sich wirklich geändert.
Zitat von: Frank77 am 21 Januar 2020, 12:02:18
Danke. Die IP-Adresse hatte sich wirklich geändert.
Hier sind ,,fest zugewiesene DHCP IPs" sinnvoll. ;)
Gruß Hoppel
Gesendet von iPhone mit Tapatalk Pro
Hallo,
leider ist für meinen S50 immer noch kein Firmwareupdate angekommen (bin noch auf 3.3.9_001886).
Kennt jemand eine Möglichkeit das Update manuell durchzuführen?
Zitat von: Loki am 23 Januar 2020, 15:12:17
Hallo,
leider ist für meinen S50 immer noch kein Firmwareupdate angekommen (bin noch auf 3.3.9_001886).
Kennt jemand eine Möglichkeit das Update manuell durchzuführen?
Wenn du dir die Seiten bzgl. "Rooten" ansiehst und dir das flasher.py holst und von den dort zu findenden Links die gewünschte Original-FW runter lädst (und dann den Schritt: "ich baue bzw. passe an meine eigene FW" auslässt) und die dann mit dem flasher.py lädst sollte das gehen.
Da er in fhem integriert ist, hast du ja den Token, den brauchst du...
(ansonsten Sauger zurücksetzen, dann geht flashen auch ohne Token)
Gruß, Joachim
Oder man installiert sich FloleVac aufm Handy, dann kann man auch ohne rooten das Update einspielen.
Zitat von: KyleK am 23 Januar 2020, 23:19:44
Oder man installiert sich FloleVac aufm Handy, dann kann man auch ohne rooten das Update einspielen.
Hat bei mir auch funktioniert!!
Hej,
was bedeutet das Reading
in_fresh_state
Vielen Dank
Thoffi
Zitat von: docb am 13 Juni 2018, 15:29:49
OH MEIN GOTT - Problem gelöst - falls nochmal jemand so auf dem Schlauch steht - nach der Installation der Pakete einfach mal das Device wieder enablen (attr disable 0) - dann wird es nämlich wieder aktiv, prüft auf die Pakete und erkennt, das sie da sind ;)
Mir ging es jetzt genau so ;) bin auch über das disable = 1 drüber gestolpert - auf 0 gestzt und alles ist gut und wieder normal :)
Ich versuche gerade bin_full im Google Assistant richtig zu verarbeiten. Ziel ist es, dass Google Assistant bei "starte den Saugroboter" sagt, dass der Staubbehaelter voll ist.
Nun habe ich das Problem, dass der Wert von event=bin_full sich nie mehr aendert, ausser es kommt noch ein anderer Fehler rein. Ich habe nun mal genauer analysiert wann der event=bin_full kommt. Das passiert nur wenn der Saugroboter gestartet wird.
Das bedeutet, dass wenn der Saugroboter gestartet wird und das event=bin_full NICHT kommt, der Staubbehaelter wieder leer ist.
Koennte man das bitte im Modul mit integrieren? Also wenn START an den Saugroboter geschickt wird und die Antwort kein event enthaelt, der Staubbehaelter auf leer gesetzt wird? Ich denke es waere dann sogar sinnvoll ein eigenes Reading binFull zu haben um nicht andere Events zu beeinflussen.
//Edit
Ich denke man koennte in folgender Zeile:
https://github.com/mhop/fhem-mirror/blob/master/fhem/FHEM/72_XiaomiDevice.pm#L2471
pruefen ob in_cleaning vorher no war und danach yes. Wenn das der Fall ist und kein event kam, ist der Staubbehaelter garantiert leer.
Zuerst einmal Danke für Eure stetige Weiterentwicklung! Ich lese hier gerne mit, auch wenn ich wenig aktiv bin. Eine kurze Frage beschäftigt mich dennoch:
Hat schon jemand den Air Purifier 3H eingebunden und kann sagen, ob das Modul dieses Gerät unterstützt? Ich würde gern einen kaufen, wenn er sich in FHEM integrieren lässt.
Hallo zusammen.
@andlor Ich habe bei mir einen Airpurifier 3H stehen.
Leider funktioniert hier nahezu kein Befehl, bis auf get device_info. Ansonsten gibt es immer einen commanderror.
2020.02.24 10:58:10 4: Airpurifier: write {"id":358,"method":"set_led_b","params":[1]} (44)
2020.02.24 10:58:10 5: Airpurifier: send 213100500000000010db307d000393ae90dc41ebb7839b87f5fb681ae215f92aa32e1d2ff1dd44caa25f1f8bf5429f91efde1aa48126dd053198345f948fe30613ff8f0eb797ddc316263d351819c312
2020.02.24 10:58:10 5: Airpurifier Send SUCCESS
2020.02.24 10:58:10 5: Airpurifier > 213100500000000010db307d000393ae90dc41ebb7839b87f5fb681ae215f92aa32e1d2ff1dd44caa25f1f8bf5429f91efde1aa48126dd053198345f948fe30613ff8f0eb797ddc316263d351819c312
2020.02.24 10:58:10 5: Airpurifier < 213100600000000010db307d000393af2ea14ac2d3a291f3ae1079ec4ce997090e5af2f981c5eeb81b2f30e27c113043ee86a36f6346561e1b5c43a310aaa2e288aade0f64e05fd84c511310106af66311321aca93cb65a35ad525a0949eec1b (96)
2020.02.24 10:58:10 5: Airpurifier: decrypted
{"id":358,"error":{"code":-5001,"message":"command error"}}
2020.02.24 10:58:10 5: Airpurifier: parse id 358
$VAR1 = {
'id' => 358,
'error' => {
'code' => -5001,
'message' => 'commanderror'
}
};
2020.02.24 10:58:10 4: Airpurifier: parse id 358 / led_dim
2020.02.24 10:58:10 4: Airpurifier: msg ref is
2020.02.24 10:58:44 4: Airpurifier: write {"id":359,"method":"set_power","params":["off"]} (48)
2020.02.24 10:58:44 5: Airpurifier: send 213100600000000010db307d000393d18d0db07598fbf93bfe8868ce9e07dcb2b39cdcaff5946f9f0ba035218811c9e0b14c876f318d3e3f0ab5a436d553014a216f34917c8aa50b5b91a25b3efe6ce1426703f6c5bced23095c9175368edacb
2020.02.24 10:58:44 5: Airpurifier Send SUCCESS
2020.02.24 10:58:44 5: Airpurifier > 213100600000000010db307d000393d18d0db07598fbf93bfe8868ce9e07dcb2b39cdcaff5946f9f0ba035218811c9e0b14c876f318d3e3f0ab5a436d553014a216f34917c8aa50b5b91a25b3efe6ce1426703f6c5bced23095c9175368edacb
2020.02.24 10:58:45 5: Airpurifier < 213100600000000010db307d000393d1cd71d7d2330b2b2cbe4c3b64fa097802ca6aac244527946503938d16168fd78b33bd11cd332201aec944b7605687af8d2c7533059a0c6cb552c5f6e7e66c2afaee28fe34d28464375b72786f5ede9b9a (96)
2020.02.24 10:58:45 5: Airpurifier: decrypted
{"id":359,"error":{"code":-5001,"message":"command error"}}
2020.02.24 10:58:45 5: Airpurifier: parse id 359
$VAR1 = {
'error' => {
'code' => -5001,
'message' => 'commanderror'
},
'id' => 359
};
2020.02.24 10:58:45 4: Airpurifier: parse id 359 / power_off
2020.02.24 10:58:45 4: Airpurifier: msg ref is
2020.02.24 10:58:47 4: Airpurifier: write {"id":360,"method":"get_prop","params":["power","mode","motor1_speed","temp_dec","humidity","aqi","average_aqi","favorite_level","use_time","purify_volume","filter1_life","f1_hour_used","f1_hour","button_pressed","motor2_speed"]} (229)
2020.02.24 10:58:47 5: Airpurifier: send 213101100000000010db307d000393d37e157cd295ac2cc5709633fd04e0b3baa9e242b224aa62d7d2d9c108334221fb47615f7e00c6fad3d34159341b96eda38c15211b18bdb8a5373d4c003548737c0b09dbdcb7a7a7a2c7cad4780690288322c76c99043b21fe762aa8375b6329b5e53c0c06a75c342a8d12bb5159413f3d493944584e39397d2a2cb4786b358196cf89134bad68ff8ec18041c5e3e8ca4ac67ba997bac0acf754db6b14b69c15442056daf715a2c50e131bac6914704e2907d5a7866cf408254af593ae8798ae41b7b55a1ac3fe34ef4eef466b20620b392b308356bfdbac5387023c4488853b28f183103d5f71eb9ec8068c4cf132603e9664d6aa9f9be79de639d7a8fe74a216
2020.02.24 10:58:47 5: Airpurifier Send SUCCESS
2020.02.24 10:58:47 5: Airpurifier > 213101100000000010db307d000393d37e157cd295ac2cc5709633fd04e0b3baa9e242b224aa62d7d2d9c108334221fb47615f7e00c6fad3d34159341b96eda38c15211b18bdb8a5373d4c003548737c0b09dbdcb7a7a7a2c7cad4780690288322c76c99043b21fe762aa8375b6329b5e53c0c06a75c342a8d12bb5159413f3d493944584e39397d2a2cb4786b358196cf89134bad68ff8ec18041c5e3e8ca4ac67ba997bac0acf754db6b14b69c15442056daf715a2c50e131bac6914704e2907d5a7866cf408254af593ae8798ae41b7b55a1ac3fe34ef4eef466b20620b392b308356bfdbac5387023c4488853b28f183103d5f71eb9ec8068c4cf132603e9664d6aa9f9be79de639d7a8fe74a216
2020.02.24 10:58:47 5: Airpurifier < 213100600000000010db307d000393d4aa605e0e86d6529fb6ee6c4f95b85e1ef62b1b862eebb4ad4ebd9158685d1def494762faba40136c15837a54fa663a215e6cf0e98f5278f5fad29b9659997728eace1785f4f819c3f12d0a513553a89e (96)
2020.02.24 10:58:47 5: Airpurifier: decrypted
{"id":360,"error":{"code":-5001,"message":"command error"}}
2020.02.24 10:58:47 5: Airpurifier: parse id 360
$VAR1 = {
'error' => {
'message' => 'commanderror',
'code' => -5001
},
'id' => 360
};
2020.02.24 10:58:47 4: Airpurifier: parse id 360 / air_data
2020.02.24 10:58:47 4: Airpurifier: msg ref is
2020.02.24 10:58:54 4: Airpurifier: write {"id":361,"method":"get_prop","params":["power","mode","motor1_speed","favorite_level","motor2_speed"]} (103)
2020.02.24 10:58:54 5: Airpurifier: send 213100900000000010db307d000393db8345d7199ccec0215dc928942181e1c22902dc98f4a9b743b77bfff211df1e05b94b942ccc4a98e1676b34e43a3d903e1c989fffd259cd6f8f49bfb93f263b7c44c9ba6d3fff557d14e39198231599f884cf1313edf95aea1e163befbd5641ba43977f51702630a8d844dd447778bfc9a308f0aa945a2c7b322068a29c83e0fb
2020.02.24 10:58:54 5: Airpurifier Send SUCCESS
2020.02.24 10:58:54 5: Airpurifier > 213100900000000010db307d000393db8345d7199ccec0215dc928942181e1c22902dc98f4a9b743b77bfff211df1e05b94b942ccc4a98e1676b34e43a3d903e1c989fffd259cd6f8f49bfb93f263b7c44c9ba6d3fff557d14e39198231599f884cf1313edf95aea1e163befbd5641ba43977f51702630a8d844dd447778bfc9a308f0aa945a2c7b322068a29c83e0fb
2020.02.24 10:58:55 5: Airpurifier < 213100600000000010db307d000393dbd3e7f8a830ae0cb849b31167750d74d67bce407e9ec449146542a96cf0dfcca66d39092c2f77d802d491d6f73e39d969dd7be494ec40455dc1a7c288df2eefb950691e2b7b6d67cb7573040f9c303fdb (96)
2020.02.24 10:58:55 5: Airpurifier: decrypted
{"id":361,"error":{"code":-5001,"message":"command error"}}
2020.02.24 10:58:55 5: Airpurifier: parse id 361
$VAR1 = {
'error' => {
'message' => 'commanderror',
'code' => -5001
},
'id' => 361
};
2020.02.24 10:58:55 4: Airpurifier: parse id 361 / air_status
2020.02.24 10:58:55 4: Airpurifier: msg ref is
2020.02.24 10:59:08 4: Airpurifier: write {"id":362,"method":"set_app_extra","params":[1]} (48)
2020.02.24 10:59:08 5: Airpurifier: send 213100600000000010db307d000393e897050f637c66ad5320b8b6f7290f7633ad1f54bf9f920087b3064fc31d093548e5b9b8a0db54ea72cfd392927c1f5e203f34f78cccd94cee350b9f6fdd2aaa35196d9a2092e245b2c6c3f092f1683ae3
2020.02.24 10:59:08 5: Airpurifier Send SUCCESS
2020.02.24 10:59:08 5: Airpurifier > 213100600000000010db307d000393e897050f637c66ad5320b8b6f7290f7633ad1f54bf9f920087b3064fc31d093548e5b9b8a0db54ea72cfd392927c1f5e203f34f78cccd94cee350b9f6fdd2aaa35196d9a2092e245b2c6c3f092f1683ae3
2020.02.24 10:59:09 5: Airpurifier < 213100600000000010db307d000393e9db59a3943eaabeb7c6390963119ddb115629585a17cfc2756ef7409c69d3d769c5614b6f643e4e4f9030c3fe494af16a1370b132c33b9a250615bc7fcae274b17a4540643b9e3691be7620d46bab8506 (96)
2020.02.24 10:59:09 5: Airpurifier: decrypted
{"id":362,"error":{"code":-5001,"message":"command error"}}
2020.02.24 10:59:09 5: Airpurifier: parse id 362
$VAR1 = {
'error' => {
'message' => 'commanderror',
'code' => -5001
},
'id' => 362
};
2020.02.24 10:59:09 4: Airpurifier: parse id 362 / turbo_on
2020.02.24 10:59:09 4: Airpurifier: msg ref is
2020.02.24 11:03:47 4: Airpurifier: write {"id":363,"method":"get_prop","params":["power","mode","motor1_speed","temp_dec","humidity","aqi","average_aqi","favorite_level","use_time","purify_volume","filter1_life","f1_hour_used","f1_hour","button_pressed","motor2_speed"]} (229)
2020.02.24 11:03:47 5: Airpurifier: initSend
2020.02.24 11:03:47 5: Airpurifier Send SUCCESS
2020.02.24 11:03:47 5: Airpurifier > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.02.24 11:03:47 5: Airpurifier: send 213101100000000010db307d000394ff39577da7d815ed8028aec76c265bdde5bf046a16e674f2f7fe79c783ab4390124ca3d7b2f0917400149818f82ad1aa4d26160b5382cf3d0b7f792a1279ecd274159c656aaafe831df5f9b34e6dcebfb9d5d76006bc0ca0d0848c117c1849fa8af3ca17470e46f6e8a97dd463e8e5b935a6f7a79115599795c7b873240389df476ceca37a580e3e88fc419e8f1ca78d2429fafa92ede993e623a19f250a325368ffb17ccc6b2485c60509cb2c008a1537cb0f830cc497a1116203c51450a5cbc052a1c625cceaf54794bf7cedd7f0a548911463d89127846426dfd9ce443302d9c7c2b7510a43441284696f5b270fa448c88c47d396095400a7add23f68a752df
2020.02.24 11:03:47 5: Airpurifier Send SUCCESS
2020.02.24 11:03:47 5: Airpurifier > 213101100000000010db307d000394ff39577da7d815ed8028aec76c265bdde5bf046a16e674f2f7fe79c783ab4390124ca3d7b2f0917400149818f82ad1aa4d26160b5382cf3d0b7f792a1279ecd274159c656aaafe831df5f9b34e6dcebfb9d5d76006bc0ca0d0848c117c1849fa8af3ca17470e46f6e8a97dd463e8e5b935a6f7a79115599795c7b873240389df476ceca37a580e3e88fc419e8f1ca78d2429fafa92ede993e623a19f250a325368ffb17ccc6b2485c60509cb2c008a1537cb0f830cc497a1116203c51450a5cbc052a1c625cceaf54794bf7cedd7f0a548911463d89127846426dfd9ce443302d9c7c2b7510a43441284696f5b270fa448c88c47d396095400a7add23f68a752df
2020.02.24 11:03:47 5: Airpurifier < 213100200000000010db307d00039500ffffffffffffffffffffffffffffffff (32)
2020.02.24 11:03:48 5: Airpurifier < 213100600000000010db307d000395007a60964b93172371189ef02ade3d7d86fb93406f390be44aeb3c8719199a0db134905bee9078f01f59fe0691fe99d6b2199620eab768346c6f505ba446e0e34f56afd09c1e2fec3d684879d45c9814ea (96)
2020.02.24 11:03:48 5: Airpurifier: decrypted
{"id":363,"error":{"code":-5001,"message":"command error"}}
2020.02.24 11:03:48 5: Airpurifier: parse id 363
$VAR1 = {
'id' => 363,
'error' => {
'code' => -5001,
'message' => 'commanderror'
}
};
2020.02.24 11:03:48 4: Airpurifier: parse id 363 / air_data
2020.02.24 11:03:48 4: Airpurifier: msg ref is
2020.02.24 11:03:58 4: Airpurifier: write {"id":364,"method":"get_prop","params":["power","mode","motor1_speed","temp_dec","humidity","aqi","average_aqi","favorite_level","use_time","purify_volume","filter1_life","f1_hour_used","f1_hour","button_pressed","motor2_speed"]} (229)
2020.02.24 11:03:58 5: Airpurifier: send 213101100000000010db307d0003950a8bccf1db362a97ed40d6e9c085d7be134cea61047047997950efe1631c3c75ba57dfbe752ae15f8ca06d7616e5ba1faf099e9cd4d132db3968666b6984d663276e57aa15da17347934ccd09c3c19b393fe31257e5910af5df6850e3706a66512f7a7bf7c3d5ae4aa551d32bcbd56eca9d0c773c18501e8b13ae256cd665dbe8d77823796dc56ce92f5c61b64d616359b46e80f897fbecacfa5b35fd1e85354efaf707093b90d4a84f93a7dcbbe0bcd9d71d097fb44e3f165ba660a5d61f7243b13f9e031d7197571d8dbee64ce0ab2e3b05c5e7d73003e5ddff799aa22c97e4050f1b9a6426e0cd543064dfa02d3ea4e65734e5bd321b5e92f22e6abb51054a3
2020.02.24 11:03:58 5: Airpurifier Send SUCCESS
2020.02.24 11:03:58 5: Airpurifier > 213101100000000010db307d0003950a8bccf1db362a97ed40d6e9c085d7be134cea61047047997950efe1631c3c75ba57dfbe752ae15f8ca06d7616e5ba1faf099e9cd4d132db3968666b6984d663276e57aa15da17347934ccd09c3c19b393fe31257e5910af5df6850e3706a66512f7a7bf7c3d5ae4aa551d32bcbd56eca9d0c773c18501e8b13ae256cd665dbe8d77823796dc56ce92f5c61b64d616359b46e80f897fbecacfa5b35fd1e85354efaf707093b90d4a84f93a7dcbbe0bcd9d71d097fb44e3f165ba660a5d61f7243b13f9e031d7197571d8dbee64ce0ab2e3b05c5e7d73003e5ddff799aa22c97e4050f1b9a6426e0cd543064dfa02d3ea4e65734e5bd321b5e92f22e6abb51054a3
2020.02.24 11:03:59 5: Airpurifier < 213100600000000010db307d0003950bc6bdd4c93eb824758a99e9bea43e7ee00e81354070af1a35e52fbf76c9df7bcce860a7dcb98a9e1da731a73908345f07681be9137d06444c0a7c1f4d19b73a3e98631f426065011e0e63a1bf11c02fef (96)
2020.02.24 11:03:59 5: Airpurifier: decrypted
{"id":364,"error":{"code":-5001,"message":"command error"}}
2020.02.24 11:03:59 5: Airpurifier: parse id 364
$VAR1 = {
'id' => 364,
'error' => {
'code' => -5001,
'message' => 'commanderror'
}
};
2020.02.24 11:03:59 4: Airpurifier: parse id 364 / air_data
2020.02.24 11:03:59 4: Airpurifier: msg ref is
2020.02.24 11:04:04 4: Airpurifier: write {"id":365,"method":"miIO.info","params":[""]} (45)
2020.02.24 11:04:04 5: Airpurifier: send 213100500000000010db307d00039510456fea4aa8825ffd5ba25325ffe8fe440d8c6f5eec3cbcb993253f0ef25daf2e165bfd8a1bbaea14d408efde9f48fde4440b8c4c2709fdcec0ca2a1a9e719852
2020.02.24 11:04:04 5: Airpurifier Send SUCCESS
2020.02.24 11:04:04 5: Airpurifier > 213100500000000010db307d00039510456fea4aa8825ffd5ba25325ffe8fe440d8c6f5eec3cbcb993253f0ef25daf2e165bfd8a1bbaea14d408efde9f48fde4440b8c4c2709fdcec0ca2a1a9e719852
2020.02.24 11:04:04 5: Airpurifier < 213101e00000000010db307d00039510de5ed1afb369c86476bfa6c4d01c81a725c4f0a629ca3c38cc6ffc7ab207f64d2a7e3cf75fb0fd1891f21ffbaf7983b24982fe70a55546f53fe80920b0ce29fb7a842bab662cca3ee59ec3742aa7abaf1939f293e3f352b1124f056d32f4cbcda6f1481c9e9bd4af1e601c4ef59adb821656919defaba5a73d41a2889ba5627b628d3e32f7c28dacd53fd44df7cf179460ae2a72b72c86ec374780ca6fd2fcacc1e3bd0250bda99f44d1c23af3e61a39ccc4a1eed606a4548686eedbb9d26b22b3907d8932654d6d3c2f0f9263306002e919d934b673e1b256694495939e1f281fecb1af9df14499549d993cdd4b9a6dfb93873a8396d391f8c08744a232b7700c058f53ef6a2edc90252a260705a589512b6cafec9400f472d815d7306c1a448da5ba54aff90b835015af92cfe71a105f0474e13f1dc5b67c560308c967df8b529c893b3e8dc10bd3367036afa4e6039eeb4960c1c2309130786ccb85fc35cb4fc0d8845e512f823a2b4488617052eb636be7c5f0cd4c59e5908a3e89e5c758364325be5808e010a4206ae9bdac6e5be5554e5c4e948d1d506c3143830c71b3b68e35556a32daaa2e084c4f98fb5dccaff6f758b2ece32f72b987ac825acad9ee4522f236c1ccae51d5fa302d545438 (480)
2020.02.24 11:04:04 5: Airpurifier: decrypted
{"id":365,"result":{"life":234768,"uid":1863169033,"model":"zhimi.airpurifier.mb3","token":"XXXXXXXXX","fw_ver":"2.0.5","mcu_fw_ver":"0009","miio_ver":"0.0.5","hw_ver":"esp32","mmfree":65792,"mac":"44:23:7C:34:2C:34","wifi_fw_ver":"v3.1.4-56-g8ffb04960","ap":{"ssid":"wifi_home_2","bssid":"34:31:C4:7F:95:A5","rssi":-42,"primary":1},"netif":{"localIp":"192.168.2.233","mask":"255.255.255.0","gw":"192.168.2.33"}}}
2020.02.24 11:04:04 5: Airpurifier: parse id 365
$VAR1 = {
'id' => 365,
'result' => {
'miio_ver' => '0.0.5',
'model' => 'zhimi.airpurifier.mb3',
'uid' => 1863169033,
'token' => 'XXXXXXXX',
'wifi_fw_ver' => 'v3.1.4-56-g8ffb04960',
'mmfree' => 65792,
'netif' => {
'localIp' => '192.168.2.233',
'gw' => '192.168.2.33',
'mask' => '255.255.255.0'
},
'mac' => '44:23:7C:34:2C:34',
'life' => 234768,
'fw_ver' => '2.0.5',
'mcu_fw_ver' => '0009',
'ap' => {
'primary' => 1,
'ssid' => 'wifi_home_2',
'bssid' => '34:31:C4:7F:95:A5',
'rssi' => -42
},
'hw_ver' => 'esp32'
}
};
2020.02.24 11:04:04 4: Airpurifier: parse id 365 / device_info
2020.02.24 11:04:04 4: Airpurifier: msg ref is HASH
2020.02.24 11:04:15 4: Airpurifier: write {"id":366,"method":"get_prop","params":["buzzer","led_b","child_lock","app_extra","act_sleep","sleep_time","volume","rfid_product_id","rfid_tag"]} (146)
2020.02.24 11:04:15 5: Airpurifier: send 213100c00000000010db307d0003951b30a538474388905b1ba1d79e2d1623c02dd6635d6d1a710221d08ad74e9a84f9919474480df58f97e2e8ac9c05703d2856577951fb0b4a65d7c8874f4c03ab7adce1900163c1c4f0c6af09b3ab2aca3aed75624afce683678196ae7e9c8e6fb9e94e00d33dfbc56a657ac2738f46affce1b8a655a879802f5c07bbfc8411c0d93f24f626dc38d7fa0876154837f5c88707565e4113558d54577f3084bcbd4979e5c1c5c270fac4dc0b74cb5362420005
2020.02.24 11:04:15 5: Airpurifier Send SUCCESS
2020.02.24 11:04:15 5: Airpurifier > 213100c00000000010db307d0003951b30a538474388905b1ba1d79e2d1623c02dd6635d6d1a710221d08ad74e9a84f9919474480df58f97e2e8ac9c05703d2856577951fb0b4a65d7c8874f4c03ab7adce1900163c1c4f0c6af09b3ab2aca3aed75624afce683678196ae7e9c8e6fb9e94e00d33dfbc56a657ac2738f46affce1b8a655a879802f5c07bbfc8411c0d93f24f626dc38d7fa0876154837f5c88707565e4113558d54577f3084bcbd4979e5c1c5c270fac4dc0b74cb5362420005
2020.02.24 11:04:16 5: Airpurifier < 213100600000000010db307d0003951ca4e51b63cd5076c368dd833a452736dd66b2ae11530e32d43634dc39509c316768aa2fd417ca8062dfee111269561d30b4a74b525f2d5bf81dc9347e6f84edbbee5a98c0b8c70a0adaf8e73b57291081 (96)
2020.02.24 11:04:16 5: Airpurifier: decrypted
{"id":366,"error":{"code":-5001,"message":"command error"}}
2020.02.24 11:04:16 5: Airpurifier: parse id 366
$VAR1 = {
'error' => {
'message' => 'commanderror',
'code' => -5001
},
'id' => 366
};
2020.02.24 11:04:16 4: Airpurifier: parse id 366 / air_settings
2020.02.24 11:04:16 4: Airpurifier: msg ref is
2020.02.24 11:04:23 4: Airpurifier: write {"id":367,"method":"miIO.wifi_assoc_state","params":[""]} (57)
2020.02.24 11:04:23 5: Airpurifier: send 213100600000000010db307d00039523ed14d745ae77ddf2a4b2a221379307d20e33f5af9580a745208658a23887b7843abcd6532b3285312e06ac9fbc0fb2c02caa1c14e500dcf61a83ef030de7c7bb313239d5e5ff9b6b534928c34b16e36c
2020.02.24 11:04:23 5: Airpurifier Send SUCCESS
2020.02.24 11:04:23 5: Airpurifier > 213100600000000010db307d00039523ed14d745ae77ddf2a4b2a221379307d20e33f5af9580a745208658a23887b7843abcd6532b3285312e06ac9fbc0fb2c02caa1c14e500dcf61a83ef030de7c7bb313239d5e5ff9b6b534928c34b16e36c
2020.02.24 11:04:23 5: Airpurifier < 213100600000000010db307d0003952476026719ddf3f0836837d50f7e17350b98a18c2464a6c146357eaf6412cb70687b4e7ddd6125a30e4973f53acec0ee943a9813fa4b70877cbda64b4cd2ddc3f68308a94ea0d7d8b4b920ae89e3d6ce8c (96)
2020.02.24 11:04:24 5: Airpurifier: decrypted
{"id":367,"error":{"code":-5001,"message":"command error"}}
2020.02.24 11:04:24 5: Airpurifier: parse id 367
$VAR1 = {
'id' => 367,
'error' => {
'code' => -5001,
'message' => 'commanderror'
}
};
2020.02.24 11:04:24 4: Airpurifier: parse id 367 / wifi_stats
2020.02.24 11:04:24 4: Airpurifier: msg ref is
2020.02.24 11:04:31 4: Airpurifier: write {"id":368,"method":"miIO.wifi_assoc_state","params":[""]} (57)
2020.02.24 11:04:31 5: Airpurifier: send 213100600000000010db307d0003952c97ad2cffb52bc55f02e0442d17e4bc1d03e4c2b3df79b2a2ddc1ae216c95aa53e7a1ffe8195b6a26a06538858280cf757df770efcbdbd968cb7119b93e0c80dffc2be67a8f06139c2d5a55ca1ad2dd96
2020.02.24 11:04:31 5: Airpurifier Send SUCCESS
2020.02.24 11:04:31 5: Airpurifier > 213100600000000010db307d0003952c97ad2cffb52bc55f02e0442d17e4bc1d03e4c2b3df79b2a2ddc1ae216c95aa53e7a1ffe8195b6a26a06538858280cf757df770efcbdbd968cb7119b93e0c80dffc2be67a8f06139c2d5a55ca1ad2dd96
2020.02.24 11:04:31 5: Airpurifier < 213100600000000010db307d0003952c248b5e801a9f4cb4fdb61afdf3f8e9a3577128b240e850f26fa4cdf75e29d06d31bf0a4ad37daaf0a67b4af07643700ab5416b5a31cb56b251f0c4c4220a41fdb3d146329cde9155ab46d6f0ad5494a5 (96)
2020.02.24 11:04:31 5: Airpurifier: decrypted
{"id":368,"error":{"code":-5001,"message":"command error"}}
2020.02.24 11:04:31 5: Airpurifier: parse id 368
$VAR1 = {
'id' => 368,
'error' => {
'code' => -5001,
'message' => 'commanderror'
}
};
2020.02.24 11:04:31 4: Airpurifier: parse id 368 / wifi_stats
2020.02.24 11:04:31 4: Airpurifier: msg ref is
Hier noch einmal ein list
Internals:
DEF 192.168.2.233 XXXXXXXXXXX
FD 105
FUUID 5e4e3c01-f33f-f6aa-03d6-cf2e15c8b4789ce3
NAME Airpurifier
NR 1322
STATE connected
TYPE XiaomiDevice
hardware esp32
mac 44:23:7C:34:2C:34
mcu_firmware 0009
model zhimi.airpurifier.mb3
token XXXXXXXXX
wifi_firmware v3.1.4-56-g8ffb04960
READINGS:
2020-02-23 10:27:56 buzzer off
2020-02-24 11:04:04 device_firmware 2.0.5
2020-02-24 11:04:04 device_uptime 65.21
2020-02-24 11:04:31 error commanderror
2020-02-24 10:58:10 led dim
2020-02-23 13:10:55 mode silent
2020-02-24 10:58:45 power off
2020-02-23 23:10:26 state connected
2020-02-24 10:59:09 turbo on
2020-02-24 11:04:04 wifi_rssi -42
helper:
ConnectionState connected
crypt Rijndael
delay 60
dev 10db
id 307d
ip 192.168.2.233
last_read 1582538671
packetid 369
port 54321
sequence 1582303875
token XXXXXXXXXXX
packet:
1 set_level_favorite
201 air_data
Attributes:
disable 0
icon Ventilator_wind
room Wohnzimmer
subType AirPurifier
verbose 5
Ist es irgendwann noch geplant die Daten von der Induktionsplatte abrufen zu können?
Hallo zusammen, hallo Jiggi,
ich hab mich jetzt hinreißen lassen und hab nun auch einen Air Purifier 3H daheim. Jiggi's Aussage kann ich so bestätigen, der Air Purifier 3H lässt sich aktuell nicht sinnvoll einbinden. Die Alternative iPhone Xiaomi App gibt zwar ein paar Möglichkeiten zur Automation, in FHEM wäre das natürlich aber besser aufgehoben.
Meine Frage deshalb an die Entwickler: Vielleicht kann das Modul ausgehend vom Air Purifier 2 ja relativ leicht adaptiert werden? Was kann ich tun, um euch bei der Prüfung einer Anpassung des Moduls zu unterstützen?
hi zusammen,
ggf. bin ich hier OT, weiss aber sonst nicht wirklich wohin damit.
Kennt sich einer mit der Zonenreinigung des s50 aus ? Ich verzweifel hier bald.
Stand ist :
ich habe in einem grosssen Raum 4 Punkte definiert, die ein rechteck ergeben. Jeden dieser Punkte kann ich über entsprechendes Kommando anfahren. Jetzt möchte ich gerne dieses rechteck als Zone einrichten und bekomme es nicht hin.
kann mir ggf hier einer unter die arme greifen ?
wenn ich gegenüber der ladestation stehe sind die punkte wie folgt:
oben links 23500/25000
unten links 23500/22000
oben rechts 24000/25000
unten rechts 24000/22000
egal wie es es angebe, ... der s50 fährt sonstwohin .
danke im voraus
gruss Byte09
edit: aos FloleVac kann ich die daten leider nicht holen , da ich hier keine karte geladen bekommen
Ich mache das über die Flole-App...
Zone einzeichnen, lange auf den "Zonereinigen-Startknopf" drücken, dann hast du genau diese Koordinaten fertig zur Verwendung im "Zwischenspeicher"...
Ich schicke mir die dann per Mail, mache die Koordinaten "etwas glatt" und trage sie als Zonen-Attribut ein...
Ansonsten musst du von den Punkten wohl jeweils eine Koordinate weglassen...
Weil die Zone nicht 4 Punkte sind, sondern ein Rechteck mit jeweils 2 Punkten.
Also: [links oben X, links oben Y, rechts unten X, rechts unten Y, Anzahl Ausführungen]
(bzgl. "links oben/rechts unten" müsste ich nachsehen, hab ich mir wo notiert, kann auch andersrum sein...)
EDIT: wenn du Valetudo hast und die Koordinaten von dort hast, dann müssen die noch irgendwie "umgerechnet"/"angepasst" werden...
Gruß, Joachim
Zitat von: MadMax-FHEM am 29 Februar 2020, 14:21:14
Ich mache das über die Flole-App...
Zone einzeichnen, lange auf den "Zonereinigen-Startknopf" drücken, dann hast du genau diese Koordinaten fertig zur Verwendung im "Zwischenspeicher"...
Ich schicke mir die dann per Mail, mache die Koordinaten "etwas glatt" und trage sie als Zonen-Attribut ein...
Ansonsten musst du von den Punkten wohl jeweils eine Koordinate weglassen...
Weil die Zone nicht 4 Punkte sind, sondern ein Rechteck mit jeweils 2 Punkten.
Also: [links oben X, links oben Y, rechts unten X, rechts unten Y, Anzahl Ausführungen]
(bzgl. "links oben/rechts unten" müsste ich nachsehen, hab ich mir wo notiert, kann auch andersrum sein...)
EDIT: wenn du Valetudo hast und die Koordinaten von dort hast, dann müssen die noch irgendwie "umgerechnet"/"angepasst" werden...
Gruß, Joachim
dank dir, ich habe ( hatte ) leider das problem , dass sich die aktuellste Firmware für den S50 und FloleVac nicht vertragen . Die Karte wird nicht geladen.
Zumindest habe das jetzt am laufen ( nur durch einen Downgrade der Firmware möglich ) , so das ich die Daten jetzt aus der App bekomme.
... jetzt kann ich mir die Daten mal anschauen und vergleichen ( warum meine angaben nicht liefen )
gruss Byte09
edit: Mit einem Firmwareupdate scheint also vorerst vorsicht geboten zu sein , falls FloleVac genutzt wir.
Gruss Thomas
Hi,
ich hatte das hier noch nicht gelesen, aber wenn es doch doppelt ist ignorieren.
Mit der neuen FW und der Raumerkennung ist es möglich über clean_segment die einzelnen Räume saugen zu lassen. Die räume lassen sich in der App anpassen. Räume starten mit Nummer 16, 17, 18. Die Zuordung muss man sich einmal ausprobieren.
OT:
Hat jemand einen Link für einen wirklich passenden Ersatzakku für den "Xiaomi Mi" V1.
Bei meinem gefundenen Link stimmen die Farben der Drähte nicht (weis/gelb vertauscht), was aber nichts bedeuten muß.
https://www.ebay.de/itm/6000Mah-Li-Ion-18650-Akku-fur-Xiaomi-Mi-Staub-Sauger-Roboter-Roboter-Reini-L2X5/183998302724?hash=item2ad7274a04:g:0S8AAOSwwJVdqB0q (https://www.ebay.de/itm/6000Mah-Li-Ion-18650-Akku-fur-Xiaomi-Mi-Staub-Sauger-Roboter-Roboter-Reini-L2X5/183998302724?hash=item2ad7274a04:g:0S8AAOSwwJVdqB0q)
Mein Akku funktioniert noch, schafft aber die knapp 85m² zu reinigende Fläche nicht mehr in einem Durchgang (1440 Cleanups/62k m²/1231h).
Danke
erdnar
Mittlerweile wird die 2008er Firmware für den Roborock S5 übrigens auch über die iOS Xiaomi Home App angeboten.
Gerade installiert, läuft soweit. Wie das nun mit den Räumen funktioniert, bin ich allerdings noch nicht durchgestiegen.
Viele Grüße Hoppel
Zitat von: eisenhauer1987 am 03 März 2020, 11:18:39
Hi,
ich hatte das hier noch nicht gelesen, aber wenn es doch doppelt ist ignorieren.
Mit der neuen FW und der Raumerkennung ist es möglich über clean_segment die einzelnen Räume saugen zu lassen. Die räume lassen sich in der App anpassen. Räume starten mit Nummer 16, 17, 18. Die Zuordung muss man sich einmal ausprobieren.
Vielen Dank für den Tipp. Funktioniert super. Bei mir sind es 6 Räume und diesen hat er folgende Nummer vergeben: 1,2,4,16,17,18
..also wie du schon geschrieben hast - muss einfach probiert werden.
Geht denk wie ich mitbekommen habe bis 35 ;)
.. vlt hat noch jemand eine Idee ihn ohne Koordinaten in einen Raum fahren zu lassen. Mit goto und die Raumnummer geht leider nicht. Wäre ja zu einfach ;)
Da bei mir die FloleVac app nicht geht... bin ich sehr dankbar über den Tipp.
Lg
Zitat von: andlor am 25 Februar 2020, 22:46:12
Hallo zusammen, hallo Jiggi,
ich hab mich jetzt hinreißen lassen und hab nun auch einen Air Purifier 3H daheim. Jiggi's Aussage kann ich so bestätigen, der Air Purifier 3H lässt sich aktuell nicht sinnvoll einbinden. Die Alternative iPhone Xiaomi App gibt zwar ein paar Möglichkeiten zur Automation, in FHEM wäre das natürlich aber besser aufgehoben.
Meine Frage deshalb an die Entwickler: Vielleicht kann das Modul ausgehend vom Air Purifier 2 ja relativ leicht adaptiert werden? Was kann ich tun, um euch bei der Prüfung einer Anpassung des Moduls zu unterstützen?
da ich mir beim AliExpress Jubiläum einen gekauft habe und dieser gestern ankam, hat mich das Thema natürlich auch interessiert.
Auf der Suche nach einem "Hack" bin ich dann bei github gelandet:
https://github.com/rytilahti/python-miio/issues/577 (https://github.com/rytilahti/python-miio/issues/577) da wird dann noch auf diesen Link verwiesen:
https://github.com/rytilahti/python-miio/issues/543 (https://github.com/rytilahti/python-miio/issues/543)
Die API des Gerätes hat sich wohl grundlegend geändert.
Ich werde nachher versuchen aus meinem Gerät den Token auszulesen und dann mal die python Library zu testen.
ich hab mir mal das python Skript angeschaut.
Das hier funktioniert ohne Probleme: https://github.com/rytilahti/python-miio/pull/585#issue-347330995 (https://github.com/rytilahti/python-miio/pull/585#issue-347330995)
Leider bin ich mir nicht sicher, wie ich das in das Modul integrieren könnte. Deswegen hab ich einfach beim Python Skript die Debug Funktion angeschaltet. Evtl kann Markus uns dann helfen, da er sein Modul besser kennt, als ich.
nach und nach hier die Python Befehle.
info:
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'miIO.info', 'params': []}
DEBUG:miio.miioprotocol:192.168.2xxxx:54321 (ts: 1970-01-01 00:32:58, id: 1) << {'id': 1, 'result': {'life': 1978, 'uid': 1796642943, 'model': 'zhimi.airpurifier.mb3', 'token': 'xxx', 'fw_ver': '2.0.5', 'mcu_fw_ver': '0009', 'miio_ver': '0.0.5', 'hw_ver': 'esp32', 'mmfree': 62016, 'mac': '44:23:xx:xx:C2:D9', 'wifi_fw_ver': 'v3.1.4-56-g8ffb04960', 'ap': {'ssid': 'WLAN', 'bssid': '74:83:xx:xx:BB:C9', 'rssi': -46, 'primary': 11}, 'netif': {'localIp': '192.168.xx.xx', 'mask': '255.255.255.0', 'gw': '192.168.xx.1'}, 'config_type': 'app'}}
status:
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'get_properties', 'params': [{'did': 'power', 'siid': 2, 'piid': 2}, {'did': 'fan_level', 'siid': 2, 'piid': 4}, {'did': 'mode', 'siid': 2, 'piid': 5}, {'did': 'humidity', 'siid': 3, 'piid': 7}, {'did': 'temperature', 'siid': 3, 'piid': 8}, {'did': 'aqi', 'siid': 3, 'piid': 6}, {'did': 'filter_life_remaining', 'siid': 4, 'piid': 3}, {'did': 'filter_hours_used', 'siid': 4, 'piid': 5}, {'did': 'buzzer', 'siid': 5, 'piid': 1}, {'did': 'buzzer_volume', 'siid': 5, 'piid': 2}, {'did': 'led_brightness', 'siid': 6, 'piid': 1}, {'did': 'led', 'siid': 6, 'piid': 6}, {'did': 'child_lock', 'siid': 7, 'piid': 1}, {'did': 'favorite_level', 'siid': 10, 'piid': 10}, {'did': 'favorite_rpm', 'siid': 10, 'piid': 7}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:35:42, id: 1) << {'id': 1, 'result': [{'did': 'power', 'siid': 2, 'piid': 2, 'code': 0, 'value': True}, {'did': 'fan_level', 'siid': 2, 'piid': 4, 'code': 0, 'value': 1}, {'did': 'mode', 'siid': 2, 'piid': 5, 'code': 0, 'value': 0}, {'did': 'humidity', 'siid': 3, 'piid': 7, 'code': 0, 'value': 27}, {'did': 'temperature', 'siid': 3, 'piid': 8, 'code': 0, 'value': 19.5}, {'did': 'aqi', 'siid': 3, 'piid': 6, 'code': 0, 'value': 2}, {'did': 'filter_life_remaining', 'siid': 4, 'piid': 3, 'code': 0, 'value': 99}, {'did': 'filter_hours_used', 'siid': 4, 'piid': 5, 'code': 0, 'value': 20}, {'did': 'buzzer', 'siid': 5, 'piid': 1, 'code': 0, 'value': False}, {'did': 'buzzer_volume', 'siid': 5, 'piid': 2, 'code': -4001}, {'did': 'led_brightness', 'siid': 6, 'piid': 1, 'code': 0, 'value': 1}, {'did': 'led', 'siid': 6, 'piid': 6, 'code': 0, 'value': True}, {'did': 'child_lock', 'siid': 7, 'piid': 1, 'code': 0, 'value': False}, {'did': 'favorite_level', 'siid': 10, 'piid': 10, 'code': 0, 'value': 14}, {'did': 'favorite_rpm', 'siid': 10, 'piid': 7, 'code': 0, 'value': 2150}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 2, 'method': 'get_properties', 'params': [{'did': 'motor_speed', 'siid': 10, 'piid': 8}, {'did': 'use_time', 'siid': 12, 'piid': 1}, {'did': 'purify_volume', 'siid': 13, 'piid': 1}, {'did': 'average_aqi', 'siid': 13, 'piid': 2}, {'did': 'filter_rfid_tag', 'siid': 14, 'piid': 1}, {'did': 'filter_rfid_product_id', 'siid': 14, 'piid': 3}, {'did': 'app_extra', 'siid': 15, 'piid': 1}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:35:42, id: 2) << {'id': 2, 'result': [{'did': 'motor_speed', 'siid': 10, 'piid': 8, 'code': 0, 'value': 390}, {'did': 'use_time', 'siid': 12, 'piid': 1, 'code': 0, 'value': 72900}, {'did': 'purify_volume', 'siid': 13, 'piid': 1, 'code': 0, 'value': 830}, {'did': 'average_aqi', 'siid': 13, 'piid': 2, 'code': 0, 'value': 6}, {'did': 'filter_rfid_tag', 'siid': 14, 'piid': 1, 'code': 0, 'value': '81:66:58:da:34:b:4'}, {'did': 'filter_rfid_product_id', 'siid': 14, 'piid': 3, 'code': 0, 'value': '0:0:31:31'}, {'did': 'app_extra', 'siid': 15, 'piid': 1, 'code': 0, 'value': 0}]}
off:
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'power', 'siid': 2, 'piid': 2, 'value': False}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:36:19, id: 1) << {'id': 1, 'result': [{'did': 'power', 'siid': 2, 'piid': 2, 'code': 0}]}
[{'did': 'power', 'siid': 2, 'piid': 2, 'code': 0}]
on:
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'power', 'siid': 2, 'piid': 2, 'value': True}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:37:14, id: 1) << {'id': 1, 'result': [{'did': 'power', 'siid': 2, 'piid': 2, 'code': 0}]}
[{'did': 'power', 'siid': 2, 'piid': 2, 'code': 0}]
set_buzzer true:
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'buzzer', 'siid': 5, 'piid': 1, 'value': True}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:37:36, id: 1) << {'id': 1, 'result': [{'did': 'buzzer', 'siid': 5, 'piid': 1, 'code': 0}]}
set_buzzer false:
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'buzzer', 'siid': 5, 'piid': 1, 'value': False}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:38:02, id: 1) << {'id': 1, 'result': [{'did': 'buzzer', 'siid': 5, 'piid': 1, 'code': 0}]}
Da sich nur die Values ändern, ab sofort nur noch einmalig.
set_child_lock <true|false>
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'child_lock', 'siid': 7, 'piid': 1, 'value': True}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:39:09, id: 1) << {'id': 1, 'result': [{'did': 'child_lock', 'siid': 7, 'piid': 1, 'code': 0}]}
set_fan_level <1-3>
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'fan_level', 'siid': 2, 'piid': 4, 'value': 1}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:40:31, id: 1) << {'id': 1, 'result': [{'did': 'fan_level', 'siid': 2, 'piid': 4, 'code': 0}]}
set_favorite_level <0-14>
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'favorite_level', 'siid': 10, 'piid': 10, 'value': 1}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:41:33, id: 1) << {'id': 1, 'result': [{'did': 'favorite_level', 'siid': 10, 'piid': 10, 'code': 0}]}
set_led <true|false>
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'led', 'siid': 6, 'piid': 6, 'value': True}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:42:12, id: 1) << {'id': 1, 'result': [{'did': 'led', 'siid': 6, 'piid': 6, 'code': 0}]}
set_led_brightness <off|dim|bright> (off=2,dim=1,bright=1)
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'led_brightness', 'siid': 6, 'piid': 1, 'value': 1}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:42:40, id: 1) << {'id': 1, 'result': [{'did': 'led_brightness', 'siid': 6, 'piid': 1, 'code': 0}]}
[{'did': 'led_brightness', 'siid': 6, 'piid': 1, 'code': 0}]
set_mode <auto|fan|favorite|silent> (auto=0,fan=3,favorite=2,silent=1)
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'mode', 'siid': 2, 'piid': 5, 'value': 0}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:44:19, id: 1) << {'id': 1, 'result': [{'did': 'mode', 'siid': 2, 'piid': 5, 'code': 0}]}
edit:
hier noch mal ein kompletter Auszud aus dem Debug Output inkl. Eingabe:
python3 miio/cli.py -d airpurifiermiot --ip 192.168.xx.xx --token 10xxxxa9 status
INFO:__main__:Debug mode active
DEBUG:miio.protocol:Unable to decrypt, returning raw bytes: b''
DEBUG:miio.miioprotocol:Got a response: Container:
data = Container:
data = b'' (total 0)
value = b'' (total 0)
offset1 = 32
offset2 = 32
length = 0
header = Container:
data = b'!1\x00 \x00\x00\x00\x00\x10\xda\xc7"\x00\x00\x0c\x05' (total 16)
value = Container:
length = 32
unknown = 0
device_id = unhexlify('10dac722')
ts = 1970-01-01 00:51:17
offset1 = 0
offset2 = 16
length = 16
checksum = b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' (total 16)
DEBUG:miio.miioprotocol:Discovered 10dac722 with ts: 1970-01-01 00:51:17, token: b'ffffffffffffffffffffffffffffffff'
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'get_properties', 'params': [{'did': 'power', 'siid': 2, 'piid': 2}, {'did': 'fan_level', 'siid': 2, 'piid': 4}, {'did': 'mode', 'siid': 2, 'piid': 5}, {'did': 'humidity', 'siid': 3, 'piid': 7}, {'did': 'temperature', 'siid': 3, 'piid': 8}, {'did': 'aqi', 'siid': 3, 'piid': 6}, {'did': 'filter_life_remaining', 'siid': 4, 'piid': 3}, {'did': 'filter_hours_used', 'siid': 4, 'piid': 5}, {'did': 'buzzer', 'siid': 5, 'piid': 1}, {'did': 'buzzer_volume', 'siid': 5, 'piid': 2}, {'did': 'led_brightness', 'siid': 6, 'piid': 1}, {'did': 'led', 'siid': 6, 'piid': 6}, {'did': 'child_lock', 'siid': 7, 'piid': 1}, {'did': 'favorite_level', 'siid': 10, 'piid': 10}, {'did': 'favorite_rpm', 'siid': 10, 'piid': 7}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:51:18, id: 1) << {'id': 1, 'result': [{'did': 'power', 'siid': 2, 'piid': 2, 'code': 0, 'value': True}, {'did': 'fan_level', 'siid': 2, 'piid': 4, 'code': 0, 'value': 1}, {'did': 'mode', 'siid': 2, 'piid': 5, 'code': 0, 'value': 0}, {'did': 'humidity', 'siid': 3, 'piid': 7, 'code': 0, 'value': 27}, {'did': 'temperature', 'siid': 3, 'piid': 8, 'code': 0, 'value': 19.5}, {'did': 'aqi', 'siid': 3, 'piid': 6, 'code': 0, 'value': 2}, {'did': 'filter_life_remaining', 'siid': 4, 'piid': 3, 'code': 0, 'value': 99}, {'did': 'filter_hours_used', 'siid': 4, 'piid': 5, 'code': 0, 'value': 20}, {'did': 'buzzer', 'siid': 5, 'piid': 1, 'code': 0, 'value': False}, {'did': 'buzzer_volume', 'siid': 5, 'piid': 2, 'code': -4001}, {'did': 'led_brightness', 'siid': 6, 'piid': 1, 'code': 0, 'value': 1}, {'did': 'led', 'siid': 6, 'piid': 6, 'code': 0, 'value': True}, {'did': 'child_lock', 'siid': 7, 'piid': 1, 'code': 0, 'value': True}, {'did': 'favorite_level', 'siid': 10, 'piid': 10, 'code': 0, 'value': 1}, {'did': 'favorite_rpm', 'siid': 10, 'piid': 7, 'code': 0, 'value': 660}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 2, 'method': 'get_properties', 'params': [{'did': 'motor_speed', 'siid': 10, 'piid': 8}, {'did': 'use_time', 'siid': 12, 'piid': 1}, {'did': 'purify_volume', 'siid': 13, 'piid': 1}, {'did': 'average_aqi', 'siid': 13, 'piid': 2}, {'did': 'filter_rfid_tag', 'siid': 14, 'piid': 1}, {'did': 'filter_rfid_product_id', 'siid': 14, 'piid': 3}, {'did': 'app_extra', 'siid': 15, 'piid': 1}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:51:18, id: 2) << {'id': 2, 'result': [{'did': 'motor_speed', 'siid': 10, 'piid': 8, 'code': 0, 'value': 390}, {'did': 'use_time', 'siid': 12, 'piid': 1, 'code': 0, 'value': 73800}, {'did': 'purify_volume', 'siid': 13, 'piid': 1, 'code': 0, 'value': 845}, {'did': 'average_aqi', 'siid': 13, 'piid': 2, 'code': 0, 'value': 6}, {'did': 'filter_rfid_tag', 'siid': 14, 'piid': 1, 'code': 0, 'value': '81:66:58:da:34:b:4'}, {'did': 'filter_rfid_product_id', 'siid': 14, 'piid': 3, 'code': 0, 'value': '0:0:31:31'}, {'did': 'app_extra', 'siid': 15, 'piid': 1, 'code': 0, 'value': 0}]}
Power: on
AQI: 2 μg/m³
Average AQI: 6 μg/m³
Humidity: 27 %
Temperature: 19.5 °C
Fan Level: 1
Mode: OperationMode.Auto
LED: True
LED brightness: LedBrightness.Dim
Buzzer: False
Buzzer vol.: None
Child lock: True
Favorite level: 1
Filter life remaining: 99 %
Filter hours used: 20
Use time: 73800 s
Purify volume: 845 m³
Motor speed: 390 rpm
Filter RFID product id: 0:0:31:31
Filter RFID tag: 81:66:58:da:34:b:4
Filter type: FilterType.Regular
ich habe es geschafft, wahrscheinlich sehr unschön, aber alle Daten werden nun angezeigt in FHEM.
Leider ist das Steuern noch nicht funktionierend. Es ist also nur ein Read-Only...
Hier das List meines Devices:
Internals:
DEF 192.168.xx.xx 10xxxa9
FD 69
FUUID 5e887a50-f33f-61f0-f6e5-e2aa57f5c9661155
FVERSION 72_XiaomiDevice.pm:0.200610/2019-08-25
NAME xz_xiaomi_airpurifier3H
NR 473
STATE 2 µg/m³ / 389 rpm / auto
TYPE XiaomiDevice
hardware esp32
mac 44:23:xx:xx:C2:D9
mcu_firmware 0009
model zhimi.airpurifier.mb3
token 10xxxa9
wifi_firmware v3.1.4-56-g8ffb04960
Helper:
DBLOG:
filter_volume:
logdb:
TIME 1586079537.71801
VALUE 1397
speed:
logdb:
TIME 1586079597.42722
VALUE 389
READINGS:
2020-04-05 11:06:53 absFeuchte 6.3
2020-04-05 11:13:39 app_extra 0
2020-04-05 11:13:39 buzzer off
2020-04-05 11:13:39 child_lock off
2020-04-05 11:13:37 device_firmware 2.0.5
2020-04-05 11:13:37 device_uptime 0.19
2020-04-05 11:06:53 dewpoint 4.7
2020-04-05 11:39:57 error none
2020-04-05 11:39:57 fan_level 1
2020-04-05 11:39:57 favorite_level 1
2020-04-05 11:39:57 favorite_rpm 660
2020-04-05 11:39:57 filter_life 99
2020-04-05 11:13:39 filter_rfid_product_id 0:0:31:31
2020-04-05 11:13:39 filter_rfid_tag 81:66:58:da:34:b:4
2020-04-05 11:39:57 filter_used 35
2020-04-05 11:39:57 filter_volume 1397
2020-04-05 11:39:57 humidity 35
2020-04-05 11:13:39 led on
2020-04-05 11:13:39 led_brightness bright
2020-04-05 11:39:57 mode auto
2020-04-05 11:39:57 pm25 2
2020-04-05 11:39:57 pm25_average 4
2020-04-05 11:39:57 power on
2020-04-05 11:39:57 speed 389
2020-04-05 11:06:47 state connected
2020-04-05 11:39:57 temperature 20.700001
2020-04-05 11:39:57 usage 35.8
2020-04-05 11:13:37 wifi_rssi -50
helper:
ConnectionState connected
crypt AES
delay 60
dev 10da
id c722
ip 192.168.xx.xx
last_read 1586079597
packetid 31
port 54321
sequence 1586077332
token 10xxxa9
packet:
Attributes:
DbLogInclude fan_level,filter_used,mode,pm25,pm25_average,power,filter_volume,speed,temperature,humidity
event-on-change-reading .*
intervalData 60
room Geräte->Xiaomi
stateFormat pm25 µg/m³ / speed rpm / mode
subType AirPurifier3H
verbose 3
Im Anhang ist das angepasste Device sowie ein Patch. Bei mir stürzt das Programm nicht ab! Aber ich würde ein vorheriges Backup dennoch empfehlen!
Beste Grüße
Andy
edit: Anhänge gelöscht, weil es gleich (16.4. ca 22 Uhr) nen neuen Post inkl funktionierenden Settern gibt
Zitat von: Thoffi1978 am 24 Januar 2020, 15:12:09
Hej,
was bedeutet das Reading
in_fresh_state
Vielen Dank
Thoffi
Das würde ich auch gerne wissen. Weiß einer. wofür der Status steht???
und noch eine Frage, gibt es eine Möglichkeit, zu erfahren, ob der Müllbehälter entfernt wird? eine Ansage vom Sauger (S50) gibt es ja, also scheint es ja entsprechend ein Status zu geben. Kann man den irgendwie auslesen?
Ich habe ein notify, das die verschiedenen Zustände des Saugers verarbeitet:
#Wait-loop, provoziert einen Event "Error" bei Entnahme vom Staubbehälter
fhem "set SauBaer volume 0; define tmp_time1 at +00:00:03 set SauBaer remotecontrol start; set SauBaer remotecontrol stop";
Hallo zusammen,
ich habe jetzt auch den xiaomi_airpurifier3H wie Andy89 und würde mich sehr über eine Erweiterung des Modules freuen. Kann dann auch gerne testen.
Ich will mir auch einen Air Purifier zulegen. Welchen würdet ihr empfehlen? 2H / 2S / 3H?
Auch in Hinblick auf die Integration in FHEM.
Da kann ich jetzt nicht anders und muss meinen Senf dazu geben.. Ich habe seit über 15 Jahren einen Venta im Einsatz (glaub den hab ich noch in Mark bezahlt 300.- rum hat das ding gekostet) der braucht 25 Watt geht nicht kaputt und ist eigentlich überteuert ABER.. den rest kann sich jeder selber denken. Da kann ich nur ;D
PS: die Steuern bleiben da wo Sie hingehören und mit Stinknormaler Schaltsteckdose ist das Thema erledigt.
Hey Ho,
Ich wollte Mal fragen, ob es möglich ist, die Werte pull_map oder load_map von Valetudo Re einbinden könnte. Das wäre Klasse. Da ich eine für das OG Und eine für das EG habe...
Mit den Reading wäre es toll, um dies für DOIF nutzen zu können...
Danke euch
Hi,wie stoxx und pumabaer würde ich mich auch über eine korrekte Einbindung des zhimi.humidifier.cb1 freuen.Deswegen habe ich mal alle Infos, die ich gefunden habe zusammenkopiert:Zitat von: stoxx am 15 Dezember 2019, 15:07:51
wäre es möglich, beim Xiaomi Humidifier noch den mode "Auto" zu ergänzen?
Zitat von: pumabaer am 26 Dezember 2019, 17:25:26
folgende "set" befehle:
ein aus, geht
mode, geht (alerdings schaltet "idle" aus. bei meinem gibt es noch einen "auto" modus")
led, geht nicht
limit_hum, ich glaube das hat die version nicht, zumindest nicht in der app
childlock, geht
buzzer, geht
hier ein list wie ich es momentan habe, token ist geändert:
Internals:
CFGFN
DEF 192.168.178.47 df80c61de67208c107607cb123c991a7
FD 36
FUUID 5e04da62-f33f-df7b-b4ae-c78a125a82ef3827
NAME Luftbefeuchter
NR 50800
STATE on
TYPE XiaomiDevice
hardware MTK7697
mac 04:CF:8C:A6:58:D3
mcu_firmware 1005
model zhimi.humidifier.cb1
token xxxxxxxxxxxxx
wifi_firmware 20180702211408
Helper:
DBLOG:
depth:
DBLogging:
TIME 1577385744.96844
VALUE 106
humidity:
DBLogging:
TIME 1577386042.67045
VALUE 58
speed:
DBLogging:
TIME 1577386042.67045
VALUE 788
temperature:
DBLogging:
TIME 1577385204.76648
VALUE 0
READINGS:
2019-12-26 19:41:25 Mode 0
2019-12-26 19:46:39 buzzer on
2019-12-26 19:46:39 child_lock off
2019-12-26 19:47:22 depth 106
2019-12-26 19:46:30 device_firmware 1.6.3
2019-12-26 19:46:30 device_uptime 3.72
2019-12-26 19:47:22 dry off
2019-12-26 19:47:22 error none
2019-12-26 19:47:22 humidity 58
2019-12-26 19:47:22 laufzeit 6.40
2019-12-26 19:46:39 led dim
2019-12-26 19:46:39 limit_hum 70
2019-12-26 19:47:22 mode auto
2019-12-26 19:47:22 power on
2019-12-26 19:47:22 speed 788
2019-12-26 19:47:22 temperature 0
2019-12-26 19:47:22 trans_level null
2019-12-26 19:46:39 use_time 23057
2019-12-26 17:08:15 wifi_auth_fail_count 0
2019-12-26 17:08:15 wifi_conn_fail_count 0
2019-12-26 17:08:15 wifi_conn_success_count 1
2019-12-26 17:08:15 wifi_dhcp_fail_count 0
2019-12-26 19:46:30 wifi_rssi -42
2019-12-26 17:08:15 wifi_state connecting
helper:
ConnectionState connected
crypt AES
delay 60
dev 07f2
id e9a5
ip 192.168.178.47
last_read 1577386042
packetid 278
port 54321
sequence 1577372599
token xxxxxxxxxxxxxx
packet:
Attributes:
DbLogExclude .*
DbLogInclude depth,humidity,speed,temperature
event-on-change-reading .*
homebridgeMapping On:power,cmdOn=on,cmdOff=off,valueOn=on,valueOff=off
RelativeHumidityHumidifierThreshold:limit_hum,minValue=30,maxValue=80,minStep=1,cmd=limit_hum,delay=1
AudioFeedback:buzzer,cmdOn=buzzer+on,cmdOff=buzzer+off,valueOn=on,valueOff=off
RotationSpeed=speed,minValue=0,maxValue=1000
LockPhysicalControls=child_lock,values=on:CONTROL_LOCK_ENABLED;;off:CONTROL_LOCK_DISABLED,cmds=CONTROL_LOCK_ENABLED:child_lock+on;CONTROL_LOCK_DISABLED:child_lock+off
history:size=1024
intervalData 60
room Heizung,Homekit
stateFormat power
subType Humidifier
userReadings laufzeit {sprintf("%.2f",(ReadingsVal($name,"use_time",0)/3600))}
wenn ich noch weitere infos geben kann, nur zu!:)
edit:
temperatur wird nicht übergeben
wasser füllstand auch nicht
Beisteuern kann ich hierfür folgendes aus den Logs:Auf diese Anfrage ...2020.04.12 03:17:12 4: Schlafzimmer_Luftbefeuchter: write {"id":17,"method":"get_prop","params":["power","mode","temp_dec","humidity","trans_level","speed","depth","dry","temperature","button_pressed"]} (144)
folgt diese Antwort:$VAR1 = {
'id' => 17,
'result' => [
'on',
'high',
'null',
49,
'null',
1000,
100,
'on',
'21.5'
]
};
Somit nehme ich an, dass es temp_dec, trans_level und button_pressed nicht gibt, oder?Dafür gibt es temperature und ein depth. depth zählt von knapp über 100 langsam runter, also wsl. das Wasserlevel.Diese beiden Werte werden aber nicht in die entsprechenden Readings im Device eingetragen.Welche Logs werden noch benötigt? Kann diese gerne noch nachliefern.Hier hat übrigens bereits jemand alle unterstützten Commands eingestellt: https://www.home-assistant.io/integrations/fan.xiaomi_miio/#air-humidifier-cb-zhimihumidifiercb1 (https://www.home-assistant.io/integrations/fan.xiaomi_miio/#air-humidifier-cb-zhimihumidifiercb1)Danke, lg
Hallo Andy,
Besten dank für die Version.
Zitat von: Andy89 am 05 April 2020, 11:43:14
ich habe es geschafft, wahrscheinlich sehr unschön, aber alle Daten werden nun angezeigt in FHEM.
Leider ist das Steuern noch nicht funktionierend. Es ist also nur ein Read-Only...
Hier das List meines Devices:
Internals:
DEF 192.168.xx.xx 10xxxa9
FD 69
FUUID 5e887a50-f33f-61f0-f6e5-e2aa57f5c9661155
FVERSION 72_XiaomiDevice.pm:0.200610/2019-08-25
NAME xz_xiaomi_airpurifier3H
NR 473
STATE 2 µg/m³ / 389 rpm / auto
TYPE XiaomiDevice
hardware esp32
mac 44:23:xx:xx:C2:D9
mcu_firmware 0009
model zhimi.airpurifier.mb3
token 10xxxa9
wifi_firmware v3.1.4-56-g8ffb04960
Helper:
DBLOG:
filter_volume:
logdb:
TIME 1586079537.71801
VALUE 1397
speed:
logdb:
TIME 1586079597.42722
VALUE 389
READINGS:
2020-04-05 11:06:53 absFeuchte 6.3
2020-04-05 11:13:39 app_extra 0
2020-04-05 11:13:39 buzzer off
2020-04-05 11:13:39 child_lock off
2020-04-05 11:13:37 device_firmware 2.0.5
2020-04-05 11:13:37 device_uptime 0.19
2020-04-05 11:06:53 dewpoint 4.7
2020-04-05 11:39:57 error none
2020-04-05 11:39:57 fan_level 1
2020-04-05 11:39:57 favorite_level 1
2020-04-05 11:39:57 favorite_rpm 660
2020-04-05 11:39:57 filter_life 99
2020-04-05 11:13:39 filter_rfid_product_id 0:0:31:31
2020-04-05 11:13:39 filter_rfid_tag 81:66:58:da:34:b:4
2020-04-05 11:39:57 filter_used 35
2020-04-05 11:39:57 filter_volume 1397
2020-04-05 11:39:57 humidity 35
2020-04-05 11:13:39 led on
2020-04-05 11:13:39 led_brightness bright
2020-04-05 11:39:57 mode auto
2020-04-05 11:39:57 pm25 2
2020-04-05 11:39:57 pm25_average 4
2020-04-05 11:39:57 power on
2020-04-05 11:39:57 speed 389
2020-04-05 11:06:47 state connected
2020-04-05 11:39:57 temperature 20.700001
2020-04-05 11:39:57 usage 35.8
2020-04-05 11:13:37 wifi_rssi -50
helper:
ConnectionState connected
crypt AES
delay 60
dev 10da
id c722
ip 192.168.xx.xx
last_read 1586079597
packetid 31
port 54321
sequence 1586077332
token 10xxxa9
packet:
Attributes:
DbLogInclude fan_level,filter_used,mode,pm25,pm25_average,power,filter_volume,speed,temperature,humidity
event-on-change-reading .*
intervalData 60
room Geräte->Xiaomi
stateFormat pm25 µg/m³ / speed rpm / mode
subType AirPurifier3H
verbose 3
Im Anhang ist das angepasste Device sowie ein Patch. Bei mir stürzt das Programm nicht ab! Aber ich würde ein vorheriges Backup dennoch empfehlen!
Beste Grüße
Andy
Ich habe sie bei mir installiert und bekomme auch wie gewünscht die Readings.
Wann werden die automatisch aktualisiert?
Wenn er off ist, bekomme ich das in keinem Reading mit. Sollte das bei power = off stehen?
Edit: child_lock wird auch nicht richtig übertragen
Bei set on bekomme ich das im Log per verbose 5
2020.04.16 16:12:55 4: Xiaomi_AirPurifier3: write {"id":10,"method":"set_properties","params":[{"did": "power", "siid": 2, "piid": 2, "value": True}]} (100)
2020.04.16 16:12:55 5: Xiaomi_AirPurifier3: send 213100900000000010dc536e00001750d3adfd146854553c0e4fc9cbceca30a09e9997689a0d7d4b9d056d1b6dbcc903f02d010a0fba5943089d4465336437e3c8878ecc3e8f1bbfa79b951882dcc26864c5d63f85315934e319bbfb4b4e2a425d224f293cfda7a0effe700c1db6a123b0dc1f679aebf3ad801a10743b538c3f6db3a551a61ade5aa9c57ada3bf3d003
2020.04.16 16:12:55 5: Xiaomi_AirPurifier3 Send SUCCESS
2020.04.16 16:12:55 5: Xiaomi_AirPurifier3 > 213100900000000010dc536e00001750d3adfd146854553c0e4fc9cbceca30a09e9997689a0d7d4b9d056d1b6dbcc903f02d010a0fba5943089d4465336437e3c8878ecc3e8f1bbfa79b951882dcc26864c5d63f85315934e319bbfb4b4e2a425d224f293cfda7a0effe700c1db6a123b0dc1f679aebf3ad801a10743b538c3f6db3a551a61ade5aa9c57ada3bf3d003
set off
2020.04.16 16:14:35 4: Xiaomi_AirPurifier3: write {"id":14,"method":"set_properties","params":[{"did": "power", "siid": 2, "piid": 2, "value": False}]} (101)
2020.04.16 16:14:35 5: Xiaomi_AirPurifier3: send 213100900000000010dc536e000017b48a9e9194d0658b124a53b551b71f77574957a6132ad8739e02ce1baf68ecfb0b72a9a54e9754040b43b7e547725b120a32462ce3a7453437001ffbc1fa9adc6575613fa329205eab5e426c6c072984f0a7cfb977f81107521348df3242e86d8c143b7eb472d0a29cf0ab691c14018608cb1ff3d9c1785cce6831c63135dabd8e
2020.04.16 16:14:35 5: Xiaomi_AirPurifier3 Send SUCCESS
2020.04.16 16:14:35 5: Xiaomi_AirPurifier3 > 213100900000000010dc536e000017b48a9e9194d0658b124a53b551b71f77574957a6132ad8739e02ce1baf68ecfb0b72a9a54e9754040b43b7e547725b120a32462ce3a7453437001ffbc1fa9adc6575613fa329205eab5e426c6c072984f0a7cfb977f81107521348df3242e86d8c143b7eb472d0a29cf0ab691c14018608cb1ff3d9c1785cce6831c63135dabd8e
Zitat von: TWART016 am 16 April 2020, 16:16:20
Ich habe sie bei mir installiert und bekomme auch wie gewünscht die Readings.
Wann werden die automatisch aktualisiert?
Aktualisiert werden sie - meiner Meinung nach - in dem Interval, was im Attribut intervalData hinterlegt ist. Standmäßig ist das 300 Sekunden. Zusätzlich gibt es noch das Attribut intervalSettings, was standardmäßig 3600 Sekunden ist.
Aber ob das wirklich stimmt, weiß ich nicht. Ich werde aus dem Modul nicht ganz schlau
Zitat von: TWART016 am 16 April 2020, 16:16:20
Wenn er off ist, bekomme ich das in keinem Reading mit. Sollte das bei power = off stehen?
Edit: child_lock wird auch nicht richtig übertragen
Child_lock gehört zu den Settings und wird somit nur alle 60 Minuten abgerufen. Evtl lag es daran.
Im Code hatte ich bei Power große "F" bei False. Evtl lag es daran, ich weiß es nicht.
Zitat von: TWART016 am 16 April 2020, 16:16:20
Bei set on bekomme ich das im Log per verbose 5
Set funktioniert leider nicht und ich weiß nicht, wie man das machen kann. Ich versteh nicht, was da passiert. Leider werde ich aus dem Python Modul (https://github.com/rytilahti/python-miio/pull/634 (https://github.com/rytilahti/python-miio/pull/634)) auch nicht schlau, wie die Daten versendet werden müssen.
Sorry =(
man was für eine doofer Fehler. Tatsächlich lag es bei Power am großen T(rue) und F(alse).
Kaum wird beides klein geschrieben funktioniert auch ein on und off.
Jetzt können also nach und nach alle anderen Funktionen integriert werden. Ich weiß aber nicht, wie man das am klügsten in das Modul integriert. Wenn ich überall abfrage, ob es sich um den 3H Purifiert handelt, wäre es fast sinnvoll, das ganze zu abstrahieren und ein Sub-Modul (gibt es sowas überhaupt?) daraus zu machen.
also wer es bei sich ausprobieren will. In meiner vorherigen Datei nach 3H suchen und die großen True und False in kleine true und false umwandeln. Dann geht zumindest schon mal das an- und ausschalten. ;D ;D ;D
wie ich eben schon geschrieben habe, lag es nur an der Kleinigkeit. Dadurch, dass das nun funkionierte, habe ich direkt alle anderen Setter integriert.
wie auch beim letzten Mal gilt: ich habe es getestet, weiß aber nicht, ob alles sauber läuft => deswegen vorher ein Backup machen.
Mein AirPurifier 3H lässt sich damit auslesen und nun auch steuern.
@Markus: wie bekommen wie das nun ins aktuelle SVN-Repo? Da ich kein Developer bin, kann ich das nicht updaten - vorher sollten das eh noch ein paar Leute testen.
Beste Grüße
Andy
Zitat von: lichtimc am 12 April 2020, 03:39:18
Hi,
wie @stoxx und @pumabaer würde ich mich auch über eine korrekte Einbindung des zhimi.humidifier.cb1 freuen.
Hallo,
ich habe mich 'mal daran versucht, mit wenig Wissen über Perl aber umso mehr Elan.
;)
Anbei das ergänzte komplette Modul und ein Patch (allerdings auf Basis der aktuellen FHEM Version des Moduls ohne den 3H Patch) für den zhimi.humidifier.cb1 "Evaporation Humidifier".
Als Attribut "subType" ist damit "EvpHumidifier" (für "Evaporation Humidifier") auswählbar.
Set-Befehle:
Automatik Modus einstellen:
set Luftbefeuchter mode auto
Lufttrockenmodus einstellen:
set Luftbefeuchter dry on/off
Oberste Grenze für Luftfeuchtigkeit setzen (funktioniert für den "auto" Mode obwohl in der App nicht setzbar):
set Luftbefeuchter limit_hum [Wert zwischen 30 und 80]
LED-Dimmstufe einstellen funktioniert auch:
set Luftbefeuchter led bright/dim/off
Readings:
depth Wasserfüllstand
temperature Temperatur
use_time Betriebszeit des Geräts in Sekunden
Alles dokumentiert in der Modul-Doku (auch das bisher schon funktionierende).
Was fehlt sind die in der App möglichen Einstellungen für Timer (brauche ich auch nicht, dafür habe ich ja FHEM) und für "Störungsalarm".
Weitere Anmerkungen:
Am besten das Device, das die alte Modulversion verwendet hat, löschen, diese Modulversion einspielen (natürlich Backup vorher machen!), FHEM neu starten und das Gerät mit der neuen Modulversion neu anlegen.
Zeile 292 im Code gibt mir immer noch Rätsel auf:
$attr{$name}{stateFormat} = "power" if( defined($attr{$name}) && defined($attr{$name}{subType}) && $attr{$name}{subType} eq "EvpHumidifier" && !defined($attr{$name}{stateFormat}));
Nach meiner Interpretation sollte, wenn Attribut "subType" auf "EvpHumidifier" eingestellt ist, das Attribut "stateFormat" auf den Wert "power" gesetzt werden. Tut es aber nicht. Habe es jetzt zwar anders gelöst ("state" wird beim Aktualisieren der Daten automatisch auf den Wert des Readings "power" gesetzt, s. ab Zeile 2190 im Code) aber vielleicht hat ja jemand eine Erklärung/Verbesserung dafür? Ein eigens Attribut "stateFormat" funktioniert natürlich weiter.
Und warum das Reading "wifi_state" auf dem Wert "connecting" stehen bleibt, statt auf "online" zu wechseln ist mir auch ein Rätsel, kann ich aber mit leben.
Wie gesagt, mein Elan ist größer als mein Perl Wissen, und daher kann ich nur sehr eingeschränkt Support geben.
Würde mich also sehr freuen, wenn @markus-m. oder andere "Wissendere" meine Anregungen aufnehmen und das Gerät ins SVN-Modul integrieren.
Viele Grüße,
Andreas
Hallo Andy,
besten Dank. Bei mir im Testsystem läuft die Version ohne Probleme.
Nur child_lock wird trotzdem falsch angezeigt. Ist mir aber nicht so wichtig, nutze das nicht.
Das Reading power steht immer auf on. Bei einem set off im Modul springt das Reading kurz auf off und dann wieder auf on.
Weiß jemand was die Readings filter_used, filter_volume bedeuten?
Zitat von: TWART016 am 16 April 2020, 23:09:41
Hallo Andy,
besten Dank. Bei mir im Testsystem läuft die Version ohne Probleme.
Nur child_lock wird trotzdem falsch angezeigt. Ist mir aber nicht so wichtig, nutze das nicht.
Das Reading power steht immer auf on. Bei einem set off im Modul springt das Reading kurz auf off und dann wieder auf on.
Weiß jemand was die Readings filter_used, filter_volume bedeuten?
das ist komisch. bei mir läuft das child_lock. ich hab die intervalSettings aber mit 90 Sekunden sehr runtergeschraubt. ich weiß nicht, ob es daran liegt. Auch, dass das on/off bei dir nicht richtig angezeigt wird. Komisch! Aber richtig gesteuert wird er dennoch? Also er geht aus?
filter_volume => im gefilterte Luft in qm (Purify volume: 8606 m³)
filter_used => wie viel Zeit Stunden, der Purifier schon lief (Filter hours used: 59)
Die Werte in den Klammern sind aus dem Beitrag: https://github.com/rytilahti/python-miio/pull/634 (https://github.com/rytilahti/python-miio/pull/634)
Ich versuche mal dieses Wochenende die Zeit zu finden das als neuen Subtype hinzuzufügen ;)
Zitat von: Markus M. am 17 April 2020, 13:04:21
Ich versuche mal dieses Wochenende die Zeit zu finden das als neuen Subtype hinzuzufügen ;)
Hallo Markus,
meinst Du jetzt den 3H Luftreiniger oder (auch) den von mir "verbrochenen" Evaporation Humidifier (https://forum.fhem.de/index.php/topic,73052.msg1043309.html#msg1043309)?
;)
Viele Grüße,
Andreas
Beides ;)
Klasse, vielen Dank!
:)
Zitat von: Andy89 am 16 April 2020, 23:27:42
das ist komisch. bei mir läuft das child_lock. ich hab die intervalSettings aber mit 90 Sekunden sehr runtergeschraubt. ich weiß nicht, ob es daran liegt. Auch, dass das on/off bei dir nicht richtig angezeigt wird. Komisch! Aber richtig gesteuert wird er dennoch? Also er geht aus?
Steuern kann ich ihn komplett.
Gestern Abend habe ich Child_lock an und wieder ausgeschalten und ist es jetzt auch noch. Das Rading wurde heute um 11 und 15 Uhr aktualisiert, auch dort ist es on.
Zitat von: Andy89 am 16 April 2020, 23:27:42
filter_volume => im gefilterte Luft in qm (Purify volume: 8606 m³)
filter_used => wie viel Zeit Stunden, der Purifier schon lief (Filter hours used: 59)
Ich verstehe ein paar Readings nicht, in der commandref gibt es nichts dazu.
Was ist der Unterschied zwischen device_uptime, usage.
Gibt es einen Unterschied zwischen led off und led_brightness off?
Ist es bei euch so, dass am Display 23° steht, das Modul immer 22,9°, und dann in 0,5 er Schritten.
Zitat von: TWART016 am 17 April 2020, 21:40:01
Steuern kann ich ihn komplett.
Gestern Abend habe ich Child_lock an und wieder ausgeschalten und ist es jetzt auch noch. Das Rading wurde heute um 11 und 15 Uhr aktualisiert, auch dort ist es on.
ich weiß echt nicht, woran das liegen könnte.. evtl müsste man da mal nen Log Eintrag erstellen lassen, der bei verbose 5 sichtbar wird.
Zitat von: TWART016 am 17 April 2020, 21:40:01
Ich verstehe ein paar Readings nicht, in der commandref gibt es nichts dazu.
Was ist der Unterschied zwischen device_uptime, usage.
Gibt es einen Unterschied zwischen led off und led_brightness off?
Ist es bei euch so, dass am Display 23° steht, das Modul immer 22,9°, und dann in 0,5 er Schritten.
die commandref habe ich nicht angepasst - sorry.
Device uptime ist die zeit, die das Gerät online ist. Wenn man ihn stromlos macht, fängt die von vorne an. Usage ist die tatsächlich gelaufene Zeit der Filterung.
Es gibt keinen Unterschied dazwischen - oder mir ist keiner eingefallen. ich weiß nicht, warum man das LED on/off nutzen sollte, wenn man auch direkt die Helligkeit steuern kann. Das war halt so im python Modul bzw in der "API" des Luftreinigers.
Meine Temperatur ist noch "komischer": 21.799999
Hier ist eine Kombi eurer neuen Geräte. Bitte testen ob noch alles funktioniert.
Wegen der Temperaturen solltet ihr mal mit Verbose 5 nachsehen was die Geräte senden.
Todo: Set zwischen den Geräten angleichen und das nutzlose LED on/off Reading rausnehmen ;)
Zitat von: kotaro am 09 April 2020, 22:27:37
Hey Ho,
Ich wollte Mal fragen, ob es möglich ist, die Werte pull_map oder load_map von Valetudo Re einbinden könnte. Das wäre Klasse. Da ich eine für das OG Und eine für das EG habe...
Mit den Reading wäre es toll, um dies für DOIF nutzen zu können...
Danke euch
Sorry, wenn ich nerve, wollte nur fragen, ob da irgendwas geplant ist, hinten übergefallen ist, oder irrelevant wegen Valetudo?
Man könnte ja als reading-Value Original, valetudo oder valetudore nutzen?
lg und schönes WE
Zitat von: Markus M. am 18 April 2020, 18:19:38
Hier ist eine Kombi eurer neuen Geräte. Bitte testen ob noch alles funktioniert.
Wegen der Temperaturen solltet ihr mal mit Verbose 5 nachsehen was die Geräte senden.
Todo: Set zwischen den Geräten angleichen und das nutzlose LED on/off Reading rausnehmen ;)
Bei mir scheint alles Problemlos zu funktionieren.
Jetzt zeigt er mir auch andere Temperaturwerte korrekt an. Ich beobachte das weiterhin. Trotzdem habe ich noch zum meinem Technoline Temperatursensor 0,5°C Unterschied.
{
'value' => '23.6',
'code' => 0,
'piid' => 8,
'did' => 'temperature',
'siid' => 3
},
Hi guys,
irgendetwas mach ich hier falsch und bekomme meinen Air-purifier 3H nicht aus FHEM angesteuert. Habe das Token ausgelesen und im DEF angegeben, aber im log wird immer nur folgendes angezeigt :
2020.04.19 14:52:28 3: Airpurifier: initialized, using AES
2020.04.19 14:52:28 3: Airpurifier: disconnecting
2020.04.19 14:52:28 2: Airpurifier: connecting
2020.04.19 14:52:28 3: Airpurifier: initialized
in FHEM ist es wie folgt angelegt...:
Internals:
DEF 172.16.0.178 2a8e8480da1ff79eba332e93eead1652
FD 18
FUUID 5e9c1f6f-f33f-9e94-bada-57d06a639097e052
FVERSION 72_XiaomiDevice.pm:0.200610/2019-08-25
NAME Airpurifier
NR 271
STATE ???
TYPE XiaomiDevice
helper:
ConnectionState initialized
crypt AES
delay 60
ip 172.16.0.178
packetid 1
port 54321
token 2a8e8480da1ff79eba332e93eead1652
Attributes:
DbLogExclude .*
disable 0
room Climate
stateFormat pm25 µg/m³ / speed rpm / mode
subType AirPurifier
verbose 5
würde mich über Hilfe sehr freuen.
Danke und Gruß
Zitat von: zippo2k am 19 April 2020, 14:56:53
subType AirPurifier
hey,
im offizielen SVN wird der AirPurifier3H noch nicht unterstützt. Dafür musst du das hier runterladen. Die neuste Version ist von Markus.
Als subtype gibt es dann auch den AirPurifier3H
Zitat von: kotaro am 18 April 2020, 18:50:13Sorry, wenn ich nerve, wollte nur fragen, ob da irgendwas geplant ist, hinten übergefallen ist, oder irrelevant wegen Valetudo?
Man könnte ja als reading-Value Original, valetudo oder valetudore nutzen?
Valetudo Einbindung ist nicht geplant.
Wenn du da nur JSON 2 Aufrufe brauchst, solltest du das aber doch auch mit anderen Mitteln hinbekommen?
Zitat von: Andy89 am 19 April 2020, 15:33:43im offizielen SVN wird der AirPurifier3H noch nicht unterstützt.
Bitte mal allgemein testen ob die Version ok ist, dann kann ich das zeitnah ändern ;)
Zitat von: Markus M. am 18 April 2020, 18:19:38
Todo: Set zwischen den Geräten angleichen und das nutzlose LED on/off Reading rausnehmen ;)
hab das LED-Reading mal angeglichen.
Es funktionert noch alles wie bisher. Im Anhang ist der Patch / das angepasste Skript.
Beste Grüße
Andy
Zitat von: Andy89 am 19 April 2020, 15:33:43
hey,
im offizielen SVN wird der AirPurifier3H noch nicht unterstützt. Dafür musst du das hier runterladen. Die neuste Version ist von Markus.
Als subtype gibt es dann auch den AirPurifier3H
...Hi Andy, die letzte Version hatte ich schon installiert. AP3h habe ich jetzt auch ausgewählt, leider ohne Erfolg.
Zitat von: Andy89 am 19 April 2020, 16:56:27
hab das LED-Reading mal angeglichen.
Es funktionert noch alles wie bisher. Im Anhang ist der Patch / das angepasste Skript.
Beste Grüße
Andy
Sieht gut aus. LED hat die Werte bright, dim und off. Macht nicht anstatt "bright" -> "on" Sinn?
Zitat von: Markus M. am 18 April 2020, 18:19:38
Hier ist eine Kombi eurer neuen Geräte. Bitte testen ob noch alles funktioniert.
Hallo Markus,
vielen Dank, außer zwei Dingen alles OK für den "Evaporation Humidifier":
1)
Bitte noch den set-Befehl "dry" aufnehmen, ist mir wohl im patch irgendwie durchgegangen.
Statt eines neuen patches vielleicht einfacher die Codezeilen
elsif ($cmd eq 'dry')
{
my $packetid = $hash->{helper}{packetid};
$hash->{helper}{packetid} = $packetid+1;
$hash->{helper}{packet}{$packetid} = ($arg[0] eq "on") ? 'dry_on' : 'dry_off';
XiaomiDevice_WriteJSON($hash, '{"id":'.$packetid.',"method":"set_dry","params":["'.$arg[0].'"]}' );
}
in die "sub XiaomiDevice_Set($$@)" aufnehmen (wohl ab Zeile 1497 deiner in diesem Thread angehängten Version).
2)
Mit "set led bright/dim/off" funktioniert auch etwas nicht, es kommt als Rückmeldung im "error"-Reading immer "invalidarg".
Bin ehrlich gesagt überfragt, woher das rührt....
Vielen Dank nochmals,
Andreas
Wegen dem Powerproblem: Bei wir wird immer on angezeigt. Das steht im Log verbose 5:
{
'piid' => 2,
'siid' => 2,
'value' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
'did' => 'power',
'code' => 0
},
Bei speed lässt sich auch erkennen, dass er aus ist = 0
{
'siid' => 10,
'piid' => 8,
'code' => 0,
'value' => 0,
'did' => 'motor_speed'
},
Zitat von: zippo2k am 19 April 2020, 21:58:29
...Hi Andy, die letzte Version hatte ich schon installiert. AP3h habe ich jetzt auch ausgewählt, leider ohne Erfolg.
ist dein Luftreiniger im gleichen Subnetz wie der FHEM Host?
Bei mir ging es anfangs nicht, weil ich über UDP keine Verbindung bekommen habe. Habe dann den Luftreiniger in das Subnetz des FHEM Hosts gepackt und zack ging es.
edit:
Zitat von: TWART016 am 20 April 2020, 02:54:19
Sieht gut aus. LED hat die Werte bright, dim und off. Macht nicht anstatt "bright" -> "on" Sinn?
das habe ich einfach an die bisherig vorhanden angeglichen. Aber wenn das gewünscht ist, können wir das gerne so machen. ich bin da flexibel.
Zitat von: TWART016 am 20 April 2020, 13:22:46
Wegen dem Powerproblem: Bei wir wird immer on angezeigt. Das steht im Log verbose 5:
Mach mal bitte folgenden Log Eintrag
Log3 $name, 2, "$name: power: ".$json->{result}[0]{value};
vor folgende Code Zeilen(bei mir Zeile 2243 und 2283):
readingsBulkUpdate( $hash, "power", ($json->{result}[0]{value} eq "false" ? 'off' : 'on'), 1 ) if(defined($json->{result}[0]{value}));
In den genanten Zeilen wird Power ausgewertet und in die Readings übertragen. Da muss dann irgendwo der Fehler bei dir passieren.
Bei mir steht als Log-Eintrag dann folgendens:
2020.04.20 17:38:17.707 2: xz_xiaomi_airpurifier3H: power: 0
2020.04.20 17:38:28.532 2: xz_xiaomi_airpurifier3H: power: 1
eventuell müsste die Abfrage dann auch nicht auf "false" sein, sondern auf "0". Ist das vielleicht "sicherer"?
Beste Grüße
Andy
Zitat von: Andy89 am 20 April 2020, 17:33:11
ist dein Luftreiniger im gleichen Subnetz wie der FHEM Host?
Bei mir ging es anfangs nicht, weil ich über UDP keine Verbindung bekommen habe. Habe dann den Luftreiniger in das Subnetz des FHEM Hosts gepackt und zack ging es.
Mit einer Unifi Firewall?
Zitat von: Andy89 am 20 April 2020, 17:33:11
edit:das habe ich einfach an die bisherig vorhanden angeglichen. Aber wenn das gewünscht ist, können wir das gerne so machen. ich bin da flexibel.
fände ich sinnvoll. Andere Module wir Wifilight nutzen auch on/off/dim.
Zitat von: Andy89 am 20 April 2020, 17:42:39
Mach mal bitte folgenden Log Eintrag
Log3 $name, 2, "$name: power: ".$json->{result}[0]{value};
vor folgende Code Zeilen(bei mir Zeile 2243 und 2283):
readingsBulkUpdate( $hash, "power", ($json->{result}[0]{value} eq "false" ? 'off' : 'on'), 1 ) if(defined($json->{result}[0]{value}));
In den genanten Zeilen wird Power ausgewertet und in die Readings übertragen. Da muss dann irgendwo der Fehler bei dir passieren.
Bei mir steht als Log-Eintrag dann folgendens:
2020.04.20 17:38:17.707 2: xz_xiaomi_airpurifier3H: power: 0
2020.04.20 17:38:28.532 2: xz_xiaomi_airpurifier3H: power: 1
eventuell müsste die Abfrage dann auch nicht auf "false" sein, sondern auf "0". Ist das vielleicht "sicherer"?
Sobald ich das Gerät einschalte ist power nun 1, davor 0. Das Reading im Device ist aber immer auf on.
{
'piid' => 2,
'siid' => 2,
'value' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
'code' => 0,
'did' => 'power'
},
2020.04.20 21:01:04 2: Xiaomi_AirPurifier3: power: 1
{
'code' => 0,
'value' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
'siid' => 2,
'did' => 'power',
'piid' => 2
},
2020.04.20 20:56:04 2: Xiaomi_AirPurifier3: power: 0
Offtopic: @Andy was ist XiaomiMapCreator?
Zitat von: TWART016 am 20 April 2020, 21:12:10
Mit einer Unifi Firewall?
ich habe extra versucht alle UDP Pakete durchzulassen, aber irgendwo war da wohl noch im Unifi Controller ein Fehler drin, weil es nicht ging und ich habs dann einfach aufgegeben - fürs erste
Zitat von: TWART016 am 20 April 2020, 21:12:10
fände ich sinnvoll. Andere Module wir Wifilight nutzen auch on/off/dim.
siehe patch / neue Datei ;)
Zitat von: TWART016 am 20 April 2020, 21:12:10
Sobald ich das Gerät einschalte ist power nun 1, davor 0. Das Reading im Device ist aber immer auf on.
ich habe mal die Abfragen auf 0 umgebaut statt false. vielleicht hilft dir das...
Zitat von: TWART016 am 20 April 2020, 21:12:10
Offtopic: @Andy was ist XiaomiMapCreator?
ich habe auf meinem Staubsauger valetudo laufen und im Docker dann "ICantBelieveItsNotValetudo" (https://github.com/Hypfer/ICantBelieveItsNotValetudo (https://github.com/Hypfer/ICantBelieveItsNotValetudo))
Das ist quasi ein Service, der die Karte live generiert und sobald der Staubsauger zurück ist, erstell ich ein PNG aus der Map per wget und schick mir das per Telegram. Im Anhang ist dazu ein Bild, wie ich ihn die Küche geschickt habe mit anschließender Spot Reinigung, weil beim Brötchen schneiden Krümmel auf den Boden gefallen sind ;D
Edit: ich hab zu viel bei power von off auf 0 geändert. Beim Set muss das false bleiben. On/off geht somit gerade nicht. Reparier ich morgen früh. Deswegen nehme ich den Patch und das Skript nochmal raus.
Zitat von: Andy89 am 20 April 2020, 23:12:40
ich habe extra versucht alle UDP Pakete durchzulassen, aber irgendwo war da wohl noch im Unifi Controller ein Fehler drin, weil es nicht ging und ich habs dann einfach aufgegeben - fürs erste
Wenn du da jemals eine Lösung findest, teile die hier bitte mit. Ich habe das gleiche Problem mit meinen beiden Xiaomi SmartFans. Ich musste sie in das gleiche VLAN packen in dem sich auch mein FHEM Server befindet. Meinem Roborock S50 war das egal. Der hängt so wie es sein soll, schön brav in meinem IoT-VLAN.
Gruß Hoppel
Zitat von: hoppel118 am 21 April 2020, 00:08:17
Wenn du da jemals eine Lösung findest, teile die hier bitte mit. Ich habe das gleiche Problem mit meinen beiden Xiaomi SmartFans. Ich musste sie in das gleiche VLAN packen in dem sich auch mein FHEM Server befindet. Meinem Roborock S50 war das egal. Der hängt so wie es sein soll, schön brav in meinem IoT-VLAN.
mache ich - aber meine Motivation, sich darum zu kümmern ist sehr gering. ???
ich habe hier den Patch und das Skript angehängt.
Zitat von: Andy89 am 21 April 2020, 07:46:42
mache ich - aber meine Motivation, sich darum zu kümmern ist sehr gering. ???
ich habe hier den Patch und das Skript angehängt.
Funktioniert bei mir :)
Zitat von: Andy89 am 21 April 2020, 07:46:42
mache ich - aber meine Motivation, sich darum zu kümmern ist sehr gering. ???
Ok, dann schauen wir mal, ob das irgendwann mal jemand herausfindet... ;)
Gruß Hoppel
Hi,
ich habe seit dem Firmware Update das Problem das mein Saugi bei set charge nicht mehr direkt zum Dock düst, sondern nur erstmal aufhört.
Wie kann man das am schlausten fixen?
Ich nutze Alexa um ihn zu steuern. Ggf. hat ja jemand ne super duper schlaue Lösung
Zitat von: Andy89 am 20 April 2020, 17:33:11
ist dein Luftreiniger im gleichen Subnetz wie der FHEM Host?
Bei mir ging es anfangs nicht, weil ich über UDP keine Verbindung bekommen habe. Habe dann den Luftreiniger in das Subnetz des FHEM Hosts gepackt und zack ging es.
edit:das habe ich einfach an die bisherig vorhanden angeglichen. Aber wenn das gewünscht ist, können wir das gerne so machen. ich bin da flexibel.
Guten Morgen Andy,
hatte ich gemacht, der 3H ist jetzt per Fritzbox im gleichen Subnet wie FHEM. Läst sich auch pingen usw. Im Log bekomme ich nur "Airpurifier: initialized, using AES".
wenn ich dann einen "set Airpurifier reconnect" ausführe, bekomme ich "XiaomiDevice Airpurifier is disabled. Aborting... ".
Wenn ich global logging auf 4 setze bekomme ich:
2020.04.19 11:50:56 1: PERL WARNING: Bareword found where operator expected at ./FHEM/72_XiaomiDevice.pm line 1, near "72_XiaomiDevice_org"
2020.04.19 11:50:56 1: PERL WARNING: (Missing operator before XiaomiDevice_org?)
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 1, near "pm 2020"
2020.04.19 11:50:56 1: PERL WARNING: (Do you need to predeclare pm?)
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 1, near "15 22"
2020.04.19 11:50:56 1: PERL WARNING: (Missing operator before 22?)
2020.04.19 11:50:56 1: PERL WARNING: Bareword found where operator expected at ./FHEM/72_XiaomiDevice.pm line 2, near "72_XiaomiDevice"
2020.04.19 11:50:56 1: PERL WARNING: (Missing operator before XiaomiDevice?)
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 2, near "pm 2020"
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 2, near "16 22"
2020.04.19 11:50:56 1: PERL WARNING: Array found where operator expected at ./FHEM/72_XiaomiDevice.pm line 3, near "@@"
2020.04.19 11:50:56 1: PERL WARNING: (Missing semicolon on previous line?)
2020.04.19 11:50:56 1: PERL WARNING: Array found where operator expected at ./FHEM/72_XiaomiDevice.pm line 3, near "5 @@"
2020.04.19 11:50:56 1: PERL WARNING: (Missing operator before @@?)
2020.04.19 11:50:56 1: reload: Error:Modul 72_XiaomiDevice deactivated:
Unrecognized character \xEF; marked by <-- HERE after <-- HERE near column 2 at ./FHEM/72_XiaomiDevice.pm line 4, <$fh> line 2209.
2020.04.19 11:50:56 0: Unrecognized character \xEF; marked by <-- HERE after <-- HERE near column 2 at ./FHEM/72_XiaomiDevice.pm line 4, <$fh> line 2209.
scheine wohl irgendetwas mit dem Ersetzen des Moduls falsch gemacht zu haben...
Und nochmal vielen Dank für deine Hilfe!
Zitat von: zippo2k am 26 April 2020, 11:34:52
Guten Morgen Andy,
hatte ich gemacht, der 3H ist jetzt per Fritzbox im gleichen Subnet wie FHEM. Läst sich auch pingen usw. Im Log bekomme ich nur "Airpurifier: initialized, using AES".
wenn ich dann einen "set Airpurifier reconnect" ausführe, bekomme ich "XiaomiDevice Airpurifier is disabled. Aborting... ".
Wenn ich global logging auf 4 setze bekomme ich:
2020.04.19 11:50:56 1: PERL WARNING: Bareword found where operator expected at ./FHEM/72_XiaomiDevice.pm line 1, near "72_XiaomiDevice_org"
2020.04.19 11:50:56 1: PERL WARNING: (Missing operator before XiaomiDevice_org?)
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 1, near "pm 2020"
2020.04.19 11:50:56 1: PERL WARNING: (Do you need to predeclare pm?)
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 1, near "15 22"
2020.04.19 11:50:56 1: PERL WARNING: (Missing operator before 22?)
2020.04.19 11:50:56 1: PERL WARNING: Bareword found where operator expected at ./FHEM/72_XiaomiDevice.pm line 2, near "72_XiaomiDevice"
2020.04.19 11:50:56 1: PERL WARNING: (Missing operator before XiaomiDevice?)
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 2, near "pm 2020"
2020.04.19 11:50:56 1: PERL WARNING: Number found where operator expected at ./FHEM/72_XiaomiDevice.pm line 2, near "16 22"
2020.04.19 11:50:56 1: PERL WARNING: Array found where operator expected at ./FHEM/72_XiaomiDevice.pm line 3, near "@@"
2020.04.19 11:50:56 1: PERL WARNING: (Missing semicolon on previous line?)
2020.04.19 11:50:56 1: PERL WARNING: Array found where operator expected at ./FHEM/72_XiaomiDevice.pm line 3, near "5 @@"
2020.04.19 11:50:56 1: PERL WARNING: (Missing operator before @@?)
2020.04.19 11:50:56 1: reload: Error:Modul 72_XiaomiDevice deactivated:
Unrecognized character \xEF; marked by <-- HERE after <-- HERE near column 2 at ./FHEM/72_XiaomiDevice.pm line 4, <$fh> line 2209.
2020.04.19 11:50:56 0: Unrecognized character \xEF; marked by <-- HERE after <-- HERE near column 2 at ./FHEM/72_XiaomiDevice.pm line 4, <$fh> line 2209.
scheine wohl irgendetwas mit dem Ersetzen des Moduls falsch gemacht zu haben...
Und nochmal vielen Dank für deine Hilfe!
So, hatte das 72_XiaomiDevice.pm jetzt richtig eingebunden (falsche Rechte auf das File), aber no-go. bekomme nur ständig disconnected Meldungen, aber keine Daten.
Hätte irgendwer nen Tip bitte?
Zitat von: zippo2k am 03 Mai 2020, 19:23:49
So, hatte das 72_XiaomiDevice.pm jetzt richtig eingebunden (falsche Rechte auf das File), aber no-go. bekomme nur ständig disconnected Meldungen, aber keine Daten.
Hätte irgendwer nen Tip bitte?
der Token stimmt - der ändert sich ja mit jedem WLAN Wechsel? Was steht denn jetzt bei verbose 5, wenn ein dis-/connect kommt?
hi, habe seit heute den mi Air Purifier 3h - leider zum Vergleich kein anderes Model?
Kann es sein, dass sich hier die API komplett geändert hat zur 2er-Serie, oder mache ich etwas falsch?
Verstehe nicht, wieso das Device immer wieder auf "disabled" gestellt wird in FHEM?
im Log bekomme ich das:
20.05.05 21:22:28 1: LuftReiniger: Token could not be retrieved automatically from already cloud-connected device!
2020.05.05 21:22:28 5: LuftReiniger < 2131002000000000123f347500005aaeffffffffffffffffffffffffffffffff (32)
2020.05.05 21:22:28 5: LuftReiniger > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.05 21:22:28 5: LuftReiniger Send SUCCESS
2020.05.05 21:22:28 5: LuftReiniger: initSend
2020.05.05 21:22:28 3: LuftReiniger: initialized
2020.05.05 21:22:28 2: LuftReiniger: connecting
2020.05.05 21:22:28 3: LuftReiniger: disconnecting
2020.05.05 21:22:27 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:27 4: LuftReiniger: write {"id":4,"method":"get_prop","params":["power","mode","motor1_speed","temp_dec","humidity","aqi","average_aqi","favorite_level","use_time","purify_volume","filter1_life","f1_hour_used","f1_hour","button_pressed","motor2_speed"]} (227)
2020.05.05 21:22:24 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:24 4: LuftReiniger: write {"id":3,"method":"get_prop","params":["buzzer","led_b","child_lock","app_extra","act_sleep","sleep_time","volume","rfid_product_id","rfid_tag"]} (144)
2020.05.05 21:22:21 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:21 4: LuftReiniger: write {"id":2,"method":"miIO.info","params":[""]} (43)
2020.05.05 21:22:21 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:21 4: LuftReiniger: write {"id":1,"method":"miIO.wifi_assoc_state","params":[""]} (55)
2020.05.05 21:22:17 1: LuftReiniger: Token could not be retrieved automatically from already cloud-connected device!
2020.05.05 21:22:17 5: LuftReiniger < 2131002000000000123f347500005aa3ffffffffffffffffffffffffffffffff (32)
2020.05.05 21:22:17 5: LuftReiniger > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.05 21:22:17 5: LuftReiniger Send SUCCESS
2020.05.05 21:22:17 5: LuftReiniger: initSend
2020.05.05 21:22:17 3: LuftReiniger: initialized
2020.05.05 21:22:17 2: LuftReiniger: connecting
2020.05.05 21:22:17 3: LuftReiniger: disconnecting
schöne Grüße
Markus
Zitat von: mkress am 05 Mai 2020, 21:28:00
hi, habe seit heute den mi Air Purifier 3h - leider zum Vergleich kein anderes Model?
Kann es sein, dass sich hier die API komplett geändert hat zur 2er-Serie, oder mache ich etwas falsch?
Verstehe nicht, wieso das Device immer wieder auf "disabled" gestellt wird in FHEM?
im Log bekomme ich das:
20.05.05 21:22:28 1: LuftReiniger: Token could not be retrieved automatically from already cloud-connected device!
2020.05.05 21:22:28 5: LuftReiniger < 2131002000000000123f347500005aaeffffffffffffffffffffffffffffffff (32)
2020.05.05 21:22:28 5: LuftReiniger > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.05 21:22:28 5: LuftReiniger Send SUCCESS
2020.05.05 21:22:28 5: LuftReiniger: initSend
2020.05.05 21:22:28 3: LuftReiniger: initialized
2020.05.05 21:22:28 2: LuftReiniger: connecting
2020.05.05 21:22:28 3: LuftReiniger: disconnecting
2020.05.05 21:22:27 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:27 4: LuftReiniger: write {"id":4,"method":"get_prop","params":["power","mode","motor1_speed","temp_dec","humidity","aqi","average_aqi","favorite_level","use_time","purify_volume","filter1_life","f1_hour_used","f1_hour","button_pressed","motor2_speed"]} (227)
2020.05.05 21:22:24 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:24 4: LuftReiniger: write {"id":3,"method":"get_prop","params":["buzzer","led_b","child_lock","app_extra","act_sleep","sleep_time","volume","rfid_product_id","rfid_tag"]} (144)
2020.05.05 21:22:21 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:21 4: LuftReiniger: write {"id":2,"method":"miIO.info","params":[""]} (43)
2020.05.05 21:22:21 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:22:21 4: LuftReiniger: write {"id":1,"method":"miIO.wifi_assoc_state","params":[""]} (55)
2020.05.05 21:22:17 1: LuftReiniger: Token could not be retrieved automatically from already cloud-connected device!
2020.05.05 21:22:17 5: LuftReiniger < 2131002000000000123f347500005aa3ffffffffffffffffffffffffffffffff (32)
2020.05.05 21:22:17 5: LuftReiniger > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.05 21:22:17 5: LuftReiniger Send SUCCESS
2020.05.05 21:22:17 5: LuftReiniger: initSend
2020.05.05 21:22:17 3: LuftReiniger: initialized
2020.05.05 21:22:17 2: LuftReiniger: connecting
2020.05.05 21:22:17 3: LuftReiniger: disconnecting
schöne Grüße
Markus
hast du diese Version genommen?
https://forum.fhem.de/index.php/topic,73052.msg1045277.html#msg1045277
danke für die schnelle Antwort - hatte ich "natürlich" nicht :-/
Ist jetzt drin aber selbes Ergebnis - nach löschen des disabled-Attributes ist es danach sofort wieder drin.
Benötigt der 3h jetzt auch ein Token (bei der 2er-Version steht ja, dass es nicht notwendig ist).
Internals:
DEF 192.168.178.76
FD 37
FUUID 5eb1988e-f33f-a682-b0d1-0432d2b70383e4d7
NAME LuftReiniger
NR 312
STATE pm25 µg/m³ / speed rpm / mode
TYPE XiaomiDevice
READINGS:
2020-05-05 21:10:41 state disconnected
helper:
ConnectionState initialized
crypt AES
delay 60
dev 123f
id 3475
ip 192.168.178.76
last_read 1588707930
packetid 15
port 54321
sequence 1588683335
packet:
1 wifi_stats
10 air_data_3H
11 wifi_stats
12 device_info
13 air_settings_3H
14 air_data_3H
2 device_info
3 wifi_stats
4 device_info
5 air_settings_3H
6 air_data_3H
7 wifi_stats
8 device_info
9 air_settings_3H
Attributes:
disable 1
stateFormat pm25 µg/m³ / speed rpm / mode
subType AirPurifier3H
verbose 5
2020.05.05 21:45:39 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:45:39 4: LuftReiniger: write {"id":14,"method":"get_properties","params":[{"did": "power", "siid": 2, "piid": 2}, {"did": "fan_level", "siid": 2, "piid": 4}, {"did": "mode", "siid": 2, "piid": 5}, {"did": "humidity", "siid": 3, "piid": 7}, {"did": "temperature", "siid": 3, "piid": 8}, {"did": "aqi", "siid": 3, "piid": 6}, {"did": "filter_life_remaining", "siid": 4, "piid": 3}, {"did": "purify_volume", "siid": 13, "piid": 1}, {"did": "filter_hours_used", "siid": 4, "piid": 5}, {"did": "favorite_level", "siid": 10, "piid": 10}, {"did": "favorite_rpm", "siid": 10, "piid": 7},{"did": "motor_speed", "siid": 10, "piid": 8}, {"did": "use_time", "siid": 12, "piid": 1},{"did": "average_aqi", "siid": 13, "piid": 2}]} (688)
2020.05.05 21:45:36 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:45:36 4: LuftReiniger: write {"id":13,"method":"get_properties","params":[{"did": "led", "siid": 6, "piid": 6},{"did": "buzzer", "siid": 5, "piid": 1}, {"did": "buzzer_volume", "siid": 5, "piid": 2},{"did": "led_brightness", "siid": 6, "piid": 1},{"did": "child_lock", "siid": 7, "piid": 1}, {"did": "app_extra", "siid": 15, "piid": 1}, {"did": "filter_rfid_product_id", "siid": 14, "piid": 3}, {"did": "filter_rfid_tag", "siid": 14, "piid": 1}]} (417)
2020.05.05 21:45:33 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:45:33 4: LuftReiniger: write {"id":12,"method":"miIO.info","params":[""]} (44)
2020.05.05 21:45:33 3: XiaomiDevice LuftReiniger is disabled, communication cancelled.
2020.05.05 21:45:33 4: LuftReiniger: write {"id":11,"method":"miIO.wifi_assoc_state","params":[""]} (56)
2020.05.05 21:45:30 1: LuftReiniger: Token could not be retrieved automatically from already cloud-connected device!
2020.05.05 21:45:30 5: LuftReiniger < 2131002000000000123f347500006013ffffffffffffffffffffffffffffffff (32)
2020.05.05 21:45:29 5: LuftReiniger > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.05 21:45:29 5: LuftReiniger Send SUCCESS
2020.05.05 21:45:29 5: LuftReiniger: initSend
2020.05.05 21:45:29 3: LuftReiniger: initialized
2020.05.05 21:45:29 2: LuftReiniger: connecting
2020.05.05 21:45:29 3: LuftReiniger: disconnecting
Zitat von: mkress am 05 Mai 2020, 21:49:30
Benötigt der 3h jetzt auch ein Token (bei der 2er-Version steht ja, dass es nicht notwendig ist).
ja der Token ist notwendig. Ohne diesen geht es nicht.
super, scheint zu funktionieren mit Token.
Hatte erst Probleme auf meinem Mi A2 (Android 10) das Token zu bekommen.
damit war es ganz easy: https://github.com/Maxmudjon/com.xiaomi-miio/blob/master/docs/obtain_token.md - mit dem Mitoolkit und manuell mit adb konnte ich kein Backup erstellen.
ZitatNon-Rooted Android Phones
Extract token from log file
This method will only work when you install the Mi Home app version v5.4.54. You can find it here. It looks like Xiaomi made a mistake in this app version where the log file written to internal memory exposes the device tokens of your Xiaomi miio devices.
Setup your Android device with the Mi Home app version 5.4.54
Log in with you Xiaomi account
Use a file explorer to navigate to /sdcard/SmartHome/logs/Plug_Devicemanager/
Look for a log file named yyyy-mm-dd.txt and open it with a file editor
Search for a string similar to this with you device name and token
https://android-apk.org/com.xiaomi.smarthome/43397902-mi-home/
PS: in der XiaomiDevice_3h_update2 habe ich folgenden Warning noch in den Logs gesehen:
2020.05.06 09:56:45 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/72_XiaomiDevice.pm line 2243.
schöne Grüße
Markus
Zitat von: mkress am 06 Mai 2020, 09:53:34
PS: in der XiaomiDevice_3h_update2 habe ich folgenden Warning noch in den Logs gesehen:
2020.05.06 09:56:45 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/72_XiaomiDevice.pm line 2243.
Was steht bei dir in der Zeile?
Update 2020-05-07Die neue Version läuft bei mir soweit stabil (auch wenn ich die neuen Geräte natürlich nicht testen kann) und ist seit gerade eben im SVN.
Morgen bitte mal ein Update machen und beobachten, bei Fehlern oder Problemen hier melden ;)
Bin nur am Handy. Habe aber das File von hier verwendet:
https://forum.fhem.de/index.php?action=dlattach;topic=73052.0;attach=134701
Zitat von: mkress am 06 Mai 2020, 12:36:42
Bin nur am Handy. Habe aber das File von hier verwendet:
https://forum.fhem.de/index.php?action=dlattach;topic=73052.0;attach=134701
Ahh ok, das war nur das Debugging das nicht mit im Update ist
Log3 $name, 2, "$name: power: ".$json->{result}[0]{value};
Danke ;)
Hi,
ich habe eben das Update gemacht.
Folgendes funktioniert nicht
- favorite_level
- led_brightness
Fehler jeweils:
Unknown argument favorite_level, choose one of reconnect:noArg wifi_setup on:noArg off:noArg mode:auto,fan,favorite,silent favorite_level:slider,0,1,14 fan_level:1,2,3 buzzer:on,off led:on,off led_brightness:bright,dim,off child_lock:on,off
In einer der letzten Beta's gab es bei led nur on/off/dim. In der Version ist wieder led_brightness mit drin. Vielleicht könnte man dies noch anpassen.
Copy/paste Fehler, mach morgen früh nochmal ein Update und probiers damit.
Zitat von: Markus M. am 07 Mai 2020, 23:38:01
Copy/paste Fehler, mach morgen früh nochmal ein Update und probiers damit.
Gut, der Fehler ist nun weg.
Könnte man noch den Befehl hinter led von bright zu on ändern? Also: on / dim / off?
Zitat von: TWART016 am 08 Mai 2020, 09:16:00Könnte man noch den Befehl hinter led von bright zu on ändern? Also: on / dim / off?
Nein, da das dann nicht mehr zu allen anderen Geräten passt.
Du solltest im Set "on" alternativ zu "bright" verwenden können.
Ich werde die Readings aber auch noch vereinigen.
Kannst du mal bitte folgendes nacheinander über die App einstellen und schauen was die LED Readings danach anzeigen:
- LED Brightness auf dim
- LED off
Mich interessiert ob intern auch die Kombination aus led == off und led brightness != off möglich ist.
Zitat von: Markus M. am 08 Mai 2020, 10:23:14
Nein, da das dann nicht mehr zu allen anderen Geräten passt.
Du solltest im Set "on" alternativ zu "bright" verwenden können.
Ich werde die Readings aber auch noch vereinigen.
Kannst du mal bitte folgendes nacheinander über die App einstellen und schauen was die LED Readings danach anzeigen:
- LED Brightness auf dim
- LED off
Mich interessiert ob intern auch die Kombination aus led == off und led brightness != off möglich ist.
mit set led dim kommt das heraus:
Xiaomi_AirPurifier3 2020-05-08 10:44:00 led dim
Xiaomi_AirPurifier3 2020-04-20 00:34:36 led_brightness off
led off
Xiaomi_AirPurifier3 2020-05-08 10:46:43 led off
Xiaomi_AirPurifier3 2020-04-20 00:34:36 led_brightness off
Ich finde es verwirrend, dass bei dim das Reading led_brightness off ist.
Du darfst die Einstellungen nicht über FHEM setzen sondern über die App.
In FHEM dann nur die Daten abrufen und gucken was jeweils mit den beiden Readings passiert.
Hallo Markus,
danke nochmals für die Aufnahme vom EvpHumidifier.
Habe ich in meinen Ergänzungen vielleicht noch etwas übersehen?
Bei
set EvpHumidifier dry off
set evpHumidifier dry on
bekomme ich noch folgende Einträge im FHEM.log:
2020.05.08 09:27:00.047 3: XXDG_XLB01: type dry_off not implemented
$VAR1 = {
'result' => [
'ok'
],
'id' => 289
};
2020.05.08 09:27:08.852 3: XXDG_XLB01: type dry_on not implemented
$VAR1 = {
'id' => 291,
'result' => [
'ok'
]
};
Trotzdem wird die Einstellung am Gerät geändert.
Und zwei weitere Kleinigkeiten habe ich noch:
-"dry" ist ja eher ein Setting, wird aber nur bei "get EvpHumidifier data" aktualisiert. Hast Du eine Idee, wie das geändert werden kann, dass das Reading bei "get EvpHumidifier settings" aktualisiert wird?
- Bitte noch die Zeile
readingsBulkUpdate( $hash, "depth", ($json->{result}[4]), 1 ) if(defined($json->{result}[4]));
im if-Konstrukt
if($msgtype eq "evphum_data")
abändern auf
readingsBulkUpdate( $hash, "depth", (int($json->{result}[4]/125*100)), 1 ) if(defined($json->{result}[4]));
damit auch wirklich Prozentwerte für den Wassertank-Füllstand angezeigt werden. Habe festgestellt, dass "depth" bei vollem Wassertank den Wert 125 liefert.
Und vielleicht hast Du noch eine Idee für das LED-Thema (Punkt 2 aus diesem Beitrag (https://forum.fhem.de/index.php/topic,73052.msg1044933.html#msg1044933))?
Vielen Dank und Grüße,
Andreas
Zitat von: Markus M. am 08 Mai 2020, 10:55:23
Du darfst die Einstellungen nicht über FHEM setzen sondern über die App.
In FHEM dann nur die Daten abrufen und gucken was jeweils mit den beiden Readings passiert.
Das habe ich.
Das Reading led_brightness wurde auch seit fast 3 Wochen nicht mehr verändert.
Zitat von: Andy89 am 03 Mai 2020, 19:33:00
der Token stimmt - der ändert sich ja mit jedem WLAN Wechsel? Was steht denn jetzt bei verbose 5, wenn ein dis-/connect kommt?
Super, danke für den Tip. Hatte leider vergessen das sich da Token beim WLAN wechsel ändert. Probier es dieses WE mal.
Viele Grüße,
Carsten
Zitat von: scooty am 08 Mai 2020, 11:16:46
type dry_off not implemented
type dry_on not implemented
dry Reading bei "get EvpHumidifier settings"
Prozentwerte für den Wassertank-Füllstand
LED-Thema (Punkt 2)
Bitte testen, LED set mal mit verbose 5 mitloggen sollte das immer noch nicht funktionieren.
Zitat von: Markus M. am 08 Mai 2020, 18:24:35
Bitte testen, LED set mal mit verbose 5 mitloggen sollte das immer noch nicht funktionieren.
Mit der Version ist das im Log:
led off:
2020.05.08 19:50:06 4: Xiaomi_AirPurifier3: msg ref is ARRAY
2020.05.08 19:50:06 4: Xiaomi_AirPurifier3: parse id 8 / air_settings_3H
};
'id' => 8
],
}
'value' => '81:67:b8:2a:77:43:4'
'piid' => 1,
'code' => 0,
'siid' => 14,
'did' => 'filter_rfid_tag',
{
},
'did' => 'filter_rfid_product_id'
'siid' => 14,
'value' => '0:0:31:31',
'piid' => 3,
'code' => 0,
{
},
'code' => 0
'piid' => 1,
'value' => 0,
'siid' => 15,
'did' => 'app_extra',
{
},
'siid' => 7
'did' => 'child_lock',
'code' => 0,
'piid' => 1,
'value' => $VAR1->{'result'}[1]{'value'},
{
},
'piid' => 1
'value' => 2,
'code' => 0,
'siid' => 6,
'did' => 'led_brightness',
{
},
'did' => 'buzzer_volume'
'siid' => 5,
'piid' => 2,
'code' => -4001,
{
},
'piid' => 1
'value' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
'code' => 0,
'did' => 'buzzer',
'siid' => 5,
{
},
'siid' => 6
'did' => 'led',
'code' => 0,
'value' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
'piid' => 6,
{
'result' => [
$VAR1 = {
2020.05.08 19:50:06 5: Xiaomi_AirPurifier3: parse id 8
{"id":8,"result":[{"did":"led","siid":6,"piid":6,"code":0,"value":true},{"did":"buzzer","siid":5,"piid":1,"code":0,"value":false},{"did":"buzzer_volume","siid":5,"piid":2,"code":-4001},{"did":"led_brightness","siid":6,"piid":1,"code":0,"value":2},{"did":"child_lock","siid":7,"piid":1,"code":0,"value":false},{"did":"app_extra","siid":15,"piid":1,"code":0,"value":0},{"did":"filter_rfid_product_id","siid":14,"piid":3,"code":0,"value":"0:0:31:31"},{"did":"filter_rfid_tag","siid":14,"piid":1,"code":0,"value":"81:67:b8:2a:77:43:4"}]}
2020.05.08 19:50:06 5: Xiaomi_AirPurifier3: decrypted
2020.05.08 19:50:06 5: Xiaomi_AirPurifier3 < 213102400000000010dc536e000605fbdbd1c1ca78bb3a880b801db66872b3fa5d0f11a17ef8765614687943b392f4d30c188a1bc4826a9fe3cc6530d72ffc6f549a7b723e1ff455586bcf6747a977366c2ab870ddf61e64cf98cf23c35b0e90a27927847380d64e84a083487957488189f6ccf35f9be9f3b5b7fd3fb0613848138b952cffe01e0124840f5e28c0bd3685812082598c20a294a12d6a4aa79d9f927b3e6e431d9daceea783ba9e42962d12738e3df39556f2cf2905176db5694a8fe25f41a6b4d08ee6f3bf78ad03ff3a34de11c06b8116fb4072c128b18610211f679ae023ad7778a8ec106a5b1b2fd9b4e688df80b2c57b949a44733d9e893b76de0144f075343677782c213c65c355564c504aee1f49583615c927cc4fec60eca7892b40d558bc29b0b0301b0efd856910e6e1d81863df0df2e897db55cf1950001edd8ed71a46122e86b5cc7b3676aa4d7d40eb9437cc96e97fccc6b8311f8eb2ce4de08df140242a29b60cac0447beafbf11601b328f61820e3209a20408293ab241ac1422d1f281b0ab1257c5ddb09d45b74a59096aef7ec7242e85011924e8ac38a0e6f2a9e1af15516b5420632e06c3d0ae6a612002744cfedb0fa314a18bee4ec445038f1d3f3a7a88712056a987090d1271abab9068e3a85b8f42048b606889bb745f8622a6da059b9d39912916e5194e2457ef47318338d0dfa48ef39e8e22be6aaede4a89db75532d5894e3758d789b61348b3d4824bff2020bcf7da27d6da7b4da00473d835fa87ff083bd450ca1d4b16ecb9620e65b82415228 (576)
2020.05.08 19:50:06 5: Xiaomi_AirPurifier3 > 213101d00000000010dc536e000605fc207b907aa8574384a7d537ad47ed45d032510d8eb56f3afd6c3438d9d3a39508f44cf115117aea28070a1dd8bcd5529d1576a19ae4f4ab748c4754b0951694892d654505277750229d1f57770806bddfdf5d68591ec88b4dac575b82681d09c134804081631e9dba0a095f004cd3977cbd82b3219acaa7314b2aabb92eee1c951a86310e931f0e1ae819307e0516889e260081544c621a19a3875f771188713148ff4a9cb993b81f006010fecc7f76774a4c2dd6fc6a92e62678656e935e55e9928e1a3d615b7985ef3cf0acd9589213a41a771ee69f1a714243131827d4235c2b92a5cd4ebae0e7a2c5fb71d2444782138c236feab5dc9491f6de864d28d2b8e3c4ef9567c8c311af217bd1382dd8414f2424b275c63ec9fb6a7a356adcf62c5f12d6743473aa88e7eb1d157651673480ea33542929618cab529cbfc6d25bdfd711f7c67456dae9632ea3c277bd35d24bb1c715a4ede139dc2f034f673efb438f8fba7bbad07ce3f5ca34b8fb94de19b4b648a3104c1838f11dc96b5cee492e193240e0fa9a9a51ba42f793bf6ac1e1a3d17ba626be31b786373a12f650c973e7f656315a31f1ee409019026c694d6856ce2d36a02ab1e26e3a09271e8d3338
2020.05.08 19:50:06 5: Xiaomi_AirPurifier3 Send SUCCESS
2020.05.08 19:50:06 5: Xiaomi_AirPurifier3: send 213101d00000000010dc536e000605fc207b907aa8574384a7d537ad47ed45d032510d8eb56f3afd6c3438d9d3a39508f44cf115117aea28070a1dd8bcd5529d1576a19ae4f4ab748c4754b0951694892d654505277750229d1f57770806bddfdf5d68591ec88b4dac575b82681d09c134804081631e9dba0a095f004cd3977cbd82b3219acaa7314b2aabb92eee1c951a86310e931f0e1ae819307e0516889e260081544c621a19a3875f771188713148ff4a9cb993b81f006010fecc7f76774a4c2dd6fc6a92e62678656e935e55e9928e1a3d615b7985ef3cf0acd9589213a41a771ee69f1a714243131827d4235c2b92a5cd4ebae0e7a2c5fb71d2444782138c236feab5dc9491f6de864d28d2b8e3c4ef9567c8c311af217bd1382dd8414f2424b275c63ec9fb6a7a356adcf62c5f12d6743473aa88e7eb1d157651673480ea33542929618cab529cbfc6d25bdfd711f7c67456dae9632ea3c277bd35d24bb1c715a4ede139dc2f034f673efb438f8fba7bbad07ce3f5ca34b8fb94de19b4b648a3104c1838f11dc96b5cee492e193240e0fa9a9a51ba42f793bf6ac1e1a3d17ba626be31b786373a12f650c973e7f656315a31f1ee409019026c694d6856ce2d36a02ab1e26e3a09271e8d3338
2020.05.08 19:50:06 4: Xiaomi_AirPurifier3: write {"id":8,"method":"get_properties","params":[{"did": "led", "siid": 6, "piid": 6},{"did": "buzzer", "siid": 5, "piid": 1}, {"did": "buzzer_volume", "siid": 5, "piid": 2},{"did": "led_brightness", "siid": 6, "piid": 1},{"did": "child_lock", "siid": 7, "piid": 1}, {"did": "app_extra", "siid": 15, "piid": 1}, {"did": "filter_rfid_product_id", "siid": 14, "piid": 3}, {"did": "filter_rfid_tag", "siid": 14, "piid": 1}]} (416)
led dim:
2020.05.08 19:51:44 4: Xiaomi_AirPurifier3: msg ref is ARRAY
2020.05.08 19:51:44 4: Xiaomi_AirPurifier3: parse id 9 / air_settings_3H
};
'id' => 9
],
}
'siid' => 14
'did' => 'filter_rfid_tag',
'value' => '81:67:b8:2a:77:43:4',
'piid' => 1,
'code' => 0,
{
},
'siid' => 14
'did' => 'filter_rfid_product_id',
'piid' => 3,
'value' => '0:0:31:31',
'code' => 0,
{
},
'piid' => 1
'value' => 0,
'code' => 0,
'did' => 'app_extra',
'siid' => 15,
{
},
'value' => $VAR1->{'result'}[1]{'value'}
'piid' => 1,
'code' => 0,
'siid' => 7,
'did' => 'child_lock',
{
},
'siid' => 6
'did' => 'led_brightness',
'piid' => 1,
'value' => 1,
'code' => 0,
{
},
'did' => 'buzzer_volume'
'siid' => 5,
'piid' => 2,
'code' => -4001,
{
},
'value' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
'piid' => 1,
'code' => 0,
'did' => 'buzzer',
'siid' => 5,
{
},
'code' => 0
'piid' => 6,
'value' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
'siid' => 6,
'did' => 'led',
{
'result' => [
$VAR1 = {
2020.05.08 19:51:44 5: Xiaomi_AirPurifier3: parse id 9
{"id":9,"result":[{"did":"led","siid":6,"piid":6,"code":0,"value":true},{"did":"buzzer","siid":5,"piid":1,"code":0,"value":false},{"did":"buzzer_volume","siid":5,"piid":2,"code":-4001},{"did":"led_brightness","siid":6,"piid":1,"code":0,"value":1},{"did":"child_lock","siid":7,"piid":1,"code":0,"value":false},{"did":"app_extra","siid":15,"piid":1,"code":0,"value":0},{"did":"filter_rfid_product_id","siid":14,"piid":3,"code":0,"value":"0:0:31:31"},{"did":"filter_rfid_tag","siid":14,"piid":1,"code":0,"value":"81:67:b8:2a:77:43:4"}]}
2020.05.08 19:51:44 5: Xiaomi_AirPurifier3: decrypted
2020.05.08 19:51:44 5: Xiaomi_AirPurifier3 < 213102400000000010dc536e0006065d957aebd6324d545da8f0c73125077d72446dec569551928f93b22dd00279f1fa12231ac59a9030f1cf855963dc96de971678e6781aabe38b02b57ec13696ec5b71916efb689ca66f1ea6235a2cb02d9eb8ecde506426447e5a5fe8b5c3b3738024540a710a79f168235b71a768e1f20f24e22ac55b37e34b5744c4715a6ce152d496b5c48477facd7ad6a56131be5e7baa7c6255f9d09e22c2b12b38a26105b1e44be28a2c356bdf746209db0f2eacb296dc3bcae8608de571cdfc13c40b0b8932a5fc98be672b6e7205d45a49f230697d5e22f7e838f51c3f9a8bb0357deee64589da5fc2304cb57e28c443567a671c3f284c288c6d7a1b7432881519745dbcc4ca0555b0c3e0be4b2e920b302c9d1f30fa91bcf04938cfac83e6221d33ed2625b3a93b5e741e6ce8863c5f80d6607bcbae7c6b138f3371e4ba5d9c9fea38670e8f6c93316aace65bf6d0acacee0c683d5df21545e6d89c06904bad1758f515e46778ec65f2714726c884b70363757e5097b2db18b115327631c975790edee96e13bb38141e9ee4740a18e97e8750ce9938d6dfb59fc1da00960890756864b8fbd37afcdd9bcd233f9a5d24bed9e9a5e9434c5386c942bb9ba57781cd76b2f9684d6bed622530c785c152671a8fe72e970068f986f73910492638769e53747b1dc93bf968635d108c7f42985600829997a2d9e0dafdf36c3dc7f5af9028bb6ece3e03bb8c26577134c2c4ba01a90bfd16e8829e4f5c0c8debf37282393cf7dcfc182e9af0f7808b92e966c3b964a3c8 (576)
2020.05.08 19:51:43 5: Xiaomi_AirPurifier3 > 213101d00000000010dc536e0006065cffed83b99f8274bca3437499cbd3569ab4c4b906a2c09d2c24639b08d254be82a903938d42c3e693166b81d2666c95e77c3189cfd1a645bf34c4583c8c81834bd4fa7d1fb24bbd78f442f24db00d55ea8d217e3dc3b8766d1859161be39e3253bae54f90676a0fd23af43b1dd48402636277ede005383380d5c687b12376983ac15046c3d5b75e6b0c8c4df6a6655059cfeb215ea7cf63b4b3a3359abfa66e71996683dcae59a4bd16a248526253379e4cd543da0fa1733865d0600f6bed3b77069e99e19cb2a1724ee920e50d67b8980e05b20b09b97aa3549e67cbf8d7a91eac81c3e54a5b5550d9c7340567d7532df3dd532afc9fdba94c7d3b3955559eac0baf37e299a45a803051cc145022faaa18337fb83b721964bf595a28fb4f6a0139dbee06a8353e677f2b4e9aff8dbba13c8039507e5762586aabb5a62664cd6e3436a9b428b3268c1d49fc56e15700a50b385bf6fa5f6d7368c752b798c04c14798edb6e8f3214c2370ab73e6ae9717d313c65b9f92da7ebf6b41ff0679e84d20ebfde9eac3c063172fa2f1cc362f696eca61a5899ef6da54da1cb35dd35252d41d1c355eef776abaf1294be109b6a8d14b4c7d83205a1148b81f3406cc69c7a
2020.05.08 19:51:43 5: Xiaomi_AirPurifier3 Send SUCCESS
2020.05.08 19:51:43 5: Xiaomi_AirPurifier3: send 213101d00000000010dc536e0006065cffed83b99f8274bca3437499cbd3569ab4c4b906a2c09d2c24639b08d254be82a903938d42c3e693166b81d2666c95e77c3189cfd1a645bf34c4583c8c81834bd4fa7d1fb24bbd78f442f24db00d55ea8d217e3dc3b8766d1859161be39e3253bae54f90676a0fd23af43b1dd48402636277ede005383380d5c687b12376983ac15046c3d5b75e6b0c8c4df6a6655059cfeb215ea7cf63b4b3a3359abfa66e71996683dcae59a4bd16a248526253379e4cd543da0fa1733865d0600f6bed3b77069e99e19cb2a1724ee920e50d67b8980e05b20b09b97aa3549e67cbf8d7a91eac81c3e54a5b5550d9c7340567d7532df3dd532afc9fdba94c7d3b3955559eac0baf37e299a45a803051cc145022faaa18337fb83b721964bf595a28fb4f6a0139dbee06a8353e677f2b4e9aff8dbba13c8039507e5762586aabb5a62664cd6e3436a9b428b3268c1d49fc56e15700a50b385bf6fa5f6d7368c752b798c04c14798edb6e8f3214c2370ab73e6ae9717d313c65b9f92da7ebf6b41ff0679e84d20ebfde9eac3c063172fa2f1cc362f696eca61a5899ef6da54da1cb35dd35252d41d1c355eef776abaf1294be109b6a8d14b4c7d83205a1148b81f3406cc69c7a
2020.05.08 19:51:43 4: Xiaomi_AirPurifier3: write {"id":9,"method":"get_properties","params":[{"did": "led", "siid": 6, "piid": 6},{"did": "buzzer", "siid": 5, "piid": 1}, {"did": "buzzer_volume", "siid": 5, "piid": 2},{"did": "led_brightness", "siid": 6, "piid": 1},{"did": "child_lock", "siid": 7, "piid": 1}, {"did": "app_extra", "siid": 15, "piid": 1}, {"did": "filter_rfid_product_id", "siid": 14, "piid": 3}, {"did": "filter_rfid_tag", "siid": 14, "piid": 1}]} (416)
Zitat von: TWART016 am 08 Mai 2020, 19:52:22Mit der Version ist das im Log:
led off
led dim
Alles ok mit bright/dim/off, oder?
Wenn sonst alles funktioniert check ich das ein.
Testen sollte insbesondere noch scooty mit dem Verdunster.
Zitat von: Markus M. am 08 Mai 2020, 20:26:33
Alles ok mit bright/dim/off, oder?
Wenn sonst alles funktioniert check ich das ein.
Testen sollte insbesondere noch scooty mit dem Verdunster.
Sieht soweit gut aus. Ich habe das Reading led_brightness gelöscht, war vermutlich noch von einer früheren Version.
Wenn ich set led dim/off/bright mache, erscheint das erst nach einem aktualisieren der Seite. Es ist auch kein get settings notwendig. Ist das so gewünscht?
Zitat von: TWART016 am 08 Mai 2020, 21:22:23
Sieht soweit gut aus. Ich habe das Reading led_brightness gelöscht, war vermutlich noch von einer früheren Version.
Wenn ich set led dim/off/bright mache, erscheint das erst nach einem aktualisieren der Seite. Es ist auch kein get settings notwendig. Ist das so gewünscht?
Ja und nein - wird auch gleich noch mit behoben.
Zitat von: Markus M. am 08 Mai 2020, 18:24:35
Bitte testen, LED set mal mit verbose 5 mitloggen sollte das immer noch nicht funktionieren.
Vielen Dank für die prompte Reaktion.
Für
type dry_off not implemented
type dry_on not implemented
dry Reading bei "get EvpHumidifier settings"
Prozentwerte für den Wassertank-Füllstand
alles perfekt, klasse!
:)
Beim LED setting reagiert der EvpHumidifier nicht, im Reading "error" erscheint als Wert "invalid arg".
Wie gewünscht anbei das "verbose 5 Log" (gesetzt am EvpHumidifier device) für nacheinander "set EvpHumidifier led off/dim/bright":
2020.05.08 22:55:39.750 4: EvpHumidifier: write {"id":502,"method":"set_led_b","params":[2]} (44)
2020.05.08 22:55:39.752 5: EvpHumidifier: send 2131005000000000129f00970009e9d30822a7575cfd7ab1934c961a111ecc373742c00ecfc67fda5d7fc27abdcb8c3fb9f2b3a3c72924a0c762806e520abc80ac76b6ec8cb79c5f36057cedbca2369e
2020.05.08 22:55:39.752 5: EvpHumidifier Send SUCCESS
2020.05.08 22:55:39.753 5: EvpHumidifier > 2131005000000000129f00970009e9d30822a7575cfd7ab1934c961a111ecc373742c00ecfc67fda5d7fc27abdcb8c3fb9f2b3a3c72924a0c762806e520abc80ac76b6ec8cb79c5f36057cedbca2369e
2020.05.08 22:55:39.980 5: EvpHumidifier < 2131006000000000129f00970009e9d3885b564619136becdc782f1ea06a1e846fc97c2e4d431f19b64fa1aae8c48a21e675437c1b20f5d52c3ad3858830997c09a01487e2794cc2ea2e2c7cce49925632e03f28aef8d870960906418c6d5ab8 (96)
2020.05.08 22:55:39.985 5: EvpHumidifier: decrypted
{"error":{"code":-5001,"message":"invalid arg"},"id":502}
2020.05.08 22:55:39.987 5: EvpHumidifier: parse id 502
$VAR1 = {
'error' => {
'code' => -5001,
'message' => 'invalid arg'
},
'id' => 502
};
2020.05.08 22:55:39.987 4: EvpHumidifier: parse id 502 / led_off
2020.05.08 22:55:39.988 4: EvpHumidifier: msg ref is
2020.05.08 22:55:43.705 4: EvpHumidifier: write {"id":503,"method":"set_led_b","params":[1]} (44)
2020.05.08 22:55:43.706 5: EvpHumidifier: send 2131005000000000129f00970009e9d7d2346df4bc322daf25cf6189a6f40d3ba8b15c790e2fb88cacfa404479aafd01c429fc6c07297d7ebaeaf1b8bbb148dec66335bd353cafb33e6b77e624858068
2020.05.08 22:55:43.707 5: EvpHumidifier Send SUCCESS
2020.05.08 22:55:43.707 5: EvpHumidifier > 2131005000000000129f00970009e9d7d2346df4bc322daf25cf6189a6f40d3ba8b15c790e2fb88cacfa404479aafd01c429fc6c07297d7ebaeaf1b8bbb148dec66335bd353cafb33e6b77e624858068
2020.05.08 22:55:43.845 5: EvpHumidifier < 2131006000000000129f00970009e9d74f80c1173042b1d0bcf63b91613fb75b6fc97c2e4d431f19b64fa1aae8c48a21e675437c1b20f5d52c3ad3858830997c09a01487e2794cc2ea2e2c7cce4992564f65e5fb5aa930088b1af97088c52686 (96)
2020.05.08 22:55:43.851 5: EvpHumidifier: decrypted
{"error":{"code":-5001,"message":"invalid arg"},"id":503}
2020.05.08 22:55:43.855 5: EvpHumidifier: parse id 503
$VAR1 = {
'error' => {
'code' => -5001,
'message' => 'invalid arg'
},
'id' => 503
};
2020.05.08 22:55:43.855 4: EvpHumidifier: parse id 503 / led_dim
2020.05.08 22:55:43.856 4: EvpHumidifier: msg ref is
2020.05.08 22:55:46.831 4: EvpHumidifier: write {"id":504,"method":"set_led_b","params":[0]} (44)
2020.05.08 22:55:46.832 5: EvpHumidifier: send 2131005000000000129f00970009e9da9625002f37705fccc30ca58099a8abb23510d13f17df3ab035e674da2ea28a292f070f039f01af09a05bd5823d542c2cd7f6356894480815922dc1f803066104
2020.05.08 22:55:46.833 5: EvpHumidifier Send SUCCESS
2020.05.08 22:55:46.833 5: EvpHumidifier > 2131005000000000129f00970009e9da9625002f37705fccc30ca58099a8abb23510d13f17df3ab035e674da2ea28a292f070f039f01af09a05bd5823d542c2cd7f6356894480815922dc1f803066104
2020.05.08 22:55:46.891 5: EvpHumidifier < 2131006000000000129f00970009e9da44ee6547970711d2e57f88b54fa426b36fc97c2e4d431f19b64fa1aae8c48a21e675437c1b20f5d52c3ad3858830997c09a01487e2794cc2ea2e2c7cce499256f8badadd25725cc04a44edb41fb6a890 (96)
2020.05.08 22:55:46.897 5: EvpHumidifier: decrypted
{"error":{"code":-5001,"message":"invalid arg"},"id":504}
2020.05.08 22:55:46.898 5: EvpHumidifier: parse id 504
$VAR1 = {
'id' => 504,
'error' => {
'message' => 'invalid arg',
'code' => -5001
}
};
2020.05.08 22:55:46.898 4: EvpHumidifier: parse id 504 / led_bright
2020.05.08 22:55:46.898 4: EvpHumidifier: msg ref is
Hoffe, das hilft?
Viele Grüße und Danke nochmals,
Andreas
Zitat von: scooty am 08 Mai 2020, 23:30:28
Hoffe, das hilft?
Probier's aus :)
-> Neue Version ab morgen im Update
Zitat von: Markus M. am 08 Mai 2020, 23:53:25
Probier's aus :)
Hab' ich, funktioniert 1A!
:)
Vielen Dank,
Andreas
Neue Version im SVN, ab morgen auch im Update.
Damit sollte jetzt alles passen mit den neuen Geräten, evtl. müsst ihr noch ein paar alte Readings löschen.
Hallo Markus,
könntest Du dir bitte den Luftbefeuchter aus Post #1809 anschauen?
Kann man den implementieren?
Wie kann ich dabei helfen?
Danke und Gruß
Alex
Zitat von: Nighthawk am 09 Mai 2020, 14:19:46Kann man den implementieren?
Möglicherweise, probier doch mal den Anhang mit subType HumidifierMJJSQ ;)
Zitat von: zippo2k am 08 Mai 2020, 18:03:17
Super, danke für den Tip. Hatte leider vergessen das sich da Token beim WLAN wechsel ändert. Probier es dieses WE mal.
---snip
So, note to self - muss im selben Netzwerk sein und der Token ändert sich beim Netzwerkwechsel... Jetzt läuft alles! Vielen Dank nochmal.
Hallo Markus,
danke für deine Mühe, es scheint jetzt zu funktionieren, ich werde es noch etwas beobachten.
Was mir jetzt auf Anhieb aufgefallen ist, es fehlt der Wert der Luftfeuchtigkeit als Reading.
Gruß
Alex
Zitat von: Nighthawk am 10 Mai 2020, 15:17:39danke für deine Mühe, es scheint jetzt zu funktionieren, ich werde es noch etwas beobachten.
Was mir jetzt auf Anhieb aufgefallen ist, es fehlt der Wert der Luftfeuchtigkeit als Reading.
Ganz sicher?
Kannst du mal ein get data mit verbose 5 posten?
Sind die Readings temperature, water und tank da?
Hallo Markus,
die von dir genannte Readings fehlen ebenfalls.
Auch on und off funktioniert leider nicht.
hier der log:
erst mit get data und am ende mit on und off.
2020.05.11 17:39:30 4: Luftbefeuchter: write {"id":422,"method":"get_prop","params":["OnOff_State","Humidifier_Gear","Humidity_Value","TemperatureValue","waterstatus","watertankstatus"]} (141)
2020.05.11 17:39:30 5: Luftbefeuchter: send 213100b00000000007a80474004f79c7955e137cb9f5e032ea99937698698a91083bcc4f1a2db5367e947b2f62824e09700167e8281c8914d7c7f815afbb4dfed2f95903b153dcdcd2b4c0034d75fe806689780e2d8cc06f70b458cf4b9a49bc98b70f044007f2d41130487725bcb899690bb9dfcbb8ecdb4491f8ae4ffe2769f0f08b30346976f81339a72b98db7812f42d88947d8789f83e032adc02dd08f65486e5250e984a7b154614daa609a4ee
2020.05.11 17:39:30 5: Luftbefeuchter Send SUCCESS
2020.05.11 17:39:30 5: Luftbefeuchter > 213100b00000000007a80474004f79c7955e137cb9f5e032ea99937698698a91083bcc4f1a2db5367e947b2f62824e09700167e8281c8914d7c7f815afbb4dfed2f95903b153dcdcd2b4c0034d75fe806689780e2d8cc06f70b458cf4b9a49bc98b70f044007f2d41130487725bcb899690bb9dfcbb8ecdb4491f8ae4ffe2769f0f08b30346976f81339a72b98db7812f42d88947d8789f83e032adc02dd08f65486e5250e984a7b154614daa609a4ee
2020.05.11 17:39:30 5: Luftbefeuchter < 213100500000000007a80474004f79c76860718b81ee9237c490b45d246020635404d02ed9951e21bd4af3391276584e5edbc5994956c2059e767f74d681c70aef6af6a036c5fa6da10743229dda956a (80)
2020.05.11 17:39:30 5: Luftbefeuchter: decrypted
{"id":422,"result":[0],"exe_time":94}
2020.05.11 17:39:30 5: Luftbefeuchter: parse id 422
$VAR1 = {
'result' => [
0
],
'id' => 422,
'exe_time' => 94
};
2020.05.11 17:39:30 4: Luftbefeuchter: parse id 422 / hum_data_mjjsq
2020.05.11 17:39:30 4: Luftbefeuchter: msg ref is ARRAY
2020.05.11 17:39:38 4: Luftbefeuchter: write {"id":423,"method":"Set_OnOff","params":["1"]} (46)
2020.05.11 17:39:38 5: Luftbefeuchter: send 213100500000000007a80474004f79cf9632c4d97346a38e3221f8d7fd945baa304c22a377574bc90ae7604c209a8a4490cef9bfd48a28b5fc975f979922daa7b33e8489a6292f7cd12a514b7173fa39
2020.05.11 17:39:38 5: Luftbefeuchter Send SUCCESS
2020.05.11 17:39:38 5: Luftbefeuchter > 213100500000000007a80474004f79cf9632c4d97346a38e3221f8d7fd945baa304c22a377574bc90ae7604c209a8a4490cef9bfd48a28b5fc975f979922daa7b33e8489a6292f7cd12a514b7173fa39
2020.05.11 17:39:42 5: Luftbefeuchter < 213100700000000007a80474004f79d36c98151829ca3e7ace110f098ee87f68dc7eaad019ca78027187a651c4e6ceef4af87e4a3e10bea6561d8d08570c8a1816401aad5f0b1762a5216a62f54970a2828fbb11b159b275a8c078ad53d869014ba22c8cebf9252aff5cab51ef81369a (112)
2020.05.11 17:39:42 5: Luftbefeuchter: decrypted
{"id":423,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":3994}
2020.05.11 17:39:42 5: Luftbefeuchter: parse id 423
$VAR1 = {
'exe_time' => 3994,
'id' => 423,
'error' => {
'message' => 'user ack timeout',
'code' => -9999
}
};
2020.05.11 17:39:42 4: Luftbefeuchter: parse id 423 / power_on
2020.05.11 17:39:42 4: Luftbefeuchter: msg ref is
2020.05.11 17:39:42 4: Luftbefeuchter: write {"id":424,"method":"Set_OnOff","params":["0"]} (46)
2020.05.11 17:39:43 5: Luftbefeuchter: send 213100500000000007a80474004f79d3f88b300cd4fc318d619b1c5c0f1b085844a2a695f85de1b1bab88117a0288e8b73296866cca66d39d9361c37046eba5eb29a526de9ddec013493024537a76fff
2020.05.11 17:39:43 5: Luftbefeuchter Send SUCCESS
2020.05.11 17:39:43 5: Luftbefeuchter > 213100500000000007a80474004f79d3f88b300cd4fc318d619b1c5c0f1b085844a2a695f85de1b1bab88117a0288e8b73296866cca66d39d9361c37046eba5eb29a526de9ddec013493024537a76fff
2020.05.11 17:39:44 4: Luftbefeuchter: write {"id":425,"method":"get_prop","params":["OnOff_State","Humidifier_Gear","Humidity_Value","TemperatureValue","waterstatus","watertankstatus"]} (141)
2020.05.11 17:39:44 5: Luftbefeuchter: send 213100b00000000007a80474004f79d576d11e3e4b2eee5e874d9725c012fb58b9d417062ff6fe9e6f1f8be849348d2202acb686f194364f0cf485316cf4a91c5a9e09329ef3a3a79d254e60487400e32279e8e9469ee503d42c0b3c61c5dab09f81f69ab9b35e193d3ff89784b3326922472a4dbc56389cd1c0515fffb72e21a1b86f11616ad1a53e56fcb86ac38224df8323e5007c56d038a04653557d0ecd0fde5d819651a6f0f119fa4bec507928
2020.05.11 17:39:44 5: Luftbefeuchter Send SUCCESS
2020.05.11 17:39:44 5: Luftbefeuchter > 213100b00000000007a80474004f79d576d11e3e4b2eee5e874d9725c012fb58b9d417062ff6fe9e6f1f8be849348d2202acb686f194364f0cf485316cf4a91c5a9e09329ef3a3a79d254e60487400e32279e8e9469ee503d42c0b3c61c5dab09f81f69ab9b35e193d3ff89784b3326922472a4dbc56389cd1c0515fffb72e21a1b86f11616ad1a53e56fcb86ac38224df8323e5007c56d038a04653557d0ecd0fde5d819651a6f0f119fa4bec507928
2020.05.11 17:39:47 5: Luftbefeuchter < 213100700000000007a80474004f79d7181f399425f4f9463e19d20d5d66e8d6dd1d2c1b794fd335950d958aa116526b4247e398b4306053d9b012d1f7a8b1e070a2f3ec97162abcdaa7adc240eec16774e01934e91e5c00a98028960e8a3b2d3293d86bccfe0d193097c57f960c2a1f (112)
2020.05.11 17:39:47 5: Luftbefeuchter: decrypted
{"id":424,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":3974}
2020.05.11 17:39:47 5: Luftbefeuchter: parse id 424
$VAR1 = {
'exe_time' => 3974,
'error' => {
'message' => 'user ack timeout',
'code' => -9999
},
'id' => 424
};
2020.05.11 17:39:47 4: Luftbefeuchter: parse id 424 / power_off
2020.05.11 17:39:47 4: Luftbefeuchter: msg ref is
2020.05.11 17:39:47 5: Luftbefeuchter < 213100500000000007a80474004f79d800464d592732cdbdce1c78711dc5470f3f916f702aab5eed78558ab3019bbf0f533a267c4a5835906ba7e5f1351d22a6c408714215d19524b75753955fd38b9d (80)
2020.05.11 17:39:47 5: Luftbefeuchter: decrypted
{"id":425,"result":[0],"exe_time":2614}
2020.05.11 17:39:47 5: Luftbefeuchter: parse id 425
$VAR1 = {
'result' => [
0
],
'id' => 425,
'exe_time' => 2614
};
2020.05.11 17:39:47 4: Luftbefeuchter: parse id 425 / hum_data_mjjsq
2020.05.11 17:39:47 4: Luftbefeuchter: msg ref is ARRAY
und hier der List des Devices:
Internals:
DEF 192.168.XXX.XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
FD 14
FUUID 5dbe1caf-f33f-69d4-0d73-167c44b008d42a7f
NAME Luftbefeuchter
NR 178
STATE connected
TYPE XiaomiDevice
hardware esp8266
mac XX:XX:XX:XX:XX
mcu_firmware 0111
model deerma.humidifier.mjjsq
token XXXXXXXXXXXXXXXXXXXXXXXXX
wifi_firmware 2709610
Helper:
DBLOG:
buzzer:
logdb:
TIME 1589190266.92156
VALUE on
device_firmware:
logdb:
TIME 1589189680.59299
VALUE 2.0.7
device_uptime:
logdb:
TIME 1589189680.59299
VALUE 1446.73
error:
logdb:
TIME 1589190276.81797
VALUE none
led:
logdb:
TIME 1589189801.55137
VALUE on
limit_hum:
logdb:
TIME 1589190262.27752
VALUE 44
mode:
logdb:
TIME 1589189783.21037
VALUE silent
off:
logdb:
TIME 1589190270.59477
VALUE
on:
logdb:
TIME 1589190260.03067
VALUE
power:
logdb:
TIME 1589190276.82248
VALUE off
reconnect:
logdb:
TIME 1589115679.64554
VALUE
state:
logdb:
TIME 1589188382.0283
VALUE connected
wifi_rssi:
logdb:
TIME 1589189680.59299
VALUE -54
READINGS:
2020-05-11 17:44:26 buzzer on
2020-05-11 17:34:40 device_firmware 2.0.7
2020-05-11 17:34:40 device_uptime 1446.73
2020-05-11 17:44:36 error none
2020-05-11 17:36:41 led on
2020-05-11 17:36:23 mode silent
2020-05-11 17:44:36 power off
2020-05-11 17:13:02 state connected
2020-05-11 17:34:40 wifi_rssi -54
helper:
ConnectionState connected
crypt Rijndael
delay 60
dev 07a8
id 0474
ip 192.168.XXX.XXX
last_read 1589190276
packetid 440
port 54321
sequence 1583981451
token XXXXXXXXXXXXXXXXXXXXXXXXXX
packet:
269 hum_data_mjjsq
339 hum_settings_mjjsq
Attributes:
disable 0
stateFormat state
subType HumidifierMJJSQ
verbose 5
Zitat von: Nighthawk am 11 Mai 2020, 11:47:58
die von dir genannte Readings fehlen ebenfalls.
Auch on und off funktioniert leider nicht.
Probiers mal hiermit
On/off sollte funktionieren, bei den Daten bin ich noch etwas ratlos.
Jetzt sind alle Readings da und on/off funktioniert ebenfalls.
Danke für deine super Arbeit!
Gruß
Alex
Zitat von: Nighthawk am 11 Mai 2020, 13:20:22
Jetzt sind alle Readings da und on/off funktioniert ebenfalls.
Hiermit auch noch alles ok?
Hallo Markus, leider habe ich mich zu früh gefreut, de Readings kamen nur rund 20 min. danach nicht mehr.
Mit der zuletzt angehängten Version funktioniert das on/off, aber die Readings (temp, hum, tank, water und sogar state) kommen ebenfalls nicht, siehe list des Devices.
Habe gerade zu der Version von gestern zurückgewechselt, alle Readings wurden nach dem Neustart gefüllt, ich beobachte es mal weiter.
hier ein log von get data:
2020.05.12 20:22:34 4: Luftbefeuchter: write {"id":19,"method":"get_prop","params":["Humidifier_Gear","Humidity_Value","OnOff_State","TemperatureValue","waterstatus","watertankstatus"]} (140)
2020.05.12 20:22:34 5: Luftbefeuchter: send 213100b00000000007a804740050f17fc42061b02c92b99f268b7fb63fbbb4b720b81f38de88c8e72d02caa11d9743750d7ed28ff3dfd8582a4b7fbe1e1dc266f070c5178089e5ee75b00adfa9b951742bab9a62d65a5a01cf3e1988d9eb6d87f894d0406a6b29dc3cd6414342828a50816ba51f1a20931c04e49a70847fc69aea3f432ba6c104ad578c7c4d088f547115a013fbfa9b7657ffe6c26c2364d2e9d106fefd9006d29247793929376c6f95
2020.05.12 20:22:34 5: Luftbefeuchter Send SUCCESS
2020.05.12 20:22:34 5: Luftbefeuchter > 213100b00000000007a804740050f17fc42061b02c92b99f268b7fb63fbbb4b720b81f38de88c8e72d02caa11d9743750d7ed28ff3dfd8582a4b7fbe1e1dc266f070c5178089e5ee75b00adfa9b951742bab9a62d65a5a01cf3e1988d9eb6d87f894d0406a6b29dc3cd6414342828a50816ba51f1a20931c04e49a70847fc69aea3f432ba6c104ad578c7c4d088f547115a013fbfa9b7657ffe6c26c2364d2e9d106fefd9006d29247793929376c6f95
2020.05.12 20:22:34 5: Luftbefeuchter < 213100500000000007a804740050f18021fa19a39ccb268bdc3ce55c3050f414a188038541db02d489bb39b4b467bfc4a4e3f019b2572be1a98a07863b99d77f933f415d59251f7b4377af60dd01465e (80)
2020.05.12 20:22:34 5: Luftbefeuchter: decrypted
{"id":19,"result":[2],"exe_time":124}
2020.05.12 20:22:34 5: Luftbefeuchter: parse id 19
$VAR1 = {
'exe_time' => 124,
'result' => [
2
],
'id' => 19
};
2020.05.12 20:22:34 4: Luftbefeuchter: parse id 19 / hum_data_mjjsq
2020.05.12 20:22:34 4: Luftbefeuchter: msg ref is ARRAY
und hier ein List:
Internals:
DEF 192.168.XXX.XXX XXXXXXXXXXXXXXXXXXXXXXXXXXX
FD 52
FUUID XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
NAME Luftbefeuchter
NR 178
STATE connected
TYPE XiaomiDevice
hardware esp8266
mac XX:XX:XX:XX:XX
mcu_firmware 0111
model deerma.humidifier.mjjsq
token XXXXXXXXXXXXXXXXXXXXXXXXXXX
wifi_firmware 2709610
Helper:
DBLOG:
buzzer:
logdb:
TIME 1589286047.45704
VALUE on
device_firmware:
logdb:
TIME 1589285795.70348
VALUE 2.0.7
device_uptime:
logdb:
TIME 1589285795.70348
VALUE 1473.43
error:
logdb:
TIME 1589286454.81074
VALUE none
led:
logdb:
TIME 1589286069.43244
VALUE on
limit_hum:
logdb:
TIME 1589286094.39731
VALUE 37
mode:
logdb:
TIME 1589286454.81532
VALUE medium
off:
logdb:
TIME 1589285856.01458
VALUE
on:
logdb:
TIME 1589285907.26768
VALUE
power:
logdb:
TIME 1589285907.56859
VALUE on
wifi_rssi:
logdb:
TIME 1589285795.70348
VALUE -54
READINGS:
2020-05-12 20:20:47 buzzer on
2020-05-12 20:16:35 device_firmware 2.0.7
2020-05-12 20:16:35 device_uptime 1473.43
2020-05-12 20:27:34 error none
2020-05-11 19:47:25 humidity 55
2020-05-12 20:21:09 led on
2020-05-12 20:21:34 limit_hum 37
2020-05-12 20:27:34 mode medium
2020-05-12 20:18:27 power on
2020-05-11 17:13:02 state connected
2020-05-11 19:47:25 tank installed
2020-05-11 19:47:25 temperature 21
2020-05-11 19:47:25 water ok
2020-05-12 20:16:35 wifi_rssi -54
helper:
ConnectionState connected
crypt Rijndael
delay 60
dev 07a8
id 0474
ip XXX.XXX.XXX.XXX
last_read 1589286454
packetid 21
port 54321
sequence 1583981450
token XXXXXXXXXXXXXXXXXXXXXXXXXXX
packet:
Attributes:
disable 0
room WZ
stateFormat state
subType HumidifierMJJSQ
verbose 5
Zitat von: Nighthawk am 12 Mai 2020, 14:30:48
Hallo Markus, leider habe ich mich zu früh gefreut, de Readings kamen nur rund 20 min. danach nicht mehr.
hier ein log von get data:
Das Log war von der nicht funktionierenden Version 2, oder?
Probier mal das hier und achte insbesondere darauf wie lange du Daten bekommst.
Hallo Markus,
richtig, das Log war von der 2. Version.
Mit der letzten Version läuft es nun seit fast 2 Tagen durch.
Danke und Gruß
Alex
Hallo Markus, ich möchte noch einmal nachfragen, ob du dich bzgl. der Einbindung des Xiaomi Mijia Fan 1X annehmen könntest.
Unter https://github.com/YinHangCode/homebridge-mi-fan (https://github.com/YinHangCode/homebridge-mi-fan) wurde dieses Modell als DmakerFan in homebridge eingebaut.
Besten Dank
Zitat von: ucm73 am 15 Mai 2020, 00:45:52
Hallo Markus, ich möchte noch einmal nachfragen, ob du dich bzgl. der Einbindung des Xiaomi Mijia Fan 1X annehmen könntest.
Unter https://github.com/YinHangCode/homebridge-mi-fan (https://github.com/YinHangCode/homebridge-mi-fan) wurde dieses Modell als DmakerFan in homebridge eingebaut.
Bekommst du ein
model Internal bei get device_info?
Das bräuchte ich, die Homebridge Implementierung ist leider etwas grauenhaft zu lesen ;)
Mit dem Anhang kannst du mal ein get data mit verbose 5 machen, SmartFan1X als subType setzen
edit 12:10 - bitte nochmal runterladen
Hi, bei der ersten Version war "get data" leer.
Die neue Version hat mein FHEM zum Absturz gebracht.
Und führt beim restart erneut zum Absturz. Bei der ersten hier hochgeladenen Version ist diesbezüglich alles ok.
Als model erscheint "dmaker.fan.p5".
Das steht im log:
2020-05-16_12:22:21 Ventilator device_uptime: 481.59
2020-05-16_12:22:21 Ventilator device_firmware: 2.0.6
2020-05-16_12:22:21 Ventilator wifi_rssi: -46
2020-05-16_12:22:24 Ventilator error: busy.
2020-05-16_12:22:25 Ventilator error: busy.
2020-05-16_12:22:25 Ventilator error: busy.
2020-05-16_12:22:25 Ventilator error: busy.
Zitat von: ucm73 am 16 Mai 2020, 12:25:44
Hi, bei der ersten Version war "get data" leer.
Die neue Version hat mein FHEM zum Absturz gebracht.
Und führt beim restart erneut zum Absturz. Bei der ersten hier hochgeladenen Version ist diesbezüglich alles ok.
Als model erscheint "dmaker.fan.p5".
Bitte mal den Logeintrag vom Absturz mit stacktrace aktiviert
Mit der neuen Version passt es:
2020.05.16 13:16:22.714 5: Ventilator < 213100800000000007aa73af001a8101dabc66d128d344116ff85019a9bb25738a4281391fe5dfcd735fd3b446d70caf8b2452953f4b36a760580ea8ba1fb58e19a50829b6ed02e981eaa8fa032ee086ba2c1c95047667c845668eb7896864c2c8db0e380c74d9a6eb1daa54392acdcd1154974fa14bbcc06d47d66f021911da (128)
2020.05.16 13:16:22.725 5: Ventilator: decrypted
{"id":3,"result":[false,"nature",82,true,30,0,true,false,false],"exe_time":1290}
2020.05.16 13:16:22.725 5: Ventilator: parse id 3
$VAR1 = {
'exe_time' => 1290,
'id' => 3,
'result' => [
bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
'nature',
82,
bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
30,
0,
$VAR1->{'result'}[3],
$VAR1->{'result'}[0],
$VAR1->{'result'}[0]
]
};
2020.05.16 13:16:22.725 4: Ventilator: parse id 3 / fan_data_1x
2020.05.16 13:16:22.725 4: Ventilator: msg ref is ARRAY
2020.05.16 13:16:25.545 5: Ventilator < 213100700000000007aa73af001a8104a2c8a69cfd05440cac740b583e76eebc02c043bf42e4a6f354b6fb2c94c153d97d58f718f18bca643cbe4feeb6043dd4189a903c952c0fe2a0af5bbcd10647acaf916178642c1762a99eca84b0a31265816676abb4a6a396cb9339526738dc2f (112)
2020.05.16 13:16:25.554 5: Ventilator: decrypted
{"id":4,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4030}
2020.05.16 13:16:25.554 5: Ventilator: parse id 4
$VAR1 = {
'id' => 4,
'exe_time' => 4030,
'error' => {
'code' => -9999,
'message' => 'user ack timeout'
}
};
2020.05.16 13:16:25.554 4: Ventilator: parse id 4 / get_consumable
2020.05.16 13:16:25.554 4: Ventilator: msg ref is
2020.05.16 13:16:25.563 5: Ventilator < 213100700000000007aa73af001a8104cd4551150d3c9c9fc35311de23b6b3a9ea22885b800583c77ceb82ee52860bb470af27c1e316916bc8404122313799c4d2af72593caa0cc33c4149f46b5d03d54394e283d525b53df8dd28545564b3ba4843dd03fcacbd79caea4b379b5b247d (112)
2020.05.16 13:16:25.572 5: Ventilator: decrypted
{"id":5,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4030}
2020.05.16 13:16:25.572 5: Ventilator: parse id 5
$VAR1 = {
'exe_time' => 4030,
'id' => 5,
'error' => {
'code' => -9999,
'message' => 'user ack timeout'
}
};
2020.05.16 13:16:25.572 4: Ventilator: parse id 5 / get_clean_summary
2020.05.16 13:16:25.572 4: Ventilator: msg ref is
2020.05.16 13:16:25.579 5: Ventilator < 213100700000000007aa73af001a8104ce9c88e5dc005b04f800f6c4ba6f315e5f4ab87622d841564d631337c149a72d8c36406600a268b87e9c124d2ccdfb23c5b1824fd37777abed711af3e04cb182b76956857f58c9b1434e3c01d5528bd09c60138d52ae5d231b1ead876bbf5b28 (112)
2020.05.16 13:16:25.588 5: Ventilator: decrypted
{"id":6,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4040}
2020.05.16 13:16:25.589 5: Ventilator: parse id 6
$VAR1 = {
'exe_time' => 4040,
'id' => 6,
'error' => {
'code' => -9999,
'message' => 'user ack timeout'
}
};
2020.05.16 13:16:25.589 4: Ventilator: parse id 6 / get_dnd_timer
2020.05.16 13:16:25.589 4: Ventilator: msg ref is
2020.05.16 13:16:25.596 5: Ventilator < 213100700000000007aa73af001a8104507386545eb14504f8dc39c1936b187f41db065e4656a99b33db8c02e9d734ae81ca90ab32a96eda3d9db8badc016369c2f63d5d3912ae8bcc44ab55f24eb1d82f67251d483eca3fdd3b7cdc6613d656010b8ce7c9635fadbdce727142c39442 (112)
2020.05.16 13:16:25.605 5: Ventilator: decrypted
{"id":7,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4050}
2020.05.16 13:16:25.606 5: Ventilator: parse id 7
$VAR1 = {
'id' => 7,
'exe_time' => 4050,
'error' => {
'code' => -9999,
'message' => 'user ack timeout'
}
};
2020.05.16 13:16:25.606 4: Ventilator: parse id 7 / get_timer
2020.05.16 13:16:25.606 4: Ventilator: msg ref is
Bei den reading erscheinen jetzt auch mehr Infomationen:
defmod Ventilator XiaomiDevice 192.168.2.117 4813bce8823f5a4474d01021b5270d34
attr Ventilator room Wohnzimmer
attr Ventilator subType SmartFan1X
attr Ventilator verbose 5
setstate Ventilator 2020-05-16 13:19:23 angle 30
setstate Ventilator 2020-05-16 13:19:23 angle_enable on
setstate Ventilator 2020-05-16 13:19:23 buzzer off
setstate Ventilator 2020-05-16 13:19:23 child_lock off
setstate Ventilator 2020-05-16 13:19:16 device_firmware 2.0.6
setstate Ventilator 2020-05-16 13:19:16 device_uptime 482.54
setstate Ventilator 2020-05-16 13:19:39 error none
setstate Ventilator 2020-05-16 13:19:23 led on
setstate Ventilator 2020-05-16 13:19:39 level 82
setstate Ventilator 2020-05-16 13:19:39 mode natural
setstate Ventilator 2020-05-16 13:19:39 power off
setstate Ventilator 2020-05-16 13:19:23 poweroff_time 0
setstate Ventilator 2020-05-16 13:19:16 wifi_rssi -46
Sorry, habe gerade noch etwas festgestellt.
Bei "get data" passiert nichts, also auch keine Logs.
Bei "get settings" kommt einiges an Information:
2020.05.16 13:27:44.576 4: Ventilator: write {"id":42,"method":"get_prop","params":["power","mode","speed","roll_enable","roll_angle","time_off","light","beep_sound","child_lock"]} (135)
2020.05.16 13:27:44.577 5: Ventilator: initSend
2020.05.16 13:27:44.577 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.577 5: Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.16 13:27:44.609 5: Ventilator: send 213100b00000000007aa73af001a83ab098f3b21702a0bac84a0b79d7b3e89e58d5a24a6ae77aae99b1e25c874c26edc40919077cd8409bdfd010d8a7661840f3b8f67e0e5cbe9ac9c7681f4cb080d47771f3356560d05ee3ed1e8611c318dc515496685658a661766129e935c1a3d43f7aa845a53e29a8dc51517519ed03fca5537592079573ed9b7a0fbe3c1835cf254b99a747f49bb32645b86339b9c24f9fe19a01d69d03855f74d58f8d2fa7e2a
2020.05.16 13:27:44.609 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.610 5: Ventilator > 213100b00000000007aa73af001a83ab098f3b21702a0bac84a0b79d7b3e89e58d5a24a6ae77aae99b1e25c874c26edc40919077cd8409bdfd010d8a7661840f3b8f67e0e5cbe9ac9c7681f4cb080d47771f3356560d05ee3ed1e8611c318dc515496685658a661766129e935c1a3d43f7aa845a53e29a8dc51517519ed03fca5537592079573ed9b7a0fbe3c1835cf254b99a747f49bb32645b86339b9c24f9fe19a01d69d03855f74d58f8d2fa7e2a
2020.05.16 13:27:44.610 4: Ventilator: write {"id":43,"method":"get_consumable","params":[""]} (49)
2020.05.16 13:27:44.611 5: Ventilator: initSend
2020.05.16 13:27:44.611 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.611 5: Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.16 13:27:44.626 5: Ventilator: send 213100600000000007aa73af001a83abadcf5eb089c3ecc89ec30821f41c7643e13882e4abac26b945899c8c12410f27f516481fbd5a518489004a73bf5630ab62ea0b9dc438b6ae8af9a41d44a2ef05ad04eab0ebfb5464d35b50482fbcdd0f
2020.05.16 13:27:44.627 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.627 5: Ventilator > 213100600000000007aa73af001a83abadcf5eb089c3ecc89ec30821f41c7643e13882e4abac26b945899c8c12410f27f516481fbd5a518489004a73bf5630ab62ea0b9dc438b6ae8af9a41d44a2ef05ad04eab0ebfb5464d35b50482fbcdd0f
2020.05.16 13:27:44.628 4: Ventilator: write {"id":44,"method":"get_clean_summary","params":[""]} (52)
2020.05.16 13:27:44.628 5: Ventilator: initSend
2020.05.16 13:27:44.628 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.628 5: Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.16 13:27:44.643 5: Ventilator: send 213100600000000007aa73af001a83ab366717d91353de89fc5e40f4b7678f7a9376c225db58618dd9e891a2ddc42b718b0464ff341b608acc2cbbde9c611da7f06b3c6dc5bceb1d599752993afb0c90612f327999c3afb8f51944f3601d5b8f
2020.05.16 13:27:44.644 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.644 5: Ventilator > 213100600000000007aa73af001a83ab366717d91353de89fc5e40f4b7678f7a9376c225db58618dd9e891a2ddc42b718b0464ff341b608acc2cbbde9c611da7f06b3c6dc5bceb1d599752993afb0c90612f327999c3afb8f51944f3601d5b8f
2020.05.16 13:27:44.645 4: Ventilator: write {"id":45,"method":"get_dnd_timer","params":[""]} (48)
2020.05.16 13:27:44.645 5: Ventilator: initSend
2020.05.16 13:27:44.645 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.645 5: Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.16 13:27:44.656 5: Ventilator: send 213100600000000007aa73af001a83ab0c27c5bde679936d4482f52bdcdbb7069ea9776aec49c14f143f712b09bd3a35989317fcced9697781f8da7114b7ce04a1b9dbf9bf82036f0c146e87eca2ddbcdb0c8f224c97d69c374debc3eade3262
2020.05.16 13:27:44.656 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.656 5: Ventilator > 213100600000000007aa73af001a83ab0c27c5bde679936d4482f52bdcdbb7069ea9776aec49c14f143f712b09bd3a35989317fcced9697781f8da7114b7ce04a1b9dbf9bf82036f0c146e87eca2ddbcdb0c8f224c97d69c374debc3eade3262
2020.05.16 13:27:44.656 4: Ventilator: write {"id":46,"method":"get_timer","params":[""]} (44)
2020.05.16 13:27:44.657 5: Ventilator: initSend
2020.05.16 13:27:44.657 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.657 5: Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.16 13:27:44.662 5: Ventilator: send 213100500000000007aa73af001a83ab33978140ff22b8587f271c15bca42f17f3fdff1bbbf5627ce25f3d6366a202b170e0b250ada0d6247762bfaa209a09c97969bd14d08a97fc44926d6d4dcb7dd1
2020.05.16 13:27:44.662 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.662 5: Ventilator > 213100500000000007aa73af001a83ab33978140ff22b8587f271c15bca42f17f3fdff1bbbf5627ce25f3d6366a202b170e0b250ada0d6247762bfaa209a09c97969bd14d08a97fc44926d6d4dcb7dd1
2020.05.16 13:27:44.662 4: Ventilator: write {"id":47,"method":"get_sound_volume","params":[""]} (51)
2020.05.16 13:27:44.662 5: Ventilator: initSend
2020.05.16 13:27:44.663 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.663 5: Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.16 13:27:44.669 5: Ventilator: send 213100600000000007aa73af001a83abfbbc39df770a731e76377c27c6c4831c1874ab4e0cfb697b0ba9086dfdb232a145d67b94fde1b5ca9e81cb2c7f069f32c69a269504c7a8f7d17cf32648894f86dc8c041d9f3f1e96c3802489737c1109
2020.05.16 13:27:44.669 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.669 5: Ventilator > 213100600000000007aa73af001a83abfbbc39df770a731e76377c27c6c4831c1874ab4e0cfb697b0ba9086dfdb232a145d67b94fde1b5ca9e81cb2c7f069f32c69a269504c7a8f7d17cf32648894f86dc8c041d9f3f1e96c3802489737c1109
2020.05.16 13:27:44.669 4: Ventilator: write {"id":48,"method":"get_carpet_mode","params":[""]} (50)
2020.05.16 13:27:44.670 5: Ventilator: initSend
2020.05.16 13:27:44.670 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.670 5: Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.16 13:27:44.676 5: Ventilator: send 213100600000000007aa73af001a83abbaf902b7bad592eab28ec566e1fd33133b67a5aea8c1eac76d8064a045a6548ed71d07b1d0d1420d3d4236a64903c33d32b2ae3260d930131c3d1786184b3ed052b0f346dd57ad703f6b9de883f75526
2020.05.16 13:27:44.676 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.676 5: Ventilator > 213100600000000007aa73af001a83abbaf902b7bad592eab28ec566e1fd33133b67a5aea8c1eac76d8064a045a6548ed71d07b1d0d1420d3d4236a64903c33d32b2ae3260d930131c3d1786184b3ed052b0f346dd57ad703f6b9de883f75526
2020.05.16 13:27:44.677 4: Ventilator: write {"id":49,"method":"get_fw_features","params":[""]} (50)
2020.05.16 13:27:44.677 5: Ventilator: initSend
2020.05.16 13:27:44.677 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.677 5: Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.16 13:27:44.683 5: Ventilator: send 213100600000000007aa73af001a83ab8a50e5449d8f7b5bb54596cbaf718d0b6dc5cc93fc5cf5d0bde50571bcce249d6cb7d3cb4ad2ae8af7a0e0dc5191896f85166068dcce4402bd1e875372bad49c2ad843034cf0c8d9548eaa044f09659f
2020.05.16 13:27:44.683 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.683 5: Ventilator > 213100600000000007aa73af001a83ab8a50e5449d8f7b5bb54596cbaf718d0b6dc5cc93fc5cf5d0bde50571bcce249d6cb7d3cb4ad2ae8af7a0e0dc5191896f85166068dcce4402bd1e875372bad49c2ad843034cf0c8d9548eaa044f09659f
2020.05.16 13:27:44.684 4: Ventilator: write {"id":50,"method":"app_get_locale","params":[""]} (49)
2020.05.16 13:27:44.684 5: Ventilator: initSend
2020.05.16 13:27:44.684 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.684 5: Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.16 13:27:44.690 5: Ventilator: send 213100600000000007aa73af001a83abf3b872eefb56bcd989525f689a78c1d53424f73fd1b0a63b5f9068939b35bd84f9af250a95cde70a47a07190a456735250e9e8584ab96dc06f117756ab8501d10e85d32de2dae0059ec81c0addf4e300
2020.05.16 13:27:44.690 5: Ventilator Send SUCCESS
2020.05.16 13:27:44.690 5: Ventilator > 213100600000000007aa73af001a83abf3b872eefb56bcd989525f689a78c1d53424f73fd1b0a63b5f9068939b35bd84f9af250a95cde70a47a07190a456735250e9e8584ab96dc06f117756ab8501d10e85d32de2dae0059ec81c0addf4e300
2020.05.16 13:27:44.692 5: Ventilator < 213100200000000007aa73af001a83abffffffffffffffffffffffffffffffff (32)
2020.05.16 13:27:44.693 5: Ventilator < 213100200000000007aa73af001a83abffffffffffffffffffffffffffffffff (32)
2020.05.16 13:27:44.721 5: Ventilator < 213100200000000007aa73af001a83abffffffffffffffffffffffffffffffff (32)
2020.05.16 13:27:44.795 5: Ventilator < 213100200000000007aa73af001a83abffffffffffffffffffffffffffffffff (32)
2020.05.16 13:27:44.899 5: Ventilator < 213100200000000007aa73af001a83abffffffffffffffffffffffffffffffff (32)
2020.05.16 13:27:44.922 5: Ventilator < 213100800000000007aa73af001a83abf2b97386e957d47d81712af766aa2d184a9b6be8a49cba40b845430846e94fb9bc41cbda5fb33352a2a57e90167ad03fadaf657aa37d90ebb09887676ff4c08b26ab704ac9d659b81c3b5f1f8ecfdcd7c94445e24634c6f4edf17fe0d3b14cabb91ff10a5bcef26ff95fdf3f4d56e33c (128)
2020.05.16 13:27:44.932 5: Ventilator: decrypted
{"id":42,"result":[false,"nature",82,true,30,0,true,false,false],"exe_time":240}
2020.05.16 13:27:44.933 5: Ventilator: parse id 42
$VAR1 = {
'id' => 42,
'exe_time' => 240,
'result' => [
bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
'nature',
82,
bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
30,
0,
$VAR1->{'result'}[3],
$VAR1->{'result'}[0],
$VAR1->{'result'}[0]
]
};
2020.05.16 13:27:44.933 4: Ventilator: parse id 42 / fan_data_1x
2020.05.16 13:27:44.933 4: Ventilator: msg ref is ARRAY
2020.05.16 13:27:44.952 5: Ventilator < 213100200000000007aa73af001a83abffffffffffffffffffffffffffffffff (32)
2020.05.16 13:27:48.730 5: Ventilator < 213100700000000007aa73af001a83af93016be930232f9b01c8879b91448f601eeda6de6274d6fb57ec866cad673118e3ffbc9178e53f7c424b7cb6e6b36ae4b627ad07baccb492ed5d2628ae2b64a245ba639f88dd7ac9874bf2024fbf7ef281fb3b024c7694ae9260ff58dbbed337 (112)
2020.05.16 13:27:48.752 5: Ventilator: decrypted
{"id":43,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4020}
2020.05.16 13:27:48.753 5: Ventilator: parse id 43
$VAR1 = {
'error' => {
'message' => 'user ack timeout',
'code' => -9999
},
'id' => 43,
'exe_time' => 4020
};
2020.05.16 13:27:48.753 4: Ventilator: parse id 43 / get_consumable
2020.05.16 13:27:48.753 4: Ventilator: msg ref is
2020.05.16 13:27:48.845 5: Ventilator < 213100700000000007aa73af001a83afc141f9bacf43d23041100354e4fd5630a6e52413bef6db5b958c8026a93dfb2d5509c5d45fe561a2e704c2530159c1589b9f39510fe5f264eb1353ce4bc568fd2fc4437a6f85d6c81501e3cbdac11133088de68f33bcb84f7d956b88d5691df6 (112)
2020.05.16 13:27:48.854 5: Ventilator: decrypted
{"id":44,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4020}
2020.05.16 13:27:48.854 5: Ventilator: parse id 44
$VAR1 = {
'id' => 44,
'exe_time' => 4020,
'error' => {
'code' => -9999,
'message' => 'user ack timeout'
}
};
2020.05.16 13:27:48.854 4: Ventilator: parse id 44 / get_clean_summary
2020.05.16 13:27:48.854 4: Ventilator: msg ref is
2020.05.16 13:27:48.861 5: Ventilator < 213100700000000007aa73af001a83af608d7a7d8ed2e8e823548f57334de51e5e45d5a462d6ff1a41ff58fcf0e1814c495a9cbf3d1acf39b476b98f450e39430c84ff0f8b88e51ec811455e0d78561c3fcda0199caf638b16bc4fd26e3b5c99de32019de8f7621b92c23ac61c26aaae (112)
2020.05.16 13:27:48.870 5: Ventilator: decrypted
{"id":45,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4020}
2020.05.16 13:27:48.871 5: Ventilator: parse id 45
$VAR1 = {
'error' => {
'message' => 'user ack timeout',
'code' => -9999
},
'id' => 45,
'exe_time' => 4020
};
2020.05.16 13:27:48.871 4: Ventilator: parse id 45 / get_dnd_timer
2020.05.16 13:27:48.871 4: Ventilator: msg ref is
2020.05.16 13:27:48.965 5: Ventilator < 213100700000000007aa73af001a83af7d9abd2d2c423ed039df75ca341093a91a0002c3db99334c9ea787096c4266ec56788865f1150cf6313e3895cb1e3687d0428ca2b2c099bf7f4419b509ebcf5b7c674197e2dde9ca2ba6a5ef12638a1974cd3c6f2a8dd1d4ccf9e182f2a22b5f (112)
2020.05.16 13:27:48.974 5: Ventilator: decrypted
{"id":46,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
2020.05.16 13:27:48.974 5: Ventilator: parse id 46
$VAR1 = {
'error' => {
'message' => 'user ack timeout',
'code' => -9999
},
'exe_time' => 4010,
'id' => 46
};
2020.05.16 13:27:48.974 4: Ventilator: parse id 46 / get_timer
2020.05.16 13:27:48.974 4: Ventilator: msg ref is
Danke, das passt erst mal.
Den Rest sehe ich mir morgen an [emoji106]
@Markus: Ich bin mittlerweile stolzer Besitzer eines S5 Max, der ein paar Readings mehr liefert, als das Modul aktuell unterstützt (z.B. zum Wassertank). Hast du geplant, da was zu erweitern, oder magst du einen patch?
Kurz, weil mobil....
Zitat von: KernSani am 16 Mai 2020, 14:37:52
@Markus: Ich bin mittlerweile stolzer Besitzer eines S5 Max, der ein paar Readings mehr liefert, als das Modul aktuell unterstützt (z.B. zum Wassertank). Hast du geplant, da was zu erweitern, oder magst du einen patch?
Kurz, weil mobil....
Hast du ihn "gerooted"!?
Lässt er sich rooten!?
Bzw.: wie bekommt man da den Token!?
Ich habe ja V1 und den V2 (S5 ohne Max!?)...
Beide gerooted :)
Danke, Joachim
Zitat von: KernSani am 16 Mai 2020, 14:37:52
@Markus: Ich bin mittlerweile stolzer Besitzer eines S5 Max, der ein paar Readings mehr liefert, als das Modul aktuell unterstützt (z.B. zum Wassertank). Hast du geplant, da was zu erweitern, oder magst du einen patch?
Ein getesteter Patch wäre gut ;)
Zitat von: ucm73 am 16 Mai 2020, 13:31:37
Sorry, habe gerade noch etwas festgestellt.
Bei "get data" passiert nichts, also auch keine Logs.
Probier mal den Anhang - ungetestet.
Wenn die Datei sich überhaupt laden lässt, bitte mal alle get/set Möglichkeiten durchtesten.
An set parametern funktioniert:
"angel", "level", "mode", "reconnect".
Die anderen set Parameter dementsprechend nicht. An-/Ausschalten also auch nicht.
"Get data" liefert weiterhin nichts.
"Get setttings" liefert folgendes:
2020.05.16 18:18:08.207 4: Ventilator: write {"id":216,"method":"get_prop","params":["power","mode","speed","roll_enable","roll_angle","time_off","light","beep_sound","child_lock"]} (136)
2020.05.16 18:18:08.238 5: Ventilator: send 213100b00000000007aa73af001ac7bb811d1fefe61d1c5cbe4fda948c95119297140662420c805c8db55789afa91abee6a081a2ecc8cb98dcf6008d7de21c5da3fc6dc0b694a4780d4b3e5996a9dc45a420e6256e90abfcbceee33c413f4a08baa51007c58c6efc7ce385b1676d7a4d1deee0f216dd0f58534fd643a687b3ebf2cb36825b2ed6166b2aa46df77dcb13725e7d18ba4a2fcb591b8e7ea5addda6da3c86c54a4a9554e4ef5d8e2e000113
2020.05.16 18:18:08.238 5: Ventilator Send SUCCESS
2020.05.16 18:18:08.239 5: Ventilator > 213100b00000000007aa73af001ac7bb811d1fefe61d1c5cbe4fda948c95119297140662420c805c8db55789afa91abee6a081a2ecc8cb98dcf6008d7de21c5da3fc6dc0b694a4780d4b3e5996a9dc45a420e6256e90abfcbceee33c413f4a08baa51007c58c6efc7ce385b1676d7a4d1deee0f216dd0f58534fd643a687b3ebf2cb36825b2ed6166b2aa46df77dcb13725e7d18ba4a2fcb591b8e7ea5addda6da3c86c54a4a9554e4ef5d8e2e000113
2020.05.16 18:18:08.239 4: Ventilator: write {"id":217,"method":"get_consumable","params":[""]} (50)
2020.05.16 18:18:08.254 5: Ventilator: send 213100600000000007aa73af001ac7bb760a92404f76f7689c0e66f8818fabf6bc889b7bbc56802f8420612336535744f3bc6ebae42e14dac5410904451ad9884748b456826ae8a1a5a51eac747991f0d4fceadffd3e5e7bd2d62167e332e7cc
2020.05.16 18:18:08.255 5: Ventilator Send SUCCESS
2020.05.16 18:18:08.255 5: Ventilator > 213100600000000007aa73af001ac7bb760a92404f76f7689c0e66f8818fabf6bc889b7bbc56802f8420612336535744f3bc6ebae42e14dac5410904451ad9884748b456826ae8a1a5a51eac747991f0d4fceadffd3e5e7bd2d62167e332e7cc
2020.05.16 18:18:08.256 4: Ventilator: write {"id":218,"method":"get_clean_summary","params":[""]} (53)
2020.05.16 18:18:08.271 5: Ventilator: send 213100600000000007aa73af001ac7bbc17e9be9c6069096f1e0a5dcbe690c85b447b3eb4ec5df635b8ae3fcb31ef7e261ccdbbadf5372b8423a181abcfe801f52d98ca78dbb3e7f6b0555183e3b228cea1d2bc98e099f07b05bfc84bbf6852c
2020.05.16 18:18:08.272 5: Ventilator Send SUCCESS
2020.05.16 18:18:08.272 5: Ventilator > 213100600000000007aa73af001ac7bbc17e9be9c6069096f1e0a5dcbe690c85b447b3eb4ec5df635b8ae3fcb31ef7e261ccdbbadf5372b8423a181abcfe801f52d98ca78dbb3e7f6b0555183e3b228cea1d2bc98e099f07b05bfc84bbf6852c
2020.05.16 18:18:08.272 4: Ventilator: write {"id":219,"method":"get_dnd_timer","params":[""]} (49)
2020.05.16 18:18:08.288 5: Ventilator: send 213100600000000007aa73af001ac7bbe964deef50e5515ea4d0dea2ec9bcdf65d28e3035d34d3501b431cb9be9ac5726640252e111769487cd4193e451cbed8cbf23d4b33d6f9ef4817544df79f6c22283b66984ddc1d5164f8662489a75253
2020.05.16 18:18:08.288 5: Ventilator Send SUCCESS
2020.05.16 18:18:08.288 5: Ventilator > 213100600000000007aa73af001ac7bbe964deef50e5515ea4d0dea2ec9bcdf65d28e3035d34d3501b431cb9be9ac5726640252e111769487cd4193e451cbed8cbf23d4b33d6f9ef4817544df79f6c22283b66984ddc1d5164f8662489a75253
2020.05.16 18:18:08.289 4: Ventilator: write {"id":220,"method":"get_timer","params":[""]} (45)
2020.05.16 18:18:08.301 5: Ventilator: send 213100500000000007aa73af001ac7bbcc8abf4e1c6d6e29c8a1d4005e09953b07b161fb3cb298fdc5a9aabcb2ffc7ece20b86ddf5dc2c89c4ebc23e2d51c3ac37434bce833a9f4270ab71ee059aadb9
2020.05.16 18:18:08.301 5: Ventilator Send SUCCESS
2020.05.16 18:18:08.302 5: Ventilator > 213100500000000007aa73af001ac7bbcc8abf4e1c6d6e29c8a1d4005e09953b07b161fb3cb298fdc5a9aabcb2ffc7ece20b86ddf5dc2c89c4ebc23e2d51c3ac37434bce833a9f4270ab71ee059aadb9
2020.05.16 18:18:08.302 4: Ventilator: write {"id":221,"method":"get_sound_volume","params":[""]} (52)
2020.05.16 18:18:08.315 5: Ventilator: send 213100600000000007aa73af001ac7bbaa114fd632028ff6d9368625a77e13149070ff96e0de9fdc21438a7cc446f89bca3ca3cb241acd5fdbd05ed906806e017926888b99c18f5211bd7845b119477088570521b3042891ed51a4de73e5777d
2020.05.16 18:18:08.315 5: Ventilator Send SUCCESS
2020.05.16 18:18:08.315 5: Ventilator > 213100600000000007aa73af001ac7bbaa114fd632028ff6d9368625a77e13149070ff96e0de9fdc21438a7cc446f89bca3ca3cb241acd5fdbd05ed906806e017926888b99c18f5211bd7845b119477088570521b3042891ed51a4de73e5777d
2020.05.16 18:18:08.315 4: Ventilator: write {"id":222,"method":"get_carpet_mode","params":[""]} (51)
2020.05.16 18:18:08.321 5: Ventilator: send 213100600000000007aa73af001ac7bb99f69aac694730dfdd12a845287f10aec6650e24c3d967325107911af2d16d05cba62ed5385d1d97d0bd31c10e3357d973d98ab2caf93db3dcaf8e802fa2372dbf885a9f00bc4291a05a6829dbc6c81e
2020.05.16 18:18:08.322 5: Ventilator Send SUCCESS
2020.05.16 18:18:08.322 5: Ventilator > 213100600000000007aa73af001ac7bb99f69aac694730dfdd12a845287f10aec6650e24c3d967325107911af2d16d05cba62ed5385d1d97d0bd31c10e3357d973d98ab2caf93db3dcaf8e802fa2372dbf885a9f00bc4291a05a6829dbc6c81e
2020.05.16 18:18:08.322 4: Ventilator: write {"id":223,"method":"get_fw_features","params":[""]} (51)
2020.05.16 18:18:08.328 5: Ventilator: send 213100600000000007aa73af001ac7bb0152c61a02e7ada5d258c9c8f86766fddeddef4782c0c83335ce7a70a2350f5bc48e88930d6bc50e238a2cacc65077a78d7119365b2cce392078ec3b25dca3dbb4e3fd487c598a552ee2c22feab826e4
2020.05.16 18:18:08.328 5: Ventilator Send SUCCESS
2020.05.16 18:18:08.328 5: Ventilator > 213100600000000007aa73af001ac7bb0152c61a02e7ada5d258c9c8f86766fddeddef4782c0c83335ce7a70a2350f5bc48e88930d6bc50e238a2cacc65077a78d7119365b2cce392078ec3b25dca3dbb4e3fd487c598a552ee2c22feab826e4
2020.05.16 18:18:08.329 4: Ventilator: write {"id":224,"method":"app_get_locale","params":[""]} (50)
2020.05.16 18:18:08.335 5: Ventilator: send 213100600000000007aa73af001ac7bbd2c6bd601e8358d076b7e8846e77bda2441d4afb5a906ce179a2387349e006076fc14762a8f61729a5f48eb55b240fcee453ebf4baf46d05d2e420c6ec2d6b1128559fdfa23c16fd7be11f595867fad1
2020.05.16 18:18:08.335 5: Ventilator Send SUCCESS
2020.05.16 18:18:08.335 5: Ventilator > 213100600000000007aa73af001ac7bbd2c6bd601e8358d076b7e8846e77bda2441d4afb5a906ce179a2387349e006076fc14762a8f61729a5f48eb55b240fcee453ebf4baf46d05d2e420c6ec2d6b1128559fdfa23c16fd7be11f595867fad1
2020.05.16 18:18:08.441 5: Ventilator < 213100800000000007aa73af001ac7bbcb1e4e734d4809d22f54f8561ea39cc9862c549cdd459b06ee659ce65512b6436f05568c557b328cb6c70aa17c3d72d04eef26c5f4697db924946d800c91d8186afb21db1cca72f8e24b70d789b31abe36adf8f66ade40103ae6d6f4478fb0be0dbee0d40e94d104f49c79190d443ac9 (128)
2020.05.16 18:18:08.451 5: Ventilator: decrypted
{"id":216,"result":[false,"normal",75,true,60,0,true,false,false],"exe_time":150}
2020.05.16 18:18:08.452 5: Ventilator: parse id 216
$VAR1 = {
'result' => [
bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
'normal',
75,
bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
60,
0,
$VAR1->{'result'}[3],
$VAR1->{'result'}[0],
$VAR1->{'result'}[0]
],
'exe_time' => 150,
'id' => 216
};
2020.05.16 18:18:08.452 4: Ventilator: parse id 216 / fan_data_1x
2020.05.16 18:18:08.452 4: Ventilator: msg ref is ARRAY
2020.05.16 18:18:08.662 5: Ventilator < 213100600000000007aa73af001ac7bb9917973f6b060163d94d71687ee02114673ed4f968efa8e56432e0286de2524a1e1b8df6258c66bf13c7ca0e51caf24d3feb437bb52b883b8a1070a887e2549853809c079febb99e9304aa9cc87d6c6a (96)
2020.05.16 18:18:08.670 5: Ventilator: decrypted
{"id":223,"error":{"code":-30012,"message":"busy."}}
2020.05.16 18:18:08.670 5: Ventilator: parse id 223
$VAR1 = {
'id' => 223,
'error' => {
'code' => -30012,
'message' => 'busy.'
}
};
2020.05.16 18:18:08.670 4: Ventilator: parse id 223 / get_fw_features
2020.05.16 18:18:08.670 4: Ventilator: msg ref is
2020.05.16 18:18:08.683 5: Ventilator < 213100600000000007aa73af001ac7bb6444e319eaf6a2557f988df0369131f48e422cb3cb89e32a573282acc2fdd5662722aa3f92845a0ef75c281799e2a2748e5d6ab82e757f499196271c04cd6d77430631ad8efcaf32eb4ace7151eeee57 (96)
2020.05.16 18:18:08.690 5: Ventilator: decrypted
{"id":224,"error":{"code":-30012,"message":"busy."}}
2020.05.16 18:18:08.690 5: Ventilator: parse id 224
$VAR1 = {
'id' => 224,
'error' => {
'message' => 'busy.',
'code' => -30012
}
};
2020.05.16 18:18:08.691 4: Ventilator: parse id 224 / app_get_locale
2020.05.16 18:18:08.691 4: Ventilator: msg ref is
2020.05.16 18:18:12.345 5: Ventilator < 213100700000000007aa73af001ac7bf096490f88aa19dbd444b02af392be7d4dd2e06c6d6ddfa103b5d4924e1069ff7d39afe5500e7c0cac38c75c490d069bbab7a30ec1e5982aca73fa1e261ae63373e22e054e0cddf950b85faff2c50360f274a0a058da5c5a1387e6f9fc8de0d17 (112)
2020.05.16 18:18:12.366 5: Ventilator: decrypted
{"id":217,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4020}
2020.05.16 18:18:12.367 5: Ventilator: parse id 217
$VAR1 = {
'error' => {
'message' => 'user ack timeout',
'code' => -9999
},
'exe_time' => 4020,
'id' => 217
};
2020.05.16 18:18:12.367 4: Ventilator: parse id 217 / get_consumable
2020.05.16 18:18:12.368 4: Ventilator: msg ref is
2020.05.16 18:18:12.472 5: Ventilator < 213100700000000007aa73af001ac7bf284a987858957d10114577ee0933701a762340cfdd1e9e6976a6c0aa288828e63d605d72e1af6d47153612e9f55dc6a569267540910be1f715d85d0f04dc12e9423fd8da9545f4234f4de0560f00be4e97bd48aa6958700e96775b29ffb702ba (112)
2020.05.16 18:18:12.487 5: Ventilator: decrypted
{"id":218,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4020}
2020.05.16 18:18:12.487 5: Ventilator: parse id 218
$VAR1 = {
'exe_time' => 4020,
'id' => 218,
'error' => {
'code' => -9999,
'message' => 'user ack timeout'
}
};
2020.05.16 18:18:12.488 4: Ventilator: parse id 218 / get_clean_summary
2020.05.16 18:18:12.488 4: Ventilator: msg ref is
2020.05.16 18:18:12.517 5: Ventilator < 213100700000000007aa73af001ac7bf9c6179df42038a8f7ced4d62780274319b77f519f12c0e0598c773cc58bc34910ddf9a74fde6002d1e98f43e5cd89c63ccc47a4cf2c48cb41fb6c74d552b68580a04df890f55c061257192a827fcd44ea028dc512c40d40e573818c742cf73be (112)
2020.05.16 18:18:12.526 5: Ventilator: decrypted
{"id":219,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4020}
2020.05.16 18:18:12.527 5: Ventilator: parse id 219
$VAR1 = {
'error' => {
'code' => -9999,
'message' => 'user ack timeout'
},
'exe_time' => 4020,
'id' => 219
};
2020.05.16 18:18:12.527 4: Ventilator: parse id 219 / get_dnd_timer
2020.05.16 18:18:12.527 4: Ventilator: msg ref is
2020.05.16 18:18:12.563 5: Ventilator < 213100700000000007aa73af001ac7bfe9f37ed9d33bc8a3aeb9d22f088af2abd77a913068c48629ee433f3542ef580512d14f05ee544dadebb19e414cc7ac36290ed6ff66cfb1af3a6c9e3bb316f1f2d3bda5d790e3ef9fc552536a9b6bd2c11c8d56eb01d6a478220de82cddcaf059 (112)
2020.05.16 18:18:12.572 5: Ventilator: decrypted
{"id":220,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4040}
2020.05.16 18:18:12.573 5: Ventilator: parse id 220
$VAR1 = {
'error' => {
'message' => 'user ack timeout',
'code' => -9999
},
'id' => 220,
'exe_time' => 4040
};
2020.05.16 18:18:12.573 4: Ventilator: parse id 220 / get_timer
2020.05.16 18:18:12.573 4: Ventilator: msg ref is
2020.05.16 18:18:12.605 5: Ventilator < 213100700000000007aa73af001ac7bfc3d79ea0f65cebfaef5b28d8ae5b2fd5f19b3f4e9e6e5614a500da0a6afe9eaf84e8c5a915182369f4fac66c38ade4a341c64a12d75b1ff071960d6156cfb17ae5ae9ac3f05da2ef1fb1f413e55399e3d60c037c617e366512c4d32ca19a7deb (112)
2020.05.16 18:18:12.614 5: Ventilator: decrypted
{"id":221,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4060}
2020.05.16 18:18:12.615 5: Ventilator: parse id 221
$VAR1 = {
'error' => {
'code' => -9999,
'message' => 'user ack timeout'
},
'id' => 221,
'exe_time' => 4060
};
2020.05.16 18:18:12.615 4: Ventilator: parse id 221 / get_sound_volume
2020.05.16 18:18:12.615 4: Ventilator: msg ref is
2020.05.16 18:18:12.649 5: Ventilator < 213100700000000007aa73af001ac7bf6c441c566ce621312914f637516d52852937fc142fa5ed3d76a620b747f8d3691b0d0f72d25702b36f402ab239530cb11abd9adb8ac32acb7e454c1ae0e450fadec696e0527e362fa06733c880cb2ad9ecedbbc50df6891ff713311e5f529287 (112)
2020.05.16 18:18:12.658 5: Ventilator: decrypted
{"id":222,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4040}
2020.05.16 18:18:12.658 5: Ventilator: parse id 222
$VAR1 = {
'error' => {
'code' => -9999,
'message' => 'user ack timeout'
},
'exe_time' => 4040,
'id' => 222
};
2020.05.16 18:18:12.658 4: Ventilator: parse id 222 / get_carpet_mode
2020.05.16 18:18:12.659 4: Ventilator: msg ref is
Zitat von: MadMax-FHEM am 16 Mai 2020, 14:54:38
Hast du ihn "gerooted"!?
Lässt er sich rooten!?
Bzw.: wie bekommt man da den Token!?
Ich habe ja V1 und den V2 (S5 ohne Max!?)...
Beide gerooted :)
Danke, Joachim
Nein, nicht gerootet, das geht wohl nicht (und ich hab's erst garnicht probiert). An das Token kommt man trotzdem noch auf den bekannten Wegen, ich hab's über dieses Windows Progrämmchen mit USB-Debugging am Samsung Tablet gemacht...
Kurz, weil mobil....
Zitat von: KernSani am 16 Mai 2020, 18:30:50
Nein, nicht gerootet, das geht wohl nicht (und ich hab's erst garnicht probiert). An das Token kommt man trotzdem noch auf den bekannten Wegen, ich hab's über dieses Windows Progrämmchen mit USB-Debugging am Samsung Tablet gemacht...
Kurz, weil mobil....
Ok, danke!
Gruß, Joachim
Zitat von: ucm73 am 16 Mai 2020, 18:25:14
An set parametern funktioniert:
"angel", "level", "mode", "reconnect".
Die anderen set Parameter dementsprechend nicht. An-/Ausschalten also auch nicht.
"Get data" liefert weiterhin nichts.
"Get setttings" liefert folgendes:
Noch ein Versuch, die Abfragen auf die Staubsauger Daten müssen jetzt weg sein.
@KernSani - könntest Du den weg an das Token zu kommen nochmal erläutern..?
Zitat von: der-Lolo am 17 Mai 2020, 11:22:46
@KernSani - könntest Du den weg an das Token zu kommen nochmal erläutern..?
Ich bin nach dieser Methode: https://www.smarthomeassistent.de/token-auslesen-roborock-s6-roborock-s5-xiaomi-mi-robot-xiaowa/ vorgegangen. Die letzte der drei genannten Optionen (Windows PC + Android). Ich musste die dort verlinkte alte Version der mi home App installieren.
Kurz, weil mobil....
Hallo Markus,
super, jetzt lässt sich alles schalten und soweit ich das sehe funktionieren alle "set" und "get" Befehle.
Ich hänge einmal ein aktuelles "get data" an.
2020.05.17 14:49:30.369 4: Ventilator: write {"id":328,"method":"get_prop","params":["power","mode","speed","roll_enable","roll_angle","time_off","light","beep_sound","child_lock"]} (136)
2020.05.17 14:49:30.369 5: Ventilator: initSend
2020.05.17 14:49:30.369 5: Ventilator Send SUCCESS
2020.05.17 14:49:30.369 5: Ventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.05.17 14:49:30.382 5: Ventilator: send 213100b00000000007aa73af001be854f8d18e1a046634edd733f165497da5e653ca1cf6abe8cd1fcb1993f92a06959ed6af54c79da33b39babd82a4c092c23ba8e8539c7a41026cf35a5dcbe1a6898cea65445b1829587349d6f503a7f47671fbf9d80632c47bb877742f48c83232e2d3bfe24749d1a6f46b32e0249afd255c56607974372c9d91375fc2d7a54951c9ab63828deec5db961ebdb22d2d9f73d3e2f2797f0381f7efeadc49340da6c38f
2020.05.17 14:49:30.382 5: Ventilator Send SUCCESS
2020.05.17 14:49:30.382 5: Ventilator > 213100b00000000007aa73af001be854f8d18e1a046634edd733f165497da5e653ca1cf6abe8cd1fcb1993f92a06959ed6af54c79da33b39babd82a4c092c23ba8e8539c7a41026cf35a5dcbe1a6898cea65445b1829587349d6f503a7f47671fbf9d80632c47bb877742f48c83232e2d3bfe24749d1a6f46b32e0249afd255c56607974372c9d91375fc2d7a54951c9ab63828deec5db961ebdb22d2d9f73d3e2f2797f0381f7efeadc49340da6c38f
2020.05.17 14:49:30.485 5: Ventilator < 213100200000000007aa73af001be854ffffffffffffffffffffffffffffffff (32)
2020.05.17 14:49:30.697 5: Ventilator < 213100800000000007aa73af001be854666448e23ec0f42ece83691a718923e22a9ac98e6bc7f5bcc333906a7f4465bbb8a465451c89e5d91691d8bd8fefa66df578dcb1655d117c25d9722932fd7510acf6a31cb8a023610b3778784d7c2368ff90a4ed73334ba86c718425ed51f5d32dc0948b52c85a766a8f8fde169d7aba (128)
2020.05.17 14:49:30.707 5: Ventilator: decrypted
{"id":328,"result":[false,"nature",91,true,120,0,false,false,false],"exe_time":170}
2020.05.17 14:49:30.719 5: Ventilator: parse id 328
$VAR1 = {
'result' => [
bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
'nature',
91,
bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
120,
0,
$VAR1->{'result'}[0],
$VAR1->{'result'}[0],
$VAR1->{'result'}[0]
],
'exe_time' => 170,
'id' => 328
};
2020.05.17 14:49:30.719 4: Ventilator: parse id 328 / fan_data_1x
2020.05.17 14:49:30.719 4: Ventilator: msg ref is ARRAY
Vielen Dank für deine Mühe!
Sehr schön. Ich teste noch ein paar Tage gegen ob meine Geräte noch problemlos laufen und checke es dann ein.
Beobachte mal bitte ob noch irgendwelche Fehlermeldungen oder nicht beantwortete Abfragen auftauchen.
Zitat von: Markus M. am 16 Mai 2020, 15:26:28
Ein getesteter Patch wäre gut ;)
Hi Markus,
anbei der Patch, der bei mir (produktiv) läuft. Es gibt noch ein paar weitere interessante Dinge, get_room_mapping z.B., mit der neuesten FW (die mehrere Maps unterstützt) verhält sich das aber etwas komisch, daher habe ich das erstmal rausgenommen.
Grüße,
Oli
Zitat von: KernSani am 17 Mai 2020, 23:42:33
anbei der Patch, der bei mir (produktiv) läuft. Es gibt noch ein paar weitere interessante Dinge, get_room_mapping z.B., mit der neuesten FW (die mehrere Maps unterstützt) verhält sich das aber etwas komisch, daher habe ich das erstmal rausgenommen.
Funktioniert das
clean_segment eigentlich auch beim normalen S5 ohne Max?
Ich hab absolut keinen Überblick über die Modelle und unterschiedlichen Features mehr.
Zitat von: Markus M. am 18 Mai 2020, 01:10:52
Funktioniert das clean_segment eigentlich auch beim normalen S5 ohne Max?
Ich hab absolut keinen Überblick über die Modelle und unterschiedlichen Features mehr.
Ja, starten kann ich das bei meinem S50. Nur habe ich mit den FHEM Funktionen Probleme:
https://forum.fhem.de/index.php/topic,110703.msg1048366.html#msg1048366
Hallo Markus,
der SmartFan1X Ventilator läuft wunderbar. Keine Meldungen.
Ich habe aber in dieser Version bei der Xiaomi Mi LED Desklamp "model: yeelink.light.lamp1" in unregelmäßigen Abständen täglich ca. 15, der nachfolgenden Meldungen im Log.
2020.05.19 23:51:06.585 2: SZ_Leselampe: Message type for ID 959 not found
2020.05.19 23:51:06.585 3: SZ_Leselampe: $VAR1 = {
'id' => 959,
'result' => [
'off',
'1',
'',
'',
'',
'4000',
'2',
'0',
'0',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'0',
'0',
'',
'0'
]
};
"get settings":
2020.05.20 00:28:29.415 4: SZ_Leselampe: write {"id":969,"method":"get_prop","params":["power","bright","cct","snm","dv","ct","color_mode","delayoff","flowing","flow_params","name","rgb","hue","sat","ambstatus","ambvalue","eyecare","bls","dvalue","kid_mode","skey_act","skey_scene_id","lan_ctrl"]} (250)
2020.05.20 00:28:29.467 5: SZ_Leselampe: send 2131012000000000032abb74006aa951c622356124ebe60768f15428875e4e45c32f284491a8668e15ec33972ba07441ee369a63d65c28822872a98cad7c0254b19c1606b0fd265e229abd9fe6a5ccec8ece9480fd8e224dc410e4a757c74c7351ed6210afc668c5cfb02058e20c6d22131be2e906431d85403783cdbff95859bb8d6641b6a7571358fce0b73f8b5da5026dc141642770ec3bc77b73854901c2283032c082a4d316160ae6bde475ea21997cad6685823789efbfb69dc7d0c594cc126a3699be05d3bfde6bbe52244e7827d9fd5292643fb3662cfb02a8a1268a8b63938f1542229d3cb3ff13f6074bef4773a29c2f8c89f15df0f1ca584dadedc96692342f801954f43e0345fa61b8eca93bf233a5a44a63f918dcdf86a08eea
2020.05.20 00:28:29.468 5: SZ_Leselampe Send SUCCESS
2020.05.20 00:28:29.468 5: SZ_Leselampe > 2131012000000000032abb74006aa951c622356124ebe60768f15428875e4e45c32f284491a8668e15ec33972ba07441ee369a63d65c28822872a98cad7c0254b19c1606b0fd265e229abd9fe6a5ccec8ece9480fd8e224dc410e4a757c74c7351ed6210afc668c5cfb02058e20c6d22131be2e906431d85403783cdbff95859bb8d6641b6a7571358fce0b73f8b5da5026dc141642770ec3bc77b73854901c2283032c082a4d316160ae6bde475ea21997cad6685823789efbfb69dc7d0c594cc126a3699be05d3bfde6bbe52244e7827d9fd5292643fb3662cfb02a8a1268a8b63938f1542229d3cb3ff13f6074bef4773a29c2f8c89f15df0f1ca584dadedc96692342f801954f43e0345fa61b8eca93bf233a5a44a63f918dcdf86a08eea
2020.05.20 00:28:29.491 5: SZ_Leselampe < 2131009000000000032abb74006aa951f7be1f09dd59134a3b283acf6533a5000237d5e03d9dd413c3c2a169178ebd9e15c16910e08fa42e573cfecba8d1b6dd4bb368de6789f18c996f910ba10269a3f05e4e8816478bf37adb6881092678e9c6570cdb598ac64dd71a6faaabacc79d81a03fd9361c4abfa25cd696e6c3349348f7b2bc1aa31facc011969243dacc77 (144)
2020.05.20 00:28:29.520 5: SZ_Leselampe: decrypted
{"id":969,"result":["off","1","","","","4000","2","0","0","","","","","","","","","","","0","0","","0"]}
2020.05.20 00:28:29.521 5: SZ_Leselampe: parse id 969
$VAR1 = {
'id' => 969,
'result' => [
'off',
'1',
'',
'',
'',
'4000',
'2',
'0',
'0',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'0',
'0',
'',
'0'
]
};
2020.05.20 00:28:29.522 4: SZ_Leselampe: parse id 969 / lamp_data
2020.05.20 00:28:29.522 4: SZ_Leselampe: msg ref is ARRAY
"get data":
2020.05.20 00:29:27.915 4: SZ_Leselampe: write {"id":970,"method":"get_prop","params":["power","bright","cct","snm","dv","ct","color_mode","delayoff","flowing","flow_params","name","rgb","hue","sat","ambstatus","ambvalue","eyecare","bls","dvalue","kid_mode","skey_act","skey_scene_id","lan_ctrl"]} (250)
2020.05.20 00:29:27.936 5: SZ_Leselampe: send 2131012000000000032abb74006aa98baf6421da0cde700b857d20fd73bb61f8fb5049d7f9227ba1d7f0f24d08c308d73bfad7f227903f966a4c8bac836ced49ca3ef2b9e346f684dae5a8159562effeb50d5d574de1f4d111a2909631c01a5910ff0eb306abf686ea12adce3cfd609893601dacac5cb59d94834bb058182a43eda8ec1c19d4df41559a845d24f71010e9d1951fd9820e5861f47e17d952bf216ffc28f87ab8bdb163a00061bf54208f396cbc5f9992fad44b41abe39ea27fb46a4db46292da8e7048d834a13bc58b97818bfaaf06524b72353ab3fa1facbc53c4fcb789107a10fd0fbd795c0841f2e410bc0ec19712c0e23e5443168372c704f7b994d10fa334b576653e6c6d9da95d339b72687c41f6dbffd5d314d0226cd5
2020.05.20 00:29:27.936 5: SZ_Leselampe Send SUCCESS
2020.05.20 00:29:27.937 5: SZ_Leselampe > 2131012000000000032abb74006aa98baf6421da0cde700b857d20fd73bb61f8fb5049d7f9227ba1d7f0f24d08c308d73bfad7f227903f966a4c8bac836ced49ca3ef2b9e346f684dae5a8159562effeb50d5d574de1f4d111a2909631c01a5910ff0eb306abf686ea12adce3cfd609893601dacac5cb59d94834bb058182a43eda8ec1c19d4df41559a845d24f71010e9d1951fd9820e5861f47e17d952bf216ffc28f87ab8bdb163a00061bf54208f396cbc5f9992fad44b41abe39ea27fb46a4db46292da8e7048d834a13bc58b97818bfaaf06524b72353ab3fa1facbc53c4fcb789107a10fd0fbd795c0841f2e410bc0ec19712c0e23e5443168372c704f7b994d10fa334b576653e6c6d9da95d339b72687c41f6dbffd5d314d0226cd5
2020.05.20 00:29:27.961 5: SZ_Leselampe < 2131009000000000032abb74006aa98c369eec7eb67ee181836912f572a114900c28bf4dea8e94757dcf458844d34d1a4d4365151ed47a75f92a9f5d1d788d34a9f80d4f1d4296aabb7481085a059b373bb8964ac848bf6119852a4f5b1b986e37977fc02d5e37b939b39c678f2fb8f8b855a2c87e7e397511e5e14bfb935619da7e86ad43df8c6949ebb882f0a55002 (144)
2020.05.20 00:29:27.973 5: SZ_Leselampe: decrypted
{"id":970,"result":["off","1","","","","4000","2","0","0","","","","","","","","","","","0","0","","0"]}
2020.05.20 00:29:27.974 5: SZ_Leselampe: parse id 970
$VAR1 = {
'id' => 970,
'result' => [
'off',
'1',
'',
'',
'',
'4000',
'2',
'0',
'0',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'0',
'0',
'',
'0'
]
};
2020.05.20 00:29:27.974 4: SZ_Leselampe: parse id 970 / lamp_data
2020.05.20 00:29:27.974 4: SZ_Leselampe: msg ref is ARRAY
Ist das noch ein Fehler (die verbose 3 Meldung im normalen Log) oder normal?
Zitat von: ucm73 am 20 Mai 2020, 00:33:32
der SmartFan1X Ventilator läuft wunderbar. Keine Meldungen.
Ich habe aber in dieser Version bei der Xiaomi Mi LED Desklamp "model: yeelink.light.lamp1" in unregelmäßigen Abständen täglich ca. 15, der nachfolgenden Meldungen im Log.
2020.05.19 23:51:06.585 2: SZ_Leselampe: Message type for ID 959 not found
Ist das noch ein Fehler (die verbose 3 Meldung im normalen Log) oder normal?
Neue Version ist im Update!Der Fehler ist seltsam, definitiv nicht normal.
Wenn das wieder vorkommt, mach mal ein list und schau ob da noch irgendwelche IDs für lamp_data verwaist sind.
Ansonsten einfach verbose 2 setzen.
Hallo Markus, ich muss doch noch einmal stören, wegen der Meldungen bzgl. der Xiaomi Mi LED Desklamp.
Diese Log Einträge kommen weiterhin, gefühlt noch öfter:
Hier ein List:
Internals:
DEF xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
FD 143
FUUID 5c4c3e73-f33f-95bc-c9ff-30d288e74ce3e433
NAME SZ_Leselampe
NR 1464
STATE off
TYPE XiaomiDevice
hardware esp8266
mac xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
model yeelink.light.lamp1
token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
wifi_firmware f5a8a5b-dirty
READINGS:
2020-05-21 21:25:08 brightness 0
2020-05-21 21:25:08 brightness_on 1
2020-05-21 21:25:08 color_mode 2
2020-05-21 21:25:08 ct 4000
2020-05-21 21:25:02 device_firmware 2.0.4_0066
2020-05-21 21:25:02 device_uptime 1986.65
2020-05-21 21:25:08 error none
2020-05-21 21:25:08 flowing 0
2020-05-21 21:25:08 kid_mode 0
2020-05-21 21:25:08 lan_ctrl 0
2020-05-21 21:25:08 power off
2020-05-21 21:25:08 poweroff_time 0
2020-05-21 21:25:08 skey_act 0
2020-05-21 02:08:33 state connected
2020-05-21 21:25:02 wifi_rssi -71
helper:
ConnectionState connected
crypt Rijndael
delay 60
dev 032a
id bb74
ip xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
last_read 1590089108
packetid 1563
port 54321
sequence 1582937149
token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
packet:
1304 lamp_data
828 lamp_data
851 lamp_data
Attributes:
room Schlafzimmer
stateFormat power
subType SmartLamp
verbose 3
webCmd toggle:on:off
Siehst du da irgend etwas, was mir weiterhelfen könnte?
Zitat von: ucm73 am 21 Mai 2020, 21:31:19Diese Log Einträge kommen weiterhin, gefühlt noch öfter:
packet:
1304 lamp_data
828 lamp_data
851 lamp_data
Und welche IDs konnte er laut Logeinträgen vor diesem list nicht finden?
Muss ca. so aussehen:
Message type for ID XXX not found
Leider passt da nichts.
Gerade folgende Meldung im LOG.
2020.05.21 22:55:08.143 2: SZ_Leselampe: Message type for ID 1581 not found
2020.05.21 22:55:08.143 3: SZ_Leselampe: $VAR1 = {
'id' => 1581,
'result' => [
'off',
'1',
'',
'',
'',
'4000',
'2',
'0',
'0',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'0',
'0',
'',
'0'
]
};
Und das LIST zeigt
Internals:
DEF 1xxxxxxxxxxxxxxxxxxxxxxx
FD 143
FUUID 5c4c3e73-f33f-95bc-c9ff-30d288e74ce3e433
NAME SZ_Leselampe
NR 1464
STATE off
TYPE XiaomiDevice
hardware esp8266
mac xxxxxxxxxxxxxxxxxx
model yeelink.light.lamp1
token xxxxxxxxxxxxxxxxxxxxxxxxxx
wifi_firmware f5a8a5b-dirty
READINGS:
2020-05-21 22:55:08 brightness 0
2020-05-21 22:55:08 brightness_on 1
2020-05-21 22:55:08 color_mode 2
2020-05-21 22:55:08 ct 4000
2020-05-21 21:25:02 device_firmware 2.0.4_0066
2020-05-21 21:25:02 device_uptime 1986.65
2020-05-21 22:55:08 error none
2020-05-21 22:55:08 flowing 0
2020-05-21 22:55:08 kid_mode 0
2020-05-21 22:55:08 lan_ctrl 0
2020-05-21 22:55:08 power off
2020-05-21 22:55:08 poweroff_time 0
2020-05-21 22:55:08 skey_act 0
2020-05-21 02:08:33 state connected
2020-05-21 21:25:02 wifi_rssi -71
helper:
ConnectionState connected
crypt Rijndael
delay 60
dev 032a
id bb74
ip 192.168.2.115
last_read 1590094508
packetid 1582
port 54321
sequence 1582937149
token xxxxxxxxxxxxxxxxxxxxxxxxx
packet:
1304 lamp_data
828 lamp_data
851 lamp_data
Attributes:
room Schlafzimmer
stateFormat power
subType SmartLamp
verbose 3
webCmd toggle:on:off
Das passt nicht, meine ich.
Zitat von: ucm73 am 21 Mai 2020, 23:00:49
Leider passt da nichts.
Gerade folgende Meldung im LOG.
Sehr seltsam.
Vor allem da ich hier die gleiche Lampe habe ohne dass ich das Problem hätte.
Setz mal verbose 2 und lass die Version im Anhang laufen.
Die protokolliert für den Typ SmartLamp sämtliche IDs die gesendet und empfangen werden.
info:
in aktueller svn version des moduls ist die set auswahl clean_segment ( zumindest bei mir ) nicht mehr vorhanden. ich bin auf die vorherige version zurück.
Internals:
DEF 192.168.178.101 xxx
FD 56
FUUID 5e59f33f-f33f-1e75-bc7d-305a5cc537e4469e
FVERSION 72_XiaomiDevice.pm:0.219750/2020-05-19
NAME vacuum
NR 395
STATE disconnected
TYPE XiaomiDevice
hardware Linux
mac 04:CF:8C:F9:A5:D2
model roborock.vacuum.s5
token xxx
READINGS:
2020-05-22 07:06:59 app_bom A.03.0005
2020-05-22 07:06:59 app_language en
2020-05-22 07:06:59 app_location de
2020-05-22 07:06:59 app_logserver awsde0.fds.api.xiaomi.com
2020-05-22 07:06:59 app_name custom_A.03.0005_CE
2020-05-22 07:06:59 app_timezone Europe/Berlin
2020-05-22 06:33:51 batteryPercent 100
2020-05-22 06:33:51 batteryState ok
2020-05-22 07:06:59 carpet_high 500
2020-05-22 07:06:59 carpet_integral 450
2020-05-22 07:06:59 carpet_low 400
2020-05-22 07:06:59 carpet_mode on
2020-05-22 07:06:59 carpet_stall_time 10
2020-05-22 06:33:51 cleaning_mode max
2020-05-22 07:06:59 consumables_filter 39
2020-05-22 07:06:59 consumables_main_brush 69
2020-05-22 07:06:59 consumables_sensors 95
2020-05-22 07:06:59 consumables_side_brush 54
2020-05-22 07:06:55 device_firmware 3.5.7_002008
2020-05-22 07:06:59 device_fw_features 102,103,104,105,111,112,113,114,115,116,117,118,119,122,123,125
2020-05-22 07:06:55 device_uptime 3.27
2020-05-22 06:33:51 dnd off
2020-05-22 07:06:59 dnd_enabled off
2020-05-22 07:06:59 dnd_end 08:00
2020-05-22 07:06:59 dnd_start 22:00
2020-05-22 07:07:00 error none
2020-05-22 06:33:51 error_code None
2020-05-10 12:30:50 event clean_complete
2020-05-22 06:33:51 fan_power 104
2020-05-22 07:07:00 history_0 2020-05-21 17:16:47: 5.96m² in 0.28h, finished cleaning
2020-05-22 07:07:00 history_1 2020-05-21 12:28:53: 6.84m² in 0.12h, not finished
2020-05-22 07:07:00 history_2 2020-05-21 12:22:17: 3.23m² in 0.08h, finished cleaning
2020-05-22 07:07:00 history_3 2020-05-21 12:19:21: 3.00m² in 0.05h, not finished
2020-05-22 07:07:00 history_4 2020-05-21 10:29:06: 37.50m² in 0.61h, finished cleaning
2020-05-22 07:07:00 history_5 2020-05-21 07:31:42: 0.46m² in 0.02h, finished cleaning
2020-05-22 07:07:00 history_6 2020-05-20 16:25:38: 0.50m² in 0.02h, finished cleaning
2020-05-22 07:07:00 history_7 2020-05-20 12:12:51: 0.61m² in 0.02h, finished cleaning
2020-05-22 07:07:00 history_8 2020-05-19 07:35:43: 0.62m² in 0.02h, finished cleaning
2020-05-22 07:07:00 history_9 2020-05-19 05:30:55: 0.58m² in 0.02h, finished cleaning
2020-05-22 06:33:51 in_cleaning no
2020-05-22 06:33:51 in_fresh_state yes
2020-05-22 06:33:51 in_returning no
2020-05-22 06:33:51 lab_status yes
2020-05-22 06:33:51 last_clean_area 5.96
2020-05-22 06:33:51 last_clean_time 0.28
2020-05-22 07:07:00 last_timestamp 1590074207
2020-05-22 06:33:51 map_present yes
2020-05-22 07:06:55 serial_number xxx
2020-05-22 07:08:51 state disconnected
2020-05-22 07:06:56 timezone Europe/Berlin
2020-05-22 07:06:59 total_clean_area 4282.97
2020-05-22 07:06:59 total_clean_time 90.98
2020-05-22 07:06:59 total_cleans 566
2020-05-22 07:06:59 volume 90
2020-05-22 06:33:51 water_box_status no
2020-05-22 07:06:55 wifi_auth_fail_count 0
2020-05-22 07:06:55 wifi_conn_fail_count 0
2020-05-22 07:06:55 wifi_conn_success_count 1
2020-05-22 07:06:55 wifi_dhcp_fail_count 0
2020-05-22 07:06:55 wifi_rssi -59
2020-05-22 07:06:55 wifi_state online
helper:
ConnectionState disconnected
cleanrecord 10
crypt Rijndael
delay 180
dev 0000
historydays 10
id 0000
ip 192.168.178.101
last_read 1590124082
packetid 776
port 54321
sequence 1590112227
timers 0
token xxx
zone_names Kehrecke,Tabak
day:
history:
packet:
126 app_goto_target
156 get_status
293 get_status
294 get_status
295 get_status
296 get_status
297 get_status
298 get_status
300 get_clean_summary
301 get_dnd_timer
302 get_timer
303 get_sound_volume
304 get_carpet_mode
305 get_fw_features
306 app_get_locale
308 get_status
309 get_status
310 get_status
311 get_status
312 get_status
313 get_status
314 get_status
315 get_status
316 get_status
317 get_status
318 get_status
319 get_consumable
320 get_clean_summary
321 get_dnd_timer
322 get_timer
323 get_sound_volume
324 get_carpet_mode
325 get_fw_features
327 get_status
328 wifi_stats
329 device_info
330 get_serial_number
331 get_timezone
332 get_consumable
333 get_clean_summary
334 get_dnd_timer
335 get_timer
336 get_sound_volume
337 get_carpet_mode
338 get_fw_features
339 app_get_locale
341 get_status
355 get_status
356 get_status
357 get_status
358 get_status
359 get_status
360 get_status
388 get_status
391 get_status
513 get_consumable
514 get_clean_summary
515 get_dnd_timer
516 get_timer
517 get_sound_volume
518 get_carpet_mode
519 get_fw_features
520 app_get_locale
733 get_status
734 get_status
735 get_status
736 get_status
737 get_status
739 set_custom_mode
762 get_status
763 wifi_stats
764 device_info
765 get_serial_number
766 get_timezone
767 get_consumable
768 get_clean_summary
769 get_dnd_timer
770 get_timer
771 get_sound_volume
772 get_carpet_mode
773 get_fw_features
774 app_get_locale
775 get_status
84 app_goto_target
85 app_goto_target
86 app_goto_target
87 app_goto_target
88 app_goto_target
89 app_goto_target
90 app_goto_target
zones:
Kehrecke [27000,21600,27400,21000,1]
Tabak [29200,20600,29800,19800,1]
Attributes:
alias Roborock S50
comment 16 - kueche 17 flur
token https://www.kapiba.ru/2017/11/mi-home.html
room Staubsauger
stateFormat state
subType VacuumCleaner
webCmd stop:charge:cleaning_mode
widgetOverride zone_names:textFieldNL-long
zone_names Kehrecke:[27000,21600,27400,21000,1] Tabak:[29200,20600,29800,19800,1]
set vacuum ?
Unknown argument ?, choose one of reconnect wifi_setup start stop pause spot charge locate dnd_enabled dnd_start dnd_end move remotecontrol reset_consumable timezone volume volume_test carpet_mode sleep wakeup cleaning_mode zone href='/fhem?detail=Tabak'>Tabak resume goto save_map start_edit_map end_edit_map reset_map use_new_map use_old_map get_persist_map get_fresh_map lab_status timer
Zitat von: Der_Tom am 22 Mai 2020, 07:14:18
info:
in aktueller svn version des moduls ist die set auswahl clean_segment ( zumindest bei mir ) nicht mehr vorhanden.
Auch bei allen anderen nicht - Typo :P
Ist morgen wieder ok!
device_fw_features 102,103,104,105,111,112,113,114,115,116,117,118,119,122,123,125Hat eigentlich schonmal irgendwer wo eine Erklärung für diese Zahlen gefunden?
Dann müsste sowas nicht mehr über die Modellnummern laufen.
Hallo Markus,
anbei die Daten mit der speziellen Version für die Lampe.
Wie du siehst kommt eigentlich immer der gleiche LOG Eintrag.
Bis irgendwann der "Fehler" auftritt. Und dann geht es weiter...
Kannst du dir das erklären? Soll ich noch etwas anderes loggen?
2020.05.23 13:51:47.950 2: SZ_Leselampe: Message type for ID 2102 is lamp_data >
2020.05.23 13:51:48.007 2: SZ_Leselampe: Message type for ID 2102 is lamp_data <
2020.05.23 13:56:47.953 2: SZ_Leselampe: Message type for ID 2103 is lamp_data >
2020.05.23 13:56:48.056 2: SZ_Leselampe: Message type for ID 2103 is lamp_data <
2020.05.23 14:01:47.956 2: SZ_Leselampe: Message type for ID 2104 is lamp_data >
2020.05.23 14:01:48.066 2: SZ_Leselampe: Message type for ID 2104 is lamp_data <
2020.05.23 14:06:47.958 2: SZ_Leselampe: Message type for ID 2105 is lamp_data >
2020.05.23 14:06:48.065 2: SZ_Leselampe: Message type for ID 2105 is lamp_data <
2020.05.23 14:11:47.961 2: SZ_Leselampe: Message type for ID 2106 is lamp_data >
2020.05.23 14:11:48.066 2: SZ_Leselampe: Message type for ID 2106 is lamp_data <
2020.05.23 14:16:47.963 2: SZ_Leselampe: Message type for ID 2107 is lamp_data >
2020.05.23 14:16:48.067 2: SZ_Leselampe: Message type for ID 2107 is lamp_data <
2020.05.23 14:21:47.965 2: SZ_Leselampe: Message type for ID 2108 is lamp_data >
2020.05.23 14:21:48.054 2: SZ_Leselampe: Message type for ID 2108 is lamp_data <
2020.05.23 14:25:10.349 2: SZ_Leselampe: Message type for ID 2109 is lamp_data >
2020.05.23 14:25:10.457 2: SZ_Leselampe: Message type for ID 2109 is lamp_data <
2020.05.23 14:26:47.967 2: SZ_Leselampe: Message type for ID 2110 is lamp_data >
2020.05.23 14:26:48.073 2: SZ_Leselampe: Message type for ID 2110 is lamp_data <
2020.05.23 14:31:47.969 2: SZ_Leselampe: Message type for ID 2111 is lamp_data >
2020.05.23 14:31:48.075 2: SZ_Leselampe: Message type for ID 2111 is lamp_data <
2020.05.23 14:31:48.147 2: SZ_Leselampe: Message type for ID 2111 not found
2020.05.23 14:31:48.148 3: SZ_Leselampe: $VAR1 = {
'result' => [
'off',
'2',
'',
'',
'',
'2919',
'2',
'0',
'0',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'0',
'0',
'',
'0'
],
'id' => 2111
};
2020.05.23 14:36:47.971 2: SZ_Leselampe: Message type for ID 2112 is lamp_data >
2020.05.23 14:36:48.063 2: SZ_Leselampe: Message type for ID 2112 is lamp_data <
2020.05.23 14:41:47.973 2: SZ_Leselampe: Message type for ID 2113 is lamp_data >
2020.05.23 14:41:48.081 2: SZ_Leselampe: Message type for ID 2113 is lamp_data <
2020.05.23 14:46:47.975 2: SZ_Leselampe: Message type for ID 2114 is lamp_data >
2020.05.23 14:46:48.031 2: SZ_Leselampe: Message type for ID 2114 is lamp_data <
2020.05.23 14:51:48.076 2: SZ_Leselampe: Message type for ID 2115 is lamp_data >
2020.05.23 14:51:48.136 2: SZ_Leselampe: Message type for ID 2115 is lamp_data <
2020.05.23 14:56:48.078 2: SZ_Leselampe: Message type for ID 2116 is lamp_data >
2020.05.23 14:56:48.189 2: SZ_Leselampe: Message type for ID 2116 is lamp_data <
2020.05.23 15:01:48.080 2: SZ_Leselampe: Message type for ID 2117 is lamp_data >
2020.05.23 15:01:48.188 2: SZ_Leselampe: Message type for ID 2117 is lamp_data <
2020.05.23 15:01:48.273 2: SZ_Leselampe: Message type for ID 2117 not found
2020.05.23 15:01:48.273 3: SZ_Leselampe: $VAR1 = {
'result' => [
'off',
'2',
'',
'',
'',
'2919',
'2',
'0',
'0',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'0',
'0',
'',
'0'
],
'id' => 2117
};
2020.05.23 15:06:48.082 2: SZ_Leselampe: Message type for ID 2118 is lamp_data >
2020.05.23 15:06:48.190 2: SZ_Leselampe: Message type for ID 2118 is lamp_data <
2020.05.23 15:11:48.084 2: SZ_Leselampe: Message type for ID 2119 is lamp_data >
2020.05.23 15:11:48.191 2: SZ_Leselampe: Message type for ID 2119 is lamp_data <
2020.05.23 15:16:48.086 2: SZ_Leselampe: Message type for ID 2120 is lamp_data >
2020.05.23 15:16:48.192 2: SZ_Leselampe: Message type for ID 2120 is lamp_data <
2020.05.23 15:21:48.087 2: SZ_Leselampe: Message type for ID 2121 is lamp_data >
2020.05.23 15:21:48.179 2: SZ_Leselampe: Message type for ID 2121 is lamp_data <
2020.05.23 15:25:10.351 2: SZ_Leselampe: Message type for ID 2122 is lamp_data >
2020.05.23 15:25:10.456 2: SZ_Leselampe: Message type for ID 2122 is lamp_data <
2020.05.23 15:26:48.808 2: SZ_Leselampe: Message type for ID 2123 is lamp_data >
2020.05.23 15:26:49.021 2: SZ_Leselampe: Message type for ID 2123 is lamp_data <
2020.05.23 15:31:48.810 2: SZ_Leselampe: Message type for ID 2124 is lamp_data >
2020.05.23 15:31:48.921 2: SZ_Leselampe: Message type for ID 2124 is lamp_data <
2020.05.23 15:31:49.005 2: SZ_Leselampe: Message type for ID 2124 not found
2020.05.23 15:31:49.005 3: SZ_Leselampe: $VAR1 = {
'result' => [
'off',
'2',
'',
'',
'',
'2919',
'2',
'0',
'0',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'0',
'0',
'',
'0'
],
'id' => 2124
};
2020.05.23 15:36:48.812 2: SZ_Leselampe: Message type for ID 2125 is lamp_data >
2020.05.23 15:36:48.911 2: SZ_Leselampe: Message type for ID 2125 is lamp_data <
2020.05.23 15:41:48.813 2: SZ_Leselampe: Message type for ID 2126 is lamp_data >
2020.05.23 15:41:48.910 2: SZ_Leselampe: Message type for ID 2126 is lamp_data <
2020.05.23 15:46:48.816 2: SZ_Leselampe: Message type for ID 2127 is lamp_data >
2020.05.23 15:46:48.917 2: SZ_Leselampe: Message type for ID 2127 is lamp_data <
Zitat von: ucm73 am 23 Mai 2020, 17:51:24
Hallo Markus,
anbei die Daten mit der speziellen Version für die Lampe.
Wie du siehst kommt eigentlich immer der gleiche LOG Eintrag.
Bis irgendwann der "Fehler" auftritt. Und dann geht es weiter...
Kannst du dir das erklären? Soll ich noch etwas anderes loggen?
Du kannst wieder die normale Version einspielen.Es scheint daran zu liegen, dass manchmal die Antwort der Lampe aus irgendwelchen Gründen 2x ankommt.
Sehr seltsam das Ganze.
Ich versuch mir was zu überlegen.Bitte den Anhang testen, sollte das Problem beheben
Was kann die neue Firmware eigentlich? Ich bin noch bei 1.3.7_0058 - deshalb wohl auch ohne das Problem.
Hallo Markus,
die neue Version zeigt bzgl. der Lampe jetzt ein leeres Log, Problem gelöst!
Was die neue Firmwareversion besser kann? Ich meine nichts, stand irgendwas von höhere Stabilität drin und ich glaube ein "Kindermodus", kann aber auch sein, dass das nur für die app galt.
Was sollte die Lampe auch außer Helligkeitsintensität und Lichtfarbe können, update hatte ich nur gemacht, weil mich das "!" in der app genervt hat:-)
Gruß
Alexander
Leider ist der Wiki-Eintrag zu dem Staubsaugerrobotern total veraltet, ich würde mir wünschen, dass Ihr mal eine kurze Übersicht zu den Xiaomi-Robotern irgendwohin schreibt.
Ich habe im Wohnzimmer ein neues Parkett und überlege, so ein Teil anzuschaffen.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 25 Mai 2020, 11:08:58
...ich würde mir wünschen, dass Ihr mal eine kurze Übersicht zu den Xiaomi-Robotern irgendwohin schreibt.
Hallo,
wo hättest du denn gerne das "irgendwohin"!? ;)
Hierher!?
Hmmm, ist evtl. der unpassende Thread...
Es gibt schon 1-2 (oder mehr): "welchen Sauger soll ich nehmen"-Threads...
Da schon mal geschaut, da steht einiges auch bzgl. der Xiaomi drin...
Ansonsten mach einen "irgendwohin"-Thread auf und verlinke von hier...
...dann kann ich bzgl. V1 und V2 schon was schreiben...
Gruß, Joachim
Zitat von: MadMax-FHEM am 25 Mai 2020, 11:22:57
Hallo,
wo hättest du denn gerne das "irgendwohin"!? ;)
Hierher!?
Hmmm, ist evtl. der unpassende Thread...
Es gibt schon 1-2 (oder mehr): "welchen Sauger soll ich nehmen"-Threads...
Da schon mal geschaut, da steht einiges auch bzgl. der Xiaomi drin...
Ansonsten mach einen "irgendwohin"-Thread auf und verlinke von hier...
...dann kann ich bzgl. V1 und V2 schon was schreiben...
Gruß, Joachim
Und ich könnte dann noch ein paar Punkte zu V3 (S5 Max) beitragen...
Kurz, weil mobil....
Ich weiß nicht ob es unbedingt sinnvoll ist, nochmal eine Übersicht über die ganzen Modelle aufzustellen. Da gibt es sicher schon genug Seiten mit Tests etc., auch was das Rooten der Geräte angeht.
Kauf was dir von der Hardware her am besten zusagt.
Vom Modul her: wenn Xiaomi draufsteht wird der Sauger unterstützt und es sind auch die meisten Features implementiert. Falls euch an neuen Sachen irgendwas noch fehlt was aber zum Beispiel in MiIO bereits dokumentiert ist, kann ich das gerne einbauen - testen müsst ihr dann allerdings selbst, weil ich nur einen V1 habe.
Hi Markus,
ich habe nun neben dem V1 auch einen Roborock S5 Max der super mit dem Modul funktioniert, danke dafuer!
Beim S5Max gibt den Raummodus, wo man fuer jeden Raum die Saugleistung hinterlegt. Der Saugroboter meldet dann bei cleaning_mode "auto" als Wert zurueck. Kannst du daher bitte implementieren, dass man cleaning_mode auto auch setzen kann? Danke!
Zitat von: dominik am 25 Mai 2020, 23:20:36
Hi Markus,
ich habe nun neben dem V1 auch einen Roborock S5 Max der super mit dem Modul funktioniert, danke dafuer!
Beim S5Max gibt den Raummodus, wo man fuer jeden Raum die Saugleistung hinterlegt. Der Saugroboter meldet dann bei cleaning_mode "auto" als Wert zurueck. Kannst du daher bitte implementieren, dass man cleaning_mode auto auch setzen kann? Danke!
Dann machen wir aber auch gleich noch set_ und get_water_box_custom_mode um das vollständig zu haben. @Markus: Magst du einen Patch oder geht das so?
Zitat von: KernSani am 26 Mai 2020, 00:46:58
Dann machen wir aber auch gleich noch set_ und get_water_box_custom_mode um das vollständig zu haben.
Dein Model ist doch
roborock.vacuum.s5e, oder?
Dann hast du die letzte Version hier noch nicht ausprobiert, die hatte
water_box_mode schon mit drin ;)
Bitte auch das
auto Setting bei
cleaning_mode mal testen, ob es hiermit schon richtig gelesen und/oder gesetzt wird
Zitat von: Markus M. am 26 Mai 2020, 11:38:40
Dein Model ist doch roborock.vacuum.s5e, oder?
Dann hast du die letzte Version hier noch nicht ausprobiert, die hatte water_box_mode schon mit drin ;)
Bitte auch das auto Setting bei cleaning_mode mal testen, ob es hiermit schon richtig gelesen und/oder gesetzt wird
ups... Tatsache :-) Danke!
Hallo Markus,
habe den Smartmi Standing Fan S2 in Betrieb genommen.
TYPE XiaomiDevice
hardware esp32
mcu_firmware 0011
model zhimi.fan.za4
wifi_firmware cef6c0945
device_firmware 2.0.9
Klappt super, danke! Gibt noch zwei kleine Schönheitsfehler, die z.T. hier schon genannt wurden:
- Der Buzzer lässt sich nicht steuern. Von der Xiaomi Home App aus gesteuert werden hier die Werte "0" für aus/off und "2" für an/on gesetzt.
Von der FHEM-Oberfläche wird ja "on" und "off" gesetzt, das quittiert der Ventilator jeweils mit error: invalidarg.
Ein "set SmartFan buzzer 2" funktioniert jedoch auch nicht. - "get SmartFan wifi_stats" ergibt den Fehler error: methodnotfound
Der Wert wifi_rssi wird dennoch immer nur vom ersten Connect angezeigt.
Der Wert wifi_rssi erhält mit "get SmartFan device_info" ein Update.
Zitat von: Markus M. am 26 Mai 2020, 11:38:40
Dein Model ist doch roborock.vacuum.s5e, oder?
Dann hast du die letzte Version hier noch nicht ausprobiert, die hatte water_box_mode schon mit drin ;)
Bitte auch das auto Setting bei cleaning_mode mal testen, ob es hiermit schon richtig gelesen und/oder gesetzt wird
In Zeile 2949 hast du einen Typo. (watesrbox statt waterbox).
Der Cleaning_Mode setzt nicht nur den cleaning mode, sondern auch fan_power (der Unterschied erschließt sich mir jetzt nicht wirklich), fan_power bekommt dann auch einen der folgenden Werte:
Mode Level
Silent 101
Balanced 102
Turbo 103
Max 104
Gentle 105
Customize (Auto) 106
Grüße,
Oli
Zitat von: KernSani am 26 Mai 2020, 23:12:18
In Zeile 2949 hast du einen Typo. (watesrbox statt waterbox).
Der Cleaning_Mode setzt nicht nur den cleaning mode, sondern auch fan_power (der Unterschied erschließt sich mir jetzt nicht wirklich), fan_power bekommt dann auch einen der folgenden Werte...
command Taste kaputt, da hatte ich wohl gerade gespeichert :-\
fan_power ist eigentlich egal.
Wird der cleaning mode denn nun richtig gesetzt?
Typo verbessert, Fix für zhimi.fan.za4
Hab mir jetzt den Air Purifier 3H eingerichtet und läuft wunderbar. Allerdings wird mir in der App von Mi die Luftqualität "sprechend" angezeigt und in dem Device hab ich nur die blanken Werte. Ich denke mal die Qualität leitet sich einfach über den Wert der 2.5pm ab. Hat da einer Erfahrung welche Grenzwerte für die App zu welchen Luft-Qualitäten führen? Würde mir das ganze dann gerne als DOIF bauen...
Hi Markus,
kannst du bitte wie für Zonen auch ein Attribut für Räume machen? Z.B. Schlafzimmer:16 Wohnung:16,17, welches dann bei clean_segment ausgewählt werden kann. Das wäre super, dann kann ich das im gassistant auch gleich da rausziehen und es muss niemand ein homebridgeMapping anlegen. Danke!
Zitat von: Markus M. am 27 Mai 2020, 01:03:44
command Taste kaputt, da hatte ich wohl gerade gespeichert :-\
fan_power ist eigentlich egal.
Wird der cleaning mode denn nun richtig gesetzt?
Typo verbessert, Fix für zhimi.fan.za4
Hi Markus,
Der cleaning_mode scheint korrekt gesetzt zu werden, aber beim 5se sollte fan_power (wenn über 100) auch den ,,sprechenden" Wert bekommen.
Kurz, weil mobil....
Zitat von: Markus M. am 27 Mai 2020, 01:03:44
[...]
Fix für zhimi.fan.za4
Danke Markus! Buzzer lässt sich jetzt richtig setzen.
Der RSSI-Wert erhält zwar nach
"get device_info" einen neuen Timestamp, bleibt jedoch konstant (-46) und verändert sich auch bei Umstellen des Ventilators an einen anderen Ort nicht (ähnlich wie ac_power).
In der Xiaomi Home App gibt es noch die Einstellung "Störmeldung bei anormaler(em) Betrieb Ein/Aus". Diese Einstellung konnte ich noch nicht nachvollziehen. Vielleicht wenn es dem ESP32 zu heiss wird oder bei Blockade...
Welche Bedeutung hat der Wert level_on?
Edit: Ah, das ist der Speicher für die letzte level Einstellung!
Zitat von: dominik am 27 Mai 2020, 21:38:08
kannst du bitte wie für Zonen auch ein Attribut für Räume machen? Z.B. Schlafzimmer:16 Wohnung:16,17, welches dann bei clean_segment ausgewählt werden kann.
Hab das nochmal geändert auf
segment, funktioniert mit dem Attribut
segment_names analog zu den Zonen und Punkten
Zitat von: KernSani am 27 Mai 2020, 21:41:59Der cleaning_mode scheint korrekt gesetzt zu werden, aber beim 5se sollte fan_power (wenn über 100) auch den ,,sprechenden" Wert bekommen
Top. Im Sauger selbst gibt es nur fan_power - die Werte sind leider je Modell leicht unterschiedlich und cleaning_mode ist schon die sprechende Umsetzung.
Vielleicht nehm ich das Reading einfach raus.
Zitat von: thymjan am 27 Mai 2020, 23:31:17
Der RSSI-Wert erhält zwar nach "get device_info" einen neuen Timestamp, bleibt jedoch konstant (-46) und verändert sich auch bei Umstellen des Ventilators an einen anderen Ort nicht (ähnlich wie ac_power).
In der Xiaomi Home App gibt es noch die Einstellung "Störmeldung bei anormaler(em) Betrieb Ein/Aus"
RSSI liegt nicht am Modul und die Einstellung ist meines Wissens nur etwas App-internes ohne Auswirkung auf das Gerät.
Moin moin zusammen,
mit Hilfe dieses Forums meinen S5 Max schon brav in FHEM eingebunden, allerdings hänge ich jetzt gerade an der Raumzuordnung....
Hat jemand ne Idee wie wir die Room IDs auslesen können damit die clean_segment Befehle einfacher funktionieren :)
Mit dieser Hilfe ist es fast Hausfrauen-Kompatibel und der WAF geht schön nach oben...
allerdings erkennt er nicht alle Räume....
Für jede Hilfestellung bin ich dankbar :)
Lieben Gruß
Björn
Zitat von: Bengt79 am 28 Mai 2020, 14:34:52
Hat jemand ne Idee wie wir die Room IDs auslesen können damit die clean_segment Befehle einfacher funktionieren :)
Mit dieser Hilfe ist es fast Hausfrauen-Kompatibel und der WAF geht schön nach oben...
allerdings erkennt er nicht alle Räume....
Ändert sich eh nochmal auf
segmentEs gibt wohl ein paar Befehle rund um das was du brauchst, sobald ich was zum Testen habe sag ich Bescheid.
Zitat von: Bengt79 am 28 Mai 2020, 14:34:52
Moin moin zusammen,
mit Hilfe dieses Forums meinen S5 Max schon brav in FHEM eingebunden, allerdings hänge ich jetzt gerade an der Raumzuordnung....
Hat jemand ne Idee wie wir die Room IDs auslesen können damit die clean_segment Befehle einfacher funktionieren :)
Mit dieser Hilfe ist es fast Hausfrauen-Kompatibel und der WAF geht schön nach oben...
allerdings erkennt er nicht alle Räume....
Für jede Hilfestellung bin ich dankbar :)
Lieben Gruß
Björn
Die RoomIds fangen bei 16 an und werden dann hochgezählt. Schick einfach den S5 per FHEM zur 16 los, schau in der App wo er hinfährt, schick ihn zur 17 usw...
Kurz, weil mobil....
Jupp 16-21 funktionieren auch, allerdings sind mehr Räume eingerichtet, da 2 Etagen. 3 Räume EG 16-18, 4 von 7 Räumen oben auch per 19-22, nur der Rest fehlt :)
Aber erstmal danke für die Infos, sobald was zum testen da ist, bin ich dabei :)
LG
Björn
Zitat von: Bengt79 am 28 Mai 2020, 15:32:14
Jupp 16-21 funktionieren auch, allerdings sind mehr Räume eingerichtet, da 2 Etagen. 3 Räume EG 16-18, 4 von 7 Räumen oben auch per 19-22, nur der Rest fehlt :)
Aber erstmal danke für die Infos, sobald was zum testen da ist, bin ich dabei :)
LG
Björn
Die IDs werden dummerweise pro Stockwerk (bzw. pro Karte) neu vergeben, d.h. im OG fängt es vermutlich auch wieder bei 16 an.
Ich habe hier eine Xiaomi Mi Home Security Camera 360° 1080p Kamera (Modell MJSXJ05CM / chuangmi.camera.ipc019).
Über python-miio (https://pypi.org/project/python-miio/) kann ich die Kamera ansprechen und steuern.
Die möglichen MiIO-Protokoll Requests müssten hier ersichtlich sein: https://github.com/rytilahti/python-miio/blob/master/miio/chuangmi_camera.py
Besteht damit die Möglichkeit die Kamera auch durch das XiaomiDevice Modul zu unterstützen? Stelle mich natürlich als Beta-Tester gerne zur Verfügung...
Zitat von: KernSani am 28 Mai 2020, 16:05:48
Die IDs werden dummerweise pro Stockwerk (bzw. pro Karte) neu vergeben, d.h. im OG fängt es vermutlich auch wieder bei 16 an.
Du hast absolut recht, wieso bin ich da nicht drauf gekommen..... :)
Ok, dann muss ich jetzt mal schauen wie ich das eventMap sauber hinbekomme wenn die IDs doppelt sind....
Aber erstmal vielen DANK !!! für den Wink mit dem Zaunpfahl :)
LG
Björn
Zitat von: Bengt79 am 28 Mai 2020, 16:52:44
Du hast absolut recht, wieso bin ich da nicht drauf gekommen..... :)
Ok, dann muss ich jetzt mal schauen wie ich das eventMap sauber hinbekomme wenn die IDs doppelt sind....
Aber erstmal vielen DANK !!! für den Wink mit dem Zaunpfahl :)
LG
Björn
Markus hat segment_names eingebaut, damit sollte es gehen (ich habe es selbst noch nicht probiert).
Mit würde ja reichen wenn ich per ID den Raum anfahren kann..... Problem ist wie wechsel ich hab per FHEM die Karten? In der App wechseln und dann per ID los legen klappt.
Ich trau mich nur nicht an die Map Funktionen des Moduls.... Nicht das es mir meine Mühsam genauen Zimmer zerschießt.... Dann wäre der WAF wieder bei 0 :-D
LG
Bitte mal mit dem S5Max o.ä. ein get testdata und dann das Log posten
Zitat von: Markus M. am 28 Mai 2020, 21:38:20
Bitte mal mit dem S5Max o.ä. ein get testdata und dann das Log posten
Nicht sehr erhellend...
2020.05.29 00:10:13 0: EG_Abst_vacuum: request for id 6245, contains get_room_mapping
2020.05.29 00:10:13 0: EG_Abst_vacuum: request for id 6246, contains get_recover_map
2020.05.29 00:10:13 0: EG_Abst_vacuum: request for id 6247, contains get_recover_maps
2020.05.29 00:10:13 0: EG_Abst_vacuum: request for id 6248, contains get_segment_status
2020.05.29 00:10:13 0: EG_Abst_vacuum: request for id 6249, contains get_segment_status 17
2020.05.29 00:10:13 0: EG_Abst_vacuum: request for id 6250, contains app_get_init_status
2020.05.29 00:10:13 0: EG_Abst_vacuum: result for id 6245, return is
$VAR1 = {
'result' => [
[
16,
'749001010932'
],
[
17,
'749001010925'
],
[
18,
'749001010926'
],
[
19,
'749001010927'
],
[
20,
'749001010922'
],
[
21,
'749001010956'
],
[
22,
'749001010928'
]
],
'id' => 6245
};
2020.05.29 00:10:13 0: EG_Abst_vacuum: result for id 6246, return is
$VAR1 = {
'id' => 6246,
'result' => 'unknown_method'
};
2020.05.29 00:10:13 0: EG_Abst_vacuum: result for id 6247, return is
$VAR1 = {
'id' => 6247,
'result' => 'unknown_method'
};
2020.05.29 00:10:13 0: EG_Abst_vacuum: result for id 6248, return is
$VAR1 = {
'result' => [
1
],
'id' => 6248
};
2020.05.29 00:10:13 0: EG_Abst_vacuum: result for id 6249, return is
$VAR1 = {
'id' => 6249,
'result' => [
1
]
};
2020.05.29 00:10:13 0: EG_Abst_vacuum: result for id 6250, return is
$VAR1 = {
'result' => [
{
'status_info' => {
'in_returning' => 0,
'is_locating' => 0,
'lab_status' => 3,
'water_box_carriage_status' => 0,
'clean_area' => 4040000,
'mop_forbidden_enable' => 0,
'map_status' => 3,
'water_box_mode' => 202,
'battery' => 100,
'in_cleaning' => 0,
'lock_status' => 0,
'error_code' => 0,
'in_fresh_state' => 1,
'state' => 8,
'clean_time' => 117,
'water_box_status' => 0
},
'feature_info' => [
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
122,
123,
124,
125
],
'local_info' => {
'name' => 'custom_A.03.0070_CE',
'location' => 'de',
'bom' => 'A.03.0070',
'wifiplan' => '',
'logserver' => 'awsde0.fds.api.xiaomi.com',
'timezone' => 'Europe/Berlin',
'featureset' => 1,
'language' => 'en'
},
'new_feature_info' => 7
}
],
'id' => 6250
};
und hier meine Logs.... hab direkt mal 2 gemacht, 1. aus dem EG nachdem Olaf2 gestern nacht noch brav gemoppt hat, 2. aus dem OG nach Wechsel der Karte ohne Tätigkeit seinerseits ( wollte mir anschauen was an den Daten zur Map wechselt... :) )
btw, @KernSani wie bekommst du die ordentliche Formatierung hin ? Sprache per Notepad++ ?
übrigens finde ich die Infos schon gut, die hast die Raum IDs pro Etage deutlich sichtbar, nicht im Wortlaut aber immerhin nicht mehr blind Nummern durchtesten.
EG
get testdata
2020.05.29 08:02:54 0 : Olaf_2: request for id 857, contains get_room_mapping
2020.05.29 08:02:54 0 : Olaf_2: request for id 858, contains get_recover_map
2020.05.29 08:02:54 0 : Olaf_2: request for id 859, contains get_recover_maps
2020.05.29 08:02:54 0 : Olaf_2: request for id 860, contains get_segment_status
2020.05.29 08:02:54 0 : Olaf_2: request for id 861, contains get_segment_status 17
2020.05.29 08:02:54 0 : Olaf_2: request for id 862, contains app_get_init_status
2020.05.29 08:02:54 0 : Olaf_2: result for id 857, return is $VAR1 = { 'id' => 857, 'result' => [ [ 16, '684001011321' ], [ 17, '684001011343' ], [ 18, '684001011344' ] ] };
2020.05.29 08:02:54 0 : Olaf_2: result for id 858, return is $VAR1 = { 'id' => 858, 'result' => 'unknown_method' };
2020.05.29 08:02:54 0 : Olaf_2: result for id 859, return is $VAR1 = { 'result' => 'unknown_method', 'id' => 859 };
2020.05.29 08:02:54 0 : Olaf_2: result for id 860, return is $VAR1 = { 'id' => 860, 'result' => [ 1 ] };
2020.05.29 08:02:54 0 : Olaf_2: result for id 861, return is $VAR1 = { 'result' => [ 1 ], 'id' => 861 };
2020.05.29 08:02:54 0 : Olaf_2: result for id 862, return is $VAR1 = { 'id' => 862, 'result' => [ { 'feature_info' => [ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125 ], 'local_info' => { 'featureset' => 1, 'location' => 'de', 'wifiplan' => '', 'language' => 'en', 'bom' => 'A.03.0070', 'logserver' => 'awsde0.fds.api.xiaomi.com', 'name' => 'custom_A.03.0070_CE', 'timezone' => 'Europe/Berlin' }, 'status_info' => { 'state' => 8, 'clean_time' => 2239, 'in_fresh_state' => 1, 'in_cleaning' => 0, 'lock_status' => 0, 'water_box_mode' => 204, 'clean_area' => 49247500, 'battery' => 100, 'water_box_status' => 0, 'lab_status' => 3, 'mop_forbidden_enable' => 0, 'error_code' => 0, 'map_status' => 3, 'is_locating' => 0, 'in_returning' => 0, 'water_box_carriage_status' => 0 }, 'new_feature_info' => 7 } ] };
OG
get testdata
2020.05.29 08:06:02 0 : Olaf_2: request for id 863, contains get_room_mapping
2020.05.29 08:06:02 0 : Olaf_2: request for id 864, contains get_recover_map
2020.05.29 08:06:02 0 : Olaf_2: request for id 865, contains get_recover_maps
2020.05.29 08:06:02 0 : Olaf_2: request for id 866, contains get_segment_status
2020.05.29 08:06:02 0 : Olaf_2: request for id 867, contains get_segment_status 17
2020.05.29 08:06:02 0 : Olaf_2: request for id 868, contains app_get_init_status
2020.05.29 08:06:03 0 : Olaf_2: result for id 863, return is $VAR1 = { 'id' => 863, 'result' => [ [ 16, '684001011398' ], [ 17, '684001011402' ], [ 18, '684001011401' ], [ 19, '684001011395' ], [ 20, '684001011397' ], [ 21, '684001011400' ], [ 22, '684001011403' ] ] };
2020.05.29 08:06:03 0 : Olaf_2: result for id 864, return is $VAR1 = { 'id' => 864, 'result' => 'unknown_method' };
2020.05.29 08:06:03 0 : Olaf_2: result for id 865, return is $VAR1 = { 'id' => 865, 'result' => 'unknown_method' };
2020.05.29 08:06:03 0 : Olaf_2: result for id 866, return is $VAR1 = { 'id' => 866, 'result' => [ 1 ] };
2020.05.29 08:06:03 0 : Olaf_2: result for id 867, return is $VAR1 = { 'result' => [ 1 ], 'id' => 867 };
2020.05.29 08:06:03 0 : Olaf_2: result for id 868, return is $VAR1 = { 'id' => 868, 'result' => [ { 'new_feature_info' => 7, 'status_info' => { 'in_fresh_state' => 1, 'in_cleaning' => 0, 'clean_time' => 2239, 'water_box_mode' => 204, 'lock_status' => 0, 'state' => 8, 'clean_area' => 49247500, 'battery' => 100, 'mop_forbidden_enable' => 0, 'error_code' => 0, 'lab_status' => 3, 'water_box_status' => 0, 'water_box_carriage_status' => 0, 'is_locating' => 0, 'in_returning' => 0, 'map_status' => 7 }, 'local_info' => { 'timezone' => 'Europe/Berlin', 'name' => 'custom_A.03.0070_CE', 'logserver' => 'awsde0.fds.api.xiaomi.com', 'bom' => 'A.03.0070', 'featureset' => 1, 'wifiplan' => '', 'location' => 'de', 'language' => 'en' }, 'feature_info' => [ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125 ] } ] };
Du hast quasi die Maps umgeschaltet auf dem gleichen Sauger?
Dann brauchen wir ja eigentlich nur noch irgendwoher diesen Befehl.
Raum IDs fangen also immer bei 16 an, Namen gibt es zumindest bei diesen Befehlen nicht. Hmm...
Ich suche mal weiter.
Genau EG scheint map_status 3 zu sein, OG map_status 7.
Zumindest würde ich die Infos so interpretieren....
Thx for your work on this
;-)
Björn
Traut sich wer einen Versuch, den name_segment Befehl auszuprobieren?
Keine Ahnung ob der schreibt oder nur liest.
Versuch mach kluch ;D
set VACUUMNAME json {"id":1234,"method":"name_segment","params":[17,"test123"]}
Und danach ein Check mit
set VACUUMNAME json {"id":1235,"method":"get_room_mapping","params":[""]}
Oder wenn der erste Befehl nen Fehler ergibt:
set VACUUMNAME json {"id":1236,"method":"name_segment","params":[17]}
Zitat von: Markus M. am 29 Mai 2020, 18:50:52
Traut sich wer einen Versuch, den name_segment Befehl auszuprobieren?
Keine Ahnung ob der schreibt oder nur liest.
Versuch mach kluch ;D
set VACUUMNAME json {"id":1234,"method":"name_segment","params":[17,"test123"]}
Und danach ein Check mit
set VACUUMNAME json {"id":1235,"method":"get_room_mapping","params":[""]}
Oder wenn der erste Befehl nen Fehler ergibt:
set VACUUMNAME json {"id":1236,"method":"name_segment","params":[17]}
Hi Markus,
ich nehme an, er schreibt... aber scheinbar nichts sinnvolles:
020.05.29 23:11:17 0: EG_Abst_vacuum: sending raw json request
{"id":1234,"method":"name_segment","params":[17,"test123"]}
2020.05.29 23:12:02 3: EG_Abst_vacuum: connection timeout
2020.05.29 23:13:52 0: EG_Abst_vacuum: sending raw json request
{"id":1235,"method":"get_room_mapping","params":[""]}
2020.05.29 23:13:52 0: EG_Abst_vacuum: result for json request w/ id 1235, return is
$VAR1 = {
'id' => 1235,
'result' => [
[
16,
'749001010932'
],
[
17,
'749001010925'
],
[
18,
'749001010926'
],
[
19,
'749001010927'
],
[
20,
'749001010922'
],
[
21,
'749001010956'
],
[
22,
'749001010928'
]
]
};
2020.05.29 23:14:38 0: EG_Abst_vacuum: sending raw json request
{"id":1234,"method":"name_segment","params":[17,"test123"]}
2020.05.29 23:15:02 3: EG_Abst_vacuum: disconnecting
2020.05.29 23:15:02 2: EG_Abst_vacuum: connecting
2020.05.29 23:15:02 3: EG_Abst_vacuum: initialized
2020.05.29 23:15:28 0: EG_Abst_vacuum: sending raw json request
{"id":1234,"method":"name_segment","params":[17]}
2020.05.29 23:16:13 3: EG_Abst_vacuum: connection timeout
Was aber auffällig ist, nach dem ersten "name_segment" zerschiesst es mir die Map Darstellung in der App, da ist dann erstmal nur ein rechteckiger Bereich (+ Barrieren etc...) zu sehen. Wenn ich dann auf Karte 2 und wieder zurück wechsle ist alles ok.
Ich vermute name_segment braucht vorher ein start_edit_map oder sowas und am Ende ein save. Ich habe auch noch mit get_segment_status rumgespielt. Da bekomme ich immer eine "1" als Antwort.
Ich habe mir map_status auch nochmal angesehen und kann bestätigen: 3 = Karte 1, 7 = Karte 2, 11 = Karte 3 (würde mal annehmen, die 15 ist Karte 4, ich habe aber aktuell nur 3 Karten). Das wäre wertvoll in den Readings.
Ich spiele noch ein bisschen, das geht ja mit dem set json jetzt sehr einfach und melde mich, falls ich was rausfinde.
Grüße,
Oli
Zitat von: KernSani am 29 Mai 2020, 23:42:32
Ich spiele noch ein bisschen, das geht ja mit dem set json jetzt sehr einfach und melde mich, falls ich was rausfinde.
Hab wieder was für dich :)
set EG_Abst_vacuum json {"id":1111,"method":"get_recover_maps","params":[]}
Sollte 3, 7 und 11 ausgeben - deine Maps
set EG_Abst_vacuum json {"id":1112,"method":"get_recover_maps","params":[3]}
Sollte dann auf eine dieser Maps umschalten
set EG_Abst_vacuum json {"id":1113,"method":"name_segment","params":[{"miRoomId": "Test17", "robotRoomId": 17},{"miRoomId": "Test18", "robotRoomId": 18}]}
Sollte irgendwas umbenennen, evtl. brauchst du dabei aber alle Räume auf einmal in den Parametern
Anschliessender Check mal wieder mit:
set EG_Abst_vacuum json {"id":1234,"method":"get_room_mapping","params":[""]}
Zitat von: Markus M. am 30 Mai 2020, 19:25:28
Hab wieder was für dich :)
set EG_Abst_vacuum json {"id":1111,"method":"get_recover_maps","params":[]}
Sollte 3, 7 und 11 ausgeben - deine Maps
Leider nein... ich glaube das hatte ich auch schon probiert (get_recover_map das selbe)
2020.05.30 22:50:09 0: EG_Abst_vacuum: result for json request w/ id 1111, return is
$VAR1 = {
'id' => 1111,
'result' => 'unknown_method'
};
Zitat
set EG_Abst_vacuum json {"id":1112,"method":"get_recover_maps","params":[3]}
Sollte dann auf eine dieser Maps umschalten
demzufolge auch nicht :-( "recover_map" kennt er auch nicht...
Zitat
set EG_Abst_vacuum json {"id":1113,"method":"name_segment","params":[{"miRoomId": "Test17", "robotRoomId": 17},{"miRoomId": "Test18", "robotRoomId": 18}]}
Sollte irgendwas umbenennen, evtl. brauchst du dabei aber alle Räume auf einmal in den Parametern
Anschliessender Check mal wieder mit:
set EG_Abst_vacuum json {"id":1234,"method":"get_room_mapping","params":[""]}
Leider auch nichts ... Die existierenden Namen werden dabei gelöscht, aber keine neuen gesetzt. Ich habe das auch für eine Karte probiert in der ich nur einen Raum habe...
==> Halte ich auch nicht für wichtig, schöner wäre es das korrekte Setzen der Karte hinzubekommen, ich komme da aber auch nicht wirklich weiter...
Da bei mir der Token nicht mehr über die bekannten Wege (unter anderem den in Post #1)auszulesen war hier meine Vorgehensweise, vielleicht gibts das aber schon in diesem Forum - die Suche sagte jedoch nein (oder ich war zu doof).
Sorry Markus wenn ich dir damit den Thread vollspamme - vielleicht kannst du das in Post 1 aufnehmen?
Problem:Kein Token im Backup ab Firmware 3.5.4_004007 - alte Mi home App 5.0.19 verbindet sich nicht mehr mit dem Vakuum aufgrund dieser Firmare.
Ja natürlich, man kann mittels Flolevac ein downgrade machen, den Token ,wie im ersten Post beschrieben ist, auslesen und kommt so vermutlich auch ans Ziel. Es geht aber schneller und einfacher. Und ohne Root.
Lösung: Kurz: Gehackte mi Home App von Vevs
Lang:
Über Reddit bin ich darauf gestoßen, dass wohl auch andere dieses Problem haben, aber es sich recht einfach lösen lässt. Leider finde ich das nicht mehr, aber im Roboterforum gibts einen langen Thread darüber
Viele Webseiten zu dem Thema verweisen auf einen link unter
*cloud.mail.ru/public/....
Dieser Link funktioniert jedoch nicht mehr, oder nicht immer, da dieser meist nur auf eine bestimmte Version der App verweist - neue Version -> Link obsolete. Es gibt aber eine Webseite zu der App, welche eine funktionierende Version anbietet (die zugegeben) recht schwer (für mich) zu finden war: (link am ende -
erst lesen dann machen..)
- richte den Vakuum soweit möglich mit der Version ein du gerade hast
- Paranoia mode on: Ich empfehle das Mi account Passwort jetzt (für die nachfolgenden Schritte) zu ändern.
- Dann scrollt man auf dieser Seite recht weit nach unten, bis man linker Hand folgendes als link sieht "СКАЧАТЬ ВЕРСИЮ *5.6.xxx" (Siehe Angehängtes Bild.)
- Ein Klick darauf und eine Apk "Mihome_5.6.****_*****_vevs.apk" wird zum download angeboten
- Jetzt die alte mi Home app deinstallieren, die neue aufs Handy kopieren und installieren
- Mi home app wie gewohnt einrichten, mit dem neuen Kennwort
- Sobald sich alle Geräte wieder angemeldet haben (und du den Vakkum eingerichtet hast ) steht der Token schon bereit
- Klicke dazu auf Profil -> Teilen -> geteilte Geräte. Jetzt siehst du alle Token, von allen Xiaomi devices. Auch den von deinem Sauger. Diesen gibst du in Fhem ein. Fertig.
Nach Abschluss solltest du die App wieder entfernen und deine Mi Home app wieder installieren. Und dein Kennwort natürlich wieder auf dein altes ändern, sofern du es im ersten schritt geändert hast.
Thema im Roboterforum
https://www.roboter-forum.com/index.php?thread/25148-token-auslesen-mit-mitoolkit-flolevac-russischer-mi-home-usw/&pageNo=7 (https://www.roboter-forum.com/index.php?thread/25148-token-auslesen-mit-mitoolkit-flolevac-russischer-mi-home-usw/&pageNo=7)
Link zur App-webseite
https://www.kapiba.ru/2017/11/mi-home.html (https://www.kapiba.ru/2017/11/mi-home.html)
Bevor ich mir eine russische App auf's Handy knall roote ich lieber...
Wenn die Umgebung mal installiert ist (auf z.B. einem PI: max. 30min), geht das fix...
...ebenso wie das Einspielen anderer FW-Stände (sofern diese "entschlüsselt" werden können, wobei der aktuelle Schlüssel sehr simpel ist ;) )...
...und ohne App rauskramen, Passwörter ändern, zurück ändern, App runterwerfen (und hoffen, dass die inzwischen keine "dummen" Sachen macht ;) )...
Man kann sich so etwas mit dem Sauger "unterhalten".. ;)
Autom. FW-Updates verhindern...
...WLAN ändern/anpassen (wie man will)...
Und sogar den Cloud-Betrieb abstellen... :)
Geht aber leider (aktuell) nur mit V1 und V2 (S50)...
Daher ist bei mir noch kein anderes Modell "eingezogen"...
Aber das ist nur meine Meinung dazu... ;)
Gruß, Joachim
Auf einem Android Device geht das viel leichter, einfach Mi Home 5.4.54 installieren und den Token aus dem Log File entnehmen:
https://github.com/Maxmudjon/com.xiaomi-miio/blob/master/docs/obtain_token.md
Kapitel: Extract token from log file
Die Kapiba.ru Version empfehle ich keinesfalls zu installieren! Ich hatte diese auch mal installiert, nach ca. einem Jahr war auf meinem Chromebook eines Morgens die yandex.ru Money Seite und die kapiba.ru Seite offen und versuchte Geld zu ueberweisen. Wie das ging, ich weiss es nicht, hatte damals alles neu aufgesetzt und alle Passwoerter geaendert.
Zitat von: Andy89 am 21 April 2020, 07:46:42
mache ich - aber meine Motivation, sich darum zu kümmern ist sehr gering. ???
ich habe hier den Patch und das Skript angehängt.
Hi Andy,
musstest du die in ein gleiches VLAN packen, oder nur ins gleiche Netz? Ansonsten könnte man das mit einem 25er Subnetz trennen. z.B. 192.168.11.0/25 und 192.168.11.128/25.
Zitat von: TWART016 am 03 Juni 2020, 00:40:53
Hi Andy,
musstest du die in ein gleiches VLAN packen, oder nur ins gleiche Netz? Ansonsten könnte man das mit einem 25er Subnetz trennen. z.B. 192.168.11.0/25 und 192.168.11.128/25.
das kann ich dir tatsächlich nicht sagen. Ich weiß nicht, ob das gleiche Netz tatsächlich das Problem gelöst hätte. Ein Versuch wäre es Wert 8)
Auf das Ergebnis wäre ich auch gespannt. Habe es bisher auch nur mit unterschiedlichen VLANs getestet. Wobei das ja eigentlich auch der Sinn war, IoT-Geräte in ein eigenes VLAN zu packen... ;)
Gruß Hoppel
Zitat von: hoppel118 am 03 Juni 2020, 13:24:54
Auf das Ergebnis wäre ich auch gespannt. Habe es bisher auch nur mit unterschiedlichen VLANs getestet. Wobei das ja eigentlich auch der Sinn war, IoT-Geräte in ein eigenes VLAN zu packen... ;)
Gruß Hoppel
Das kann man auch, der erste Teil des Subnetz in VLAN10 und der zweite Teil in VLAN11. Dazwischen kann man eine Firewall haben und Traffic blockieren.
Ja klar, aber dann habe ich doch wieder das gleiche Problem, oder? Naja, kannst ja mal berichten, ob das funktioniert. Bin gerade auf Reise und etwas länger nicht am PC.
Viele Grüße Hoppel
Zitat von: hoppel118 am 03 Juni 2020, 22:11:42
Ja klar, aber dann habe ich doch wieder das gleiche Problem, oder? Naja, kannst ja mal berichten, ob das funktioniert. Bin gerade auf Reise und etwas länger nicht am PC.
Viele Grüße Hoppel
Genau das weiß ich noch nicht. Mein Netzwerk ist noch nicht soweit. Werde es dann aber testen.
OT: Hat jemand eine qualifizierte Quelle für einen Ersatz-Akku für den "rockrobo.vacuum.v1"?
Danke
Was ist für dich denn eine unqualifizierte Quelle? Bei Amazon und ebay wirst du jedenfalls fündig.
Grüße
Ich habe noch knapp 70€ letztes Jahr bezahlt, jetzt ist er teurer:
https://www.ep-mediastore-ab.de/advanced_search_result.php?keywords=28770
Danke.
Frage.. Ich bin bei Fhem noch relativ neu, daher blick ich da noch nich so ganz durch... Aber wie kann ich den die Errors die der S50 auswirft loggen? bzw.. Generell nen Log dafür anlegen, weil ich kam gerade nach Hause und habe dann erst in der Mi Home App mitbekommen, das der sich wohl irgendwo aufgehangen hatte während der Reinigung, da die App allerdings unterwegs nicht im Hintergrund arbeiten darf, hab ich das ganze natürlich verpasst.. Von daher würde ich mir solche Fehler gerade ganz gerne per Telegram Bot schicken lassen, damit ich ihn einfach Pausieren kann, wenn sowas ist.
Zitat von: Keichi am 11 Juni 2020, 17:15:59
Frage.. Ich bin bei Fhem noch relativ neu, daher blick ich da noch nich so ganz durch... Aber wie kann ich den die Errors die der S50 auswirft loggen? bzw.. Generell nen Log dafür anlegen, weil ich kam gerade nach Hause und habe dann erst in der Mi Home App mitbekommen, das der sich wohl irgendwo aufgehangen hatte während der Reinigung, da die App allerdings unterwegs nicht im Hintergrund arbeiten darf, hab ich das ganze natürlich verpasst.. Von daher würde ich mir solche Fehler gerade ganz gerne per Telegram Bot schicken lassen, damit ich ihn einfach Pausieren kann, wenn sowas ist.
Das ist zwar nicht speziell Xiaomi bzw. Sauger, sondern fhem.
Daher: einarbeiten in fhem Grundlagen (einfach mal pauschal geschrieben ;) )...
Zum konkreten Problem bzw. ähnliche (dann also wieder fhem generell ;) ):
am einfachsten wenn du auf "etwas" in fhem reagieren willst: herausfinden welcher Event passt
Einfach mal den Eventmonitor öffnen und schauen was da so im System "unterwegs" ist ;)
Wenn du dann "etwas" gefunden hast von dem du willst, dass "etwas" passiert, dann einfach die Zeile markieren und ein notify/DOIF generieren (lassen)...
Das generierte notifyDOIF "reagiert" dann schon mal auf das Event. Jetzt musst du halt noch anpassen was dann passieren soll (z.B. Nachricht per Telegram)...
DOIF ist sehr "mächtig" und (ich finde) etwas "kompliziert" mit den ganzen Attributen usw.
Meine Meinung: es ist eine Mischung aus Device konfigurieren und programmieren.
Notify ist halt relativ "dumm" (dafür aber einfach, mal abgesehen von RegEx aber das gilt auch für DOIF ;) ).
Man kann aber "dahinter" auch "ganz normal" mit Perl alles programmieren was eben bei einem bestimmten Event passieren soll...
...wenn etwas mehr programmiert werden soll/muss, dann kann man das auch in sog. myUtils-Subs "auslagern"...
Was du nimmst ist letztendlich dir überlassen...
...aber egal wie: (fast) alles in fhem basiert auf Events (und Zeit, was aber ja auch irgendwie ein Event ist ;) )...
Gut, für den geschilderten Fall ist es nun zu spät für den EventMonitor ;)
Wenn du mal etwas verstanden hast wie das geht bzw. wie RegEx "geht", dann kannst du auch abgeleitet von "Readings" eines "Devices" notify/DOIF "basteln"...
...weil auch das Aktualisieren von Readings letztendlich auf Events basiert bzw. die Änderung eines Readings eben einen Event erzeugt (meistens ;) )...
D.h. in deinem Fall schauen, ob irgendwo im Device in einem Reading "etwas" steht, was dir den Fehler "anzeigt"...
...wenn ja: notify/DOIF
Wenn etwas im Log steht (aber nicht im Device), dann kann man auch aktivieren, dass Logeinträge ebenfalls Events erzeugen...
Wenn beides nein: Modulauthor fragen, ob das eingebaut werden kann (muss nat. vom Gerät auch geliefert werden)...
Wenn du Dinge Loggen willst geht das genauso, d.h. ein FileLog-Device reagiert ebenfalls auf Events, nur passiert halt nichts, naja gut sie werden geloggt ;)
Abhängig von der RegEx beim LogDevice...
Du siehst: beschäftigen mit fhem Basics und RegEx!
Gruß, Joachim
Für mich war es halt Modul Spezifisch, weil ich zwar über die Mi Home App den Fehler erhalten habe, aber in der fhem.log nix davon aufgetaucht ist, außerdem hatte ich halt kein Attribute gefunden um eine Log anlegen zu lassen, wie es eigentlich bei allen anderen Sachen die ich bisher drauf gemacht hatte, der Fall war. Von daher, dachte ich mir frag ich lieber direkt hier danach.
Aber um noch eine wirklich spezifische Frage zu stellen.. Von 5 Räumen die in der Karte angelegt sind, bekomme ich nur 4 über die IDs, der fängt wie hier geschrieben bei 16 an und hört dann bei 19 auf, danach kommt absolut nichts mehr.. Gibts da irgendeinen Befehl um die Ids auszulesen?
Zitat von: MadMax-FHEM am 11 Juni 2020, 18:08:45
Das ist zwar nicht speziell Xiaomi bzw. Sauger, sondern fhem.
Daher: einarbeiten in fhem Grundlagen (einfach mal pauschal geschrieben ;) )...
Zum konkreten Problem bzw. ähnliche (dann also wieder fhem generell ;) ):
am einfachsten wenn du auf "etwas" in fhem reagieren willst: herausfinden welcher Event passt
Einfach mal den Eventmonitor öffnen und schauen was da so im System "unterwegs" ist ;)
Wenn du dann "etwas" gefunden hast von dem du willst, dass "etwas" passiert, dann einfach die Zeile markieren und ein notify/DOIF generieren (lassen)...
Das generierte notifyDOIF "reagiert" dann schon mal auf das Event. Jetzt musst du halt noch anpassen was dann passieren soll (z.B. Nachricht per Telegram)...
DOIF ist sehr "mächtig" und (ich finde) etwas "kompliziert" mit den ganzen Attributen usw.
Meine Meinung: es ist eine Mischung aus Device konfigurieren und programmieren.
Notify ist halt relativ "dumm" (dafür aber einfach, mal abgesehen von RegEx aber das gilt auch für DOIF ;) ).
Man kann aber "dahinter" auch "ganz normal" mit Perl alles programmieren was eben bei einem bestimmten Event passieren soll...
...wenn etwas mehr programmiert werden soll/muss, dann kann man das auch in sog. myUtils-Subs "auslagern"...
Was du nimmst ist letztendlich dir überlassen...
...aber egal wie: (fast) alles in fhem basiert auf Events (und Zeit, was aber ja auch irgendwie ein Event ist ;) )...
Gut, für den geschilderten Fall ist es nun zu spät für den EventMonitor ;)
Wenn du mal etwas verstanden hast wie das geht bzw. wie RegEx "geht", dann kannst du auch abgeleitet von "Readings" eines "Devices" notify/DOIF "basteln"...
...weil auch das Aktualisieren von Readings letztendlich auf Events basiert bzw. die Änderung eines Readings eben einen Event erzeugt (meistens ;) )...
D.h. in deinem Fall schauen, ob irgendwo im Device in einem Reading "etwas" steht, was dir den Fehler "anzeigt"...
...wenn ja: notify/DOIF
Wenn etwas im Log steht (aber nicht im Device), dann kann man auch aktivieren, dass Logeinträge ebenfalls Events erzeugen...
Wenn beides nein: Modulauthor fragen, ob das eingebaut werden kann (muss nat. vom Gerät auch geliefert werden)...
Wenn du Dinge Loggen willst geht das genauso, d.h. ein FileLog-Device reagiert ebenfalls auf Events, nur passiert halt nichts, naja gut sie werden geloggt ;)
Abhängig von der RegEx beim LogDevice...
Du siehst: beschäftigen mit fhem Basics und RegEx!
Gruß, Joachim
ich hab einen Smartfan 2S und konnte diesen mit Token auch einrichten. Was genau muss man für den 2S als SubType nehmen? Smartfan oder Smartfan 1X? hab jetzt den 1X eingestellt und der scheint soweit zu laufen.. was allerdings noch fehlt ist eine Anzeige der Akku-Ladung. Die konnte ich in der App allerdings bisher auch nicht finden. Hat hier jemand das erfolgreich einrichten können und bekommt den Ladestand angezeigt?
Ich habe SmartFan als subType eingestellt. Den Akkustand ermittelt der leider nicht, hat also nichts mit fhem zu tun.
Danke für die Info.. das mit dem Ladestand hatte ich befürchtet. Obwohl gerade die Info absolut Sinn machen würde. Ich hab übrigens auch SmartFan eingestellt gehabt und nicht den 1X.
Ich bekomms nicht hin. Ich kann keine Zonenreinigung ansteuern.
Roborock V1 mit aktuellster Valetudo Version 0.5.3 - läuft einwandfrei.
Staubsauger angelegt in FHEM - lässt sich steuern und ich bekomme Readings und Karte:
defmod EG_Sauger XiaomiDevice 192.168.178.38 5262543736626f6b5079333976706c30
attr EG_Sauger DbLogExclude .*
attr EG_Sauger event-on-change-reading history_0
attr EG_Sauger room 75_Staugsauger
attr EG_Sauger stateFormat state
attr EG_Sauger subType VacuumCleaner
setstate EG_Sauger Docked
setstate EG_Sauger 2020-06-30 15:09:15 app_bom A.03.0023
setstate EG_Sauger 2020-06-30 15:09:15 app_language prc
setstate EG_Sauger 2020-06-30 15:09:15 app_location prc
setstate EG_Sauger 2020-06-30 15:09:15 app_logserver awsbj0.fds.api.xiaomi.com
setstate EG_Sauger 2020-06-30 15:09:15 app_name A.03.0023_PRC
setstate EG_Sauger 2020-06-30 15:09:15 app_timezone Asia/Shanghai
setstate EG_Sauger 2020-06-30 15:09:02 batteryPercent 100
setstate EG_Sauger 2020-06-30 15:09:02 batteryState ok
setstate EG_Sauger 2020-06-30 15:09:15 carpet_high 500
setstate EG_Sauger 2020-06-30 15:09:15 carpet_integral 450
setstate EG_Sauger 2020-06-30 15:09:15 carpet_low 400
setstate EG_Sauger 2020-06-30 15:09:15 carpet_mode off
setstate EG_Sauger 2020-06-30 15:09:15 carpet_stall_time 10
setstate EG_Sauger 2020-06-30 15:09:02 cleaning_mode balanced
setstate EG_Sauger 2020-06-30 15:09:14 consumables_filter 94
setstate EG_Sauger 2020-06-30 15:09:14 consumables_main_brush 97
setstate EG_Sauger 2020-06-30 15:09:14 consumables_sensors -1175
setstate EG_Sauger 2020-06-30 15:09:14 consumables_side_brush 96
setstate EG_Sauger 2020-04-10 21:13:51 current_sound chinese
setstate EG_Sauger 2020-06-30 14:09:09 device_firmware 3.5.8_004018
setstate EG_Sauger 2020-06-30 15:09:15 device_fw_features 101,102,104,105
setstate EG_Sauger 2020-06-30 14:09:09 device_uptime 16.11
setstate EG_Sauger 2020-06-30 15:09:02 dnd off
setstate EG_Sauger 2020-06-30 15:09:15 dnd_enabled on
setstate EG_Sauger 2020-06-30 15:09:15 dnd_end 08:00
setstate EG_Sauger 2020-06-30 15:09:15 dnd_start 22:00
setstate EG_Sauger 2020-06-30 15:09:15 error none
setstate EG_Sauger 2020-06-30 15:09:02 error_code None
setstate EG_Sauger 2020-06-19 12:35:53 event error10
setstate EG_Sauger 2020-06-30 15:09:02 fan_power 60
setstate EG_Sauger 2020-06-30 15:09:15 history_0 2020-06-30 14:58:07: 0.00m² in 0.00h, finished cleaning
setstate EG_Sauger 2020-06-30 15:09:15 history_1 2020-06-30 14:09:35: 0.00m² in 0.00h, not finished
setstate EG_Sauger 2020-06-30 15:09:15 history_2 2020-06-29 22:06:11: 50.15m² in 1.05h, finished cleaning
setstate EG_Sauger 2020-06-30 15:09:15 history_3 2020-06-29 21:54:13: 0.00m² in 0.00h, not finished
setstate EG_Sauger 2020-06-30 15:09:15 history_4 2020-06-29 20:35:21: 40.04m² in 0.00h, not finished
setstate EG_Sauger 2020-06-30 15:09:15 history_5 2020-06-28 18:21:55: 1.72m² in 0.08h, finished cleaning
setstate EG_Sauger 2020-06-30 15:09:15 history_6 2020-06-28 18:05:29: 0.00m² in 0.00h, not finished
setstate EG_Sauger 2020-06-30 15:09:15 history_7 2020-06-28 17:41:57: 0.00m² in 0.00h, not finished
setstate EG_Sauger 2020-06-30 15:09:15 history_8 2020-06-28 17:41:08: 0.00m² in 0.00h, not finished
setstate EG_Sauger 2020-06-30 15:09:15 history_9 2020-06-28 16:34:04: 0.00m² in 0.00h, not finished
setstate EG_Sauger 2020-06-30 15:09:02 in_cleaning no
setstate EG_Sauger 2020-06-30 15:09:02 last_clean_area 0.00
setstate EG_Sauger 2020-06-30 15:09:02 last_clean_time 0.00
setstate EG_Sauger 2020-06-30 15:09:15 last_timestamp 1593521887
setstate EG_Sauger 2020-06-30 15:09:02 map_present yes
setstate EG_Sauger 2020-06-30 10:51:41 serial_number 1387100869905
setstate EG_Sauger 2020-06-30 15:09:02 state Docked
setstate EG_Sauger 2020-06-30 10:51:41 timezone Asia/Shanghai
setstate EG_Sauger 2020-06-30 15:09:14 total_clean_area 28996.49
setstate EG_Sauger 2020-06-30 15:09:14 total_clean_time 527.02
setstate EG_Sauger 2020-06-30 15:09:14 total_cleans 911
setstate EG_Sauger 2020-06-30 15:09:15 volume 100
setstate EG_Sauger 2020-06-30 10:51:41 wifi_auth_fail_count 0
setstate EG_Sauger 2020-06-30 10:51:41 wifi_conn_fail_count 0
setstate EG_Sauger 2020-06-30 10:51:41 wifi_conn_success_count 1
setstate EG_Sauger 2020-06-30 10:51:41 wifi_dhcp_fail_count 0
setstate EG_Sauger 2020-06-30 14:09:09 wifi_rssi -54
setstate EG_Sauger 2020-06-30 10:51:41 wifi_state online
Im Valetudo sind mehrere Zonen angelegt:
{"spots":[["Mülleimer",25581,20460]],"mqtt":{"enabled":true,"identifier":"rockrobo","topicPrefix":"valetudo","autoconfPrefix":"homeassistant","provideMapData":true,"caPath":"","server":"192.168.178.144","port":"1888","username":"0","usetls":false},"webserver":{"port":80},"dummycloud":{"spoofedIP":"203.0.113.1","bindIP":"127.0.0.1"},"httpAuth":{"enabled":false,"username":"valetudo"},"allowSSHKeyUpload":true,"map_upload_host":"http://127.0.0.1","logLevel":"info","model":{"type":"auto","embedded":true},"debug":{"memoryStatInterval":false},"zones":[[-1,{"id":-1,"name":"Flur","areas":[[26236,23497,28681,29334,1]],"user":true}],[-2,{"id":-2,"name":"Küche","areas":[[23522,18094,28253,22147,1]],"user":true}],[-3,{"id":-3,"name":"Wohnzimmer","areas":[[28070,18597,32475,25313,1]],"user":true}],[-4,{"id":-4,"name":"Arbeitszimmer","areas":[[28648,25834,32148,29334,1]],"user":true}]]}
Aber weder über die ID noch über den Namen kann ich die Zonen/Segmente/Areas ansteuern. Liegt das vielleicht daran, dass mein Robotor den Areas negative IDs vergeben hat?`
Danke & viele Grüße
Thorsten
Moin,
Vorschlag an den Modulentwickler für die Xiaomi Mijia LYWSD03MMC Temperature Humidity sensor: http://www.d0wn.com/using-bash-and-gatttool-to-get-readings-from-xiaomi-mijia-lywsd03mmc-temperature-humidity-sensor/
#!/bin/bash
bt=$(timeout 15 gatttool -b A4:C1:XX:8C:77:CA --char-write-req --handle='0x0038' --value="0100" --listen)
if [ -z "$bt" ]
then
echo "The reading failed"
else
echo "Got data"
echo $bt temphexa=$(echo $bt | awk -F ' ' '{print $12$11}'| tr [:lower:] [:upper:] )
humhexa=$(echo $bt | awk -F ' ' '{print $13}'| tr [:lower:] [:upper:])
temperature100=$(echo "ibase=16; $temphexa" | bc)
humidity=$(echo "ibase=16; $humhexa" | bc)
sendtemp=$(echo "scale=2;$temperature100/100"|bc)
sendhum=$(echo $humidity)
mosquitto_pub -h 127.0.0.1 -t MIYA_SENSOR/A4:C1:XX:60:43:77/temp -m $sendtemp
mosquitto_pub -h 127.0.0.1 -t MIYA_SENSOR/A4:C1:XX:60:43:77/hum -m $sendhum
fi
Zitat von: fhem@supergut am 01 Juli 2020, 11:45:11
Moin,
Vorschlag an den Modulentwickler für die Xiaomi Mijia LYWSD03MMC Temperature Humidity sensor: http://www.d0wn.com/using-bash-and-gatttool-to-get-readings-from-xiaomi-mijia-lywsd03mmc-temperature-humidity-sensor/
#!/bin/bash
bt=$(timeout 15 gatttool -b A4:C1:XX:8C:77:CA --char-write-req --handle='0x0038' --value="0100" --listen)
if [ -z "$bt" ]
then
echo "The reading failed"
else
echo "Got data"
echo $bt temphexa=$(echo $bt | awk -F ' ' '{print $12$11}'| tr [:lower:] [:upper:] )
humhexa=$(echo $bt | awk -F ' ' '{print $13}'| tr [:lower:] [:upper:])
temperature100=$(echo "ibase=16; $temphexa" | bc)
humidity=$(echo "ibase=16; $humhexa" | bc)
sendtemp=$(echo "scale=2;$temperature100/100"|bc)
sendhum=$(echo $humidity)
mosquitto_pub -h 127.0.0.1 -t MIYA_SENSOR/A4:C1:XX:60:43:77/temp -m $sendtemp
mosquitto_pub -h 127.0.0.1 -t MIYA_SENSOR/A4:C1:XX:60:43:77/hum -m $sendhum
fi
Da bist du aber eher beim falschen Modul!?
Wäre es nicht da besser aufgehoben: https://forum.fhem.de/index.php/topic,82572.msg746788.html#msg746788
Oder vielleicht ist es da sogar schon drin...
Gruß, Joachim
Hallo,
wir haben einen Roborock 2 (S5), der regelmäßig große Probleme damit hat, dass wir ihn in zwei Stockwerken einsetzen.
Wenn ich seine Karte vor dem Einsatz im "neuen" Stockwerk lösche, reinigt er deutlich zuverlässiger, da er dann keine irrwitzigen Fantasiekarten erfindet, die er dem zuletzt gereinigten Stockwerk intern "anhängt".
In der Commandref habe ich deshalb gesucht, ob es möglich ist, seine gespeicherte Karte zu löschen.
Leider habe ich jedoch nichts gefunden.
Hat mir evtl. jmd. einen Tipp, wie ich die Saugleistung beim Wechsel in ein anderes Stockwerk verbessern kann, ohne dass ich jedesmal in der App die Karte manuell löschen muss?
Hab auch schon nach alternativer Firmware und eventuellen Flasherweiterungen gesucht.. leider erfolglos.
Gruß Chris
Zitat von: chq am 04 Juli 2020, 18:04:57
Hallo,
wir haben einen Roborock 2 (S5), der regelmäßig große Probleme damit hat, dass wir ihn in zwei Stockwerken einsetzen.
Wenn ich seine Karte vor dem Einsatz im "neuen" Stockwerk lösche, reinigt er deutlich zuverlässiger, da er dann keine irrwitzigen Fantasiekarten erfindet, die er dem zuletzt gereinigten Stockwerk intern "anhängt".
In der Commandref habe ich deshalb gesucht, ob es möglich ist, seine gespeicherte Karte zu löschen.
Leider habe ich jedoch nichts gefunden.
Hat mir evtl. jmd. einen Tipp, wie ich die Saugleistung beim Wechsel in ein anderes Stockwerk verbessern kann, ohne dass ich jedesmal in der App die Karte manuell löschen muss?
Hab auch schon nach alternativer Firmware und eventuellen Flasherweiterungen gesucht.. leider erfolglos.
Gruß Chris
Hallo Chris,
in diesem Thread steht einiges über Karten etc.
https://forum.fhem.de/index.php/topic,101197.msg946535.html#msg946535
Geht zwar um das Speichern von Karten...
...aber das kann man bestimmt auch in ein Löschen abwandeln...
Gruß, Joachim
Hallo,
ich habe einen Mi Robot Vacuum (Gen 1) und nutze dieses tolle Modul jetzt schon eine ganze Weile.
Bisher habe ich mich aber auf die Funktionen start und charge beschränkt, da ich mit der Zonenreinigung immer das Problem habe, dass die Karte sich bei jeder Reinigung zufällig in eine Himmelsrichtung orientiert.
Dadurch sind natürlich die Koordinaten für die Zonen und die goto Funktion mal richtig und mal nicht.
Das Problem wurde hier in dem Thread schon mehrmals angesprochen, aber eine Lösung habe ich bisher nicht gefunden.
Der "Workaround", immer nur die Zonenreinigung zu verwenden, um die Karte beizubehalten, ist bei mir nicht möglich, da ich den Sauger regelmäßig in ein anderes Stockwerk tragen und dort von beliebiger Stelle ein Clean starten muss.
Kennt jemand eine Lösung für das Kartenorientierungs-Problem?
Grüße
Stefan
Zitat von: Stefan6183 am 04 Juli 2020, 22:23:27
Hallo,
ich habe einen Mi Robot Vacuum (Gen 1) und nutze dieses tolle Modul jetzt schon eine ganze Weile.
Bisher habe ich mich aber auf die Funktionen start und charge beschränkt, da ich mit der Zonenreinigung immer das Problem habe, dass die Karte sich bei jeder Reinigung zufällig in eine Himmelsrichtung orientiert.
Dadurch sind natürlich die Koordinaten für die Zonen und die goto Funktion mal richtig und mal nicht.
Das Problem wurde hier in dem Thread schon mehrmals angesprochen, aber eine Lösung habe ich bisher nicht gefunden.
Der "Workaround", immer nur die Zonenreinigung zu verwenden, um die Karte beizubehalten, ist bei mir nicht möglich, da ich den Sauger regelmäßig in ein anderes Stockwerk tragen und dort von beliebiger Stelle ein Clean starten muss.
Kennt jemand eine Lösung für das Kartenorientierungs-Problem?
Grüße
Stefan
Evtl. hilft dort was: https://forum.fhem.de/index.php/topic,101197.msg946535.html#msg946535
(Stand auch schon im Post vor deinem Post ;) )
Gruß, Joachim
Hallo Joachim,
vielen Dank für den Link.
Allerdings habe ich einen V1, der nicht mehrere Karten verwalten kann.
Denkst du, das Backup / Restore der aktuellen Karte, wie in dem Link erwähnt, funktioniert trotzdem?
Gruß
Stefan
Hallo Stefan,
ich habe auch einen V1.
Als meine Karte durcheinander war hat der Restore einer Sicherung geholfen...
Allerdings ist wichtig, dass der Ausgangspunkt/Docking passt...
Einmal musste ich ihn kurz raus und wieder rein fahren lassen (damit die Orientierung passt) und dann die Karte zurückspielen...
Ich habe aber keine versch. Stockwerke, wende es also nicht regelmässig an sondern habe "Backups" für den Fall, dass was "schief" läuft...
Was spricht gegen ausprobieren!?
Die Karte per scp kopieren und dann zurück spielen tut doch nicht weh!?
Gruß, Joachim
Hallo Joachim,
vor dem Rooten des V1 bin ich bisher zurückgeschreckt, da ich immer die aktuellste Firmware drauf haben und keine Probleme mit der Xiaomi App bekommen will.
Laut https://github.com/Hypfer/Valetudo müsste ich, dank deaktivierter lokaler OTA Updates in meiner Firmwareversion, sogar den V1 komplett resetten - inklusive dem ganzen Heckmeck, den Token wieder zu bekommen.
Kann man nach dem Rooten eigentlich noch aktuelle Firmware Versionen über die Xiaomi App installieren?
Gruß
Stefan
Du musst ja nicht Valetudo ohne Cloud nutzen...
...mache ich auch (noch nicht mehr ;) ) nicht...
Backup/Restore der Karte dann halt mittels scp...
Klar kannst wieder die norm. FW drauf tun (sofern du das beim "Root-Build" nicht deaktiviert hast)...
Aber halt evtl. irgendwann nicht mehr rooten... ;)
Warum aktuellste FW!?
Ich hab nicht die neueste (warum, tut was ich will :) )...
...und weder mit MII-App (die ich nicht wirklich nutze) noch mit Flole-App (wenn App dann die :) ) (große) Probleme...
Warum App, wenn in fhem alles autom. läuft... ;)
Und Token mit gerootetem Sauger geht ja wohl mal easy...
Gruß, Joachim
Zitat von: MadMax-FHEM am 05 Juli 2020, 13:13:05Warum App, wenn in fhem alles autom. läuft... ;)
Um z.B. bei einer punktuellen Verschmutzung komfortabel über die App nur diese Stelle reinigen zu lassen.
Gruß Chris
Zitat von: chq am 05 Juli 2020, 13:29:28
Um z.B. bei einer punktuellen Verschmutzung komfortabel über die App nur diese Stelle reinigen zu lassen.
Gruß Chris
Das geht mit valetudo auch problemlos - das hab ich bisher nicht in fhem eingebaut, aber das hat sicher schon einer getan
Zitat von: MadMax-FHEM am 05 Juli 2020, 13:13:05
Aber halt evtl. irgendwann nicht mehr rooten... ;)
Das ist ein Argument. Obwohl ich die Xiaomi App besser finde als FloleVac, will ich schon früher oder später Valetudo drauf machen und China-Cloud-free werden.
Also wohl lieber früher als später ;D
Zitat von: KernSani am 28 Mai 2020, 17:13:43
Markus hat segment_names eingebaut, damit sollte es gehen (ich habe es selbst noch nicht probiert).
Ich bin zum Glück durch Zufall auf die segment_names gestossen. Gute Idee, hat bei mir aber leider noch nicht geklappt gehabt. D.h. ich habe sie definiert, aber sie wurden nicht als Liste dargestellt.
Habe folgende Codezeile erweitert, danach ging es
3680 if($attrName eq "zone_names" || $attrName eq "point_names" || $attrName eq "map_names") {
3681 my $hash = $defs{$name};
3682 InternalTimer( gettimeofday() + 2, "XiaomiDevice_ReadZones", $hash);
3683 }
3684
Da fehlt wohl ein
|| $attrName eq "segment_names"
Weiter ist dann das Auswählen eines Segments noch fehlerhaft. Hier wird momentan der Segmentname an den Roboter übergeben.
Ursache sollte der folgende Codeteil sein, $segment sollte auch an die XiaomiDevice_WriteJSON übergeben werden.
elsif ($cmd eq 'segment')
1085 {
1086 my $packetid = $hash->{helper}{packetid};
1087 $hash->{helper}{packetid} = $packetid+1;
1088 $hash->{helper}{packet}{$packetid} = "clean_segment";
1089 my $segment = join(",", @arg);
1090 $segment = $hash->{helper}{segments}{$arg[0]} if(defined($hash->{helper}{segments}) && defined($hash->{helper}{segments}{$arg[0]}));
1091
1092 XiaomiDevice_WriteJSON($hash, '{"id":'.$packetid.',"method":"app_segment_clean","params":['.$arg[0].']}' );
1093 }
wird zu
1092 XiaomiDevice_WriteJSON($hash, '{"id":'.$packetid.',"method":"app_segment_clean","params":['.$segment.']}' );
Mit den beiden Änderungen funktioniert das Segmentreinigen dann auch bei mir.
@Markus: Wäre gute, wenn du das nochmal verifizieren und dann ins Modul mit einbauen könntest.
Gruß,
Tim
[entfernt] falsches Thema...
Welchen Post von vor ein paar Seiten meinst du!!?
Ich denke du bist hier KOMPLETT FALSCH!
EDIT: dein definiertes Modul XiaomiMQTTDevice / das Modul DIESES THREADS: XiaomiDevice / finde den "Fehler" ;)
Das Modul hier hat (soweit ich weiß) nichts mit MQTT am Hut!
Am besten im passenden Unterforum einen Thread aufmachen!
Gruß, Joachim
Zitat von: Cruiser79 am 06 Juli 2020, 14:44:49@Markus: Wäre gute, wenn du das nochmal verifizieren und dann ins Modul mit einbauen könntest.
Ist im SVN, bitte testen.
Zitat von: Markus M. am 06 Juli 2020, 17:27:00
Ist im SVN, bitte testen.
Im SVN unter https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/72_XiaomiDevice.pm?order=name#L1092 sehe ich es richtig.
Nach einem update all auf meinem System ist die 72_XiaomiDevice.pm aber noch auf dem alten Stand. Dauert das etwas, bis ich das auch bekomme?
ZitatHeute um 07:40:01
geht meines Wissens erst ab 8:00 Ich glaube 7:45 Uhr startet der Job :)
Oder
{ Svn_GetFile("FHEM/ module Dateiname SVN ", "FHEM/ Module Dateiname lokal")}
Zitat von: Otto123 am 07 Juli 2020, 11:35:56
geht meines Wissens erst ab 8:00 Ich glaube 7:45 Uhr startet der Job :)
Oder { Svn_GetFile("FHEM/ module Dateiname SVN ", "FHEM/ Module Dateiname lokal")}
;D ;D ;D ;D
Stimmt, jetzt hat er es im Changelog.
New entries in the CHANGED file:
- change: 49_SSCam: new Zoom icons
- bugfix: 72_XiaomiDevice: Vacuum segment names fix
Upgedatet und getestet: Läuft!
Seit dem letzten Update habe ich in unregelmäßigen Abständen folgendes in meinem Logfile:
deletereading BOB history_9 : Deleted reading history_9 for device BOB
Das gabs vorher nicht !?
Kann man das unterbinden ?
Niemand ne Lösung ?
2020.07.08 20:28:50 3: deletereading BOB history_9 : Deleted reading history_9 for device BOB
2020.07.08 20:48:50 3: deletereading BOB history_9 : Deleted reading history_9 for device BOB
2020.07.08 20:52:19 3: deletereading BOB history_8 : Deleted reading history_8 for device BOB
2020.07.08 20:59:04 3: deletereading BOB history_9 : Deleted reading history_9 for device BOB
2020.07.08 21:09:04 3: deletereading BOB history_8 : Deleted reading history_8 for device BOB
2020.07.08 21:09:04 3: deletereading BOB history_9 : Deleted reading history_9 for device BOB
Was stört dich daran?
Dass es im Log steht!?
Oder dass es "gemacht" wird (also Historie gelöscht)!?
Wenn dich der Logeintrag stört: verbos auf 2 setzen oder Modulauthor anschreiben...
Wenn dich das Löschen an sich stört dann hilft verm. nur den Modulauthor zu bitten...
Gruß, Joachim
Mich stört das es im Log auftaucht trotzdem ich Verbose schon auf 0 stehen habe.
Das war vor ein paar Tagen /Wochen nicht so.
@Markus: Kannst Du mal schauen was da schief läuft.
Die Meldung ist doch ne Verbose 3 Level. Warum wird die bei Verbose 0 im Log angezeigt ?
Zitat von: Skusi am 12 Juli 2020, 11:15:18
Mich stört das es im Log auftaucht trotzdem ich Verbose schon auf 0 stehen habe.
Das war vor ein paar Tagen /Wochen nicht so.
@Markus: Kannst Du mal schauen was da schief läuft.
Die Meldung ist doch ne Verbose 3 Level. Warum wird die bei Verbose 0 im Log angezeigt ?
Vermutlich weil du bei
global verbose >= 3 gesetzt hast.
Das Modul selbst löscht nur Readings, loggt dazu aber nichts extra.
attr global verbose 2
Hallo Markus,
ich versuche gerade meinen neuen Sawasdika ZDG300 Wischroboter mit dem Modul zu koppeln. Den Token konnte ich über die russische App auslesen. Beim Verbinden stürzt das Modul dann leider ab.
Kannst Du mir bitte helfen, das Gerät einzubinden?
Folgende Readings werden noch ausgelesen:
device_firmware 3.5.3_1228
device_uptime 7.32
error none
state connected
wifi_auth_fail_count 0
wifi_conn_fail_count 0
wifi_conn_success_count 1
wifi_dhcp_fail_count 0
wifi_state online
Ein List ist leider nicht mehr möglich.
Hier noch das ausführliche Log:
2020.07.22 16:39:01 2: Wischer: connecting
2020.07.22 16:39:01 3: Wischer: initialized
2020.07.22 16:39:01 5: Wischer: initSend
2020.07.22 16:39:01 5: Wischer Send SUCCESS
2020.07.22 16:39:01 5: Wischer > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.07.22 16:39:01 5: Wischer < 2131002000000000129d116f5f184f85ffffffffffffffffffffffffffffffff (32)
2020.07.22 16:39:05 4: Wischer: write {"id":1,"method":"miIO.info","params":[""]} (43)
2020.07.22 16:39:05 5: Wischer: send 2131005000000000129d116f5f184f89f07bab99621f402dd1a5210479f1a33754a025a67cf51bbbf60f0697aa1eb885c3c6d0e5a858566377822cab8780e38de815e417742fa87e75268446882f268b
2020.07.22 16:39:05 5: Wischer Send SUCCESS
2020.07.22 16:39:05 5: Wischer > 2131005000000000129d116f5f184f89f07bab99621f402dd1a5210479f1a33754a025a67cf51bbbf60f0697aa1eb885c3c6d0e5a858566377822cab8780e38de815e417742fa87e75268446882f268b
2020.07.22 16:39:05 4: Wischer: write {"id":2,"method":"miIO.wifi_assoc_state","params":[""]} (55)
2020.07.22 16:39:05 5: Wischer: send 2131006000000000129d116f5f184f8989b9a4c737d4ee5e7acd07032fd182a4ae5e24ab277e1243b7b9c0fa22ebba81404a7dac58ec3fa13cd481659b61b2de55c1528f48f4fdea7988ef495074fe1d7f99db493c1a3a5f5dd2242158f25dcd
2020.07.22 16:39:05 5: Wischer Send SUCCESS
2020.07.22 16:39:05 5: Wischer > 2131006000000000129d116f5f184f8989b9a4c737d4ee5e7acd07032fd182a4ae5e24ab277e1243b7b9c0fa22ebba81404a7dac58ec3fa13cd481659b61b2de55c1528f48f4fdea7988ef495074fe1d7f99db493c1a3a5f5dd2242158f25dcd
2020.07.22 16:39:05 4: Wischer: write {"id":3,"method":"get_serial_number","params":[""]} (51)
2020.07.22 16:39:05 5: Wischer: send 2131006000000000129d116f5f184f89473dc89daba92211bf53dbbdf561b61bd3b3832babc80585440935961f7fb05f8a560080482b63800116bae4760432c53f1d1d6cd16b2623bb78ad3ae22f142036931eaef218f2cd9f018baa165dbd5c
2020.07.22 16:39:05 5: Wischer Send SUCCESS
2020.07.22 16:39:05 5: Wischer > 2131006000000000129d116f5f184f89473dc89daba92211bf53dbbdf561b61bd3b3832babc80585440935961f7fb05f8a560080482b63800116bae4760432c53f1d1d6cd16b2623bb78ad3ae22f142036931eaef218f2cd9f018baa165dbd5c
2020.07.22 16:39:05 4: Wischer: write {"id":4,"method":"get_timezone","params":[""]} (46)
2020.07.22 16:39:05 5: Wischer: send 2131005000000000129d116f5f184f894ca07f522e89190ebd8b616fd91bedaadad3c79db8119da7412f62b37c4535da6cfae1109455f507e89f1678d48f8be8959c923d1bf10eab5eb6d58415bc335f
2020.07.22 16:39:05 5: Wischer Send SUCCESS
2020.07.22 16:39:05 5: Wischer > 2131005000000000129d116f5f184f894ca07f522e89190ebd8b616fd91bedaadad3c79db8119da7412f62b37c4535da6cfae1109455f507e89f1678d48f8be8959c923d1bf10eab5eb6d58415bc335f
2020.07.22 16:39:08 4: Wischer: write {"id":5,"method":"get_consumable","params":[""]} (48)
2020.07.22 16:39:08 5: Wischer: send 2131006000000000129d116f5f184f8c5e24973c24e9641eef6d7d8ec13a3f28ca36fc717f98c367393741b419348ce798d5c62f2632b5c0920fad1e15971bbc3452bc816c1311235dd24c86c9d0c283a1fafc63795196dbf8eef5431ace83ad
2020.07.22 16:39:08 5: Wischer Send SUCCESS
2020.07.22 16:39:08 5: Wischer > 2131006000000000129d116f5f184f8c5e24973c24e9641eef6d7d8ec13a3f28ca36fc717f98c367393741b419348ce798d5c62f2632b5c0920fad1e15971bbc3452bc816c1311235dd24c86c9d0c283a1fafc63795196dbf8eef5431ace83ad
2020.07.22 16:39:08 4: Wischer: write {"id":6,"method":"get_clean_summary","params":[""]} (51)
2020.07.22 16:39:08 5: Wischer: send 2131006000000000129d116f5f184f8cac3096a22a1988693de6af8aaa8be22f4dfa885e9790a89a9b97c91a99129fb0d14d7fea699f6378fbf544f101e01a586a3ccf70fd864cd9530e03ac4af70b94aca6f08745381f077b580ce1e6576580
2020.07.22 16:39:08 5: Wischer Send SUCCESS
2020.07.22 16:39:08 5: Wischer > 2131006000000000129d116f5f184f8cac3096a22a1988693de6af8aaa8be22f4dfa885e9790a89a9b97c91a99129fb0d14d7fea699f6378fbf544f101e01a586a3ccf70fd864cd9530e03ac4af70b94aca6f08745381f077b580ce1e6576580
2020.07.22 16:39:08 4: Wischer: write {"id":7,"method":"get_dnd_timer","params":[""]} (47)
2020.07.22 16:39:08 5: Wischer: send 2131005000000000129d116f5f184f8cbbfabda0df8fbfb344fb4aecf8a14d99bfddba7d99bddb7456841b49a68da8d8f6f3e180cca25bb5a9633d3961e82482b89323e544fdd11c8952a74bca18a486
2020.07.22 16:39:08 5: Wischer Send SUCCESS
2020.07.22 16:39:08 5: Wischer > 2131005000000000129d116f5f184f8cbbfabda0df8fbfb344fb4aecf8a14d99bfddba7d99bddb7456841b49a68da8d8f6f3e180cca25bb5a9633d3961e82482b89323e544fdd11c8952a74bca18a486
2020.07.22 16:39:08 4: Wischer: write {"id":8,"method":"get_timer","params":[""]} (43)
2020.07.22 16:39:08 5: Wischer: send 2131005000000000129d116f5f184f8c2433695bbd96f3c9b9796c2a3aa66000ddc24a771020a47f279a8e2199cb012e84e8051b2bddf70e175a54de995bd20521fb1eda953f1e29a1c1564a7ee846fe
2020.07.22 16:39:08 5: Wischer Send SUCCESS
2020.07.22 16:39:08 5: Wischer > 2131005000000000129d116f5f184f8c2433695bbd96f3c9b9796c2a3aa66000ddc24a771020a47f279a8e2199cb012e84e8051b2bddf70e175a54de995bd20521fb1eda953f1e29a1c1564a7ee846fe
2020.07.22 16:39:08 4: Wischer: write {"id":9,"method":"get_sound_volume","params":[""]} (50)
2020.07.22 16:39:08 5: Wischer: send 2131006000000000
Danke, Ronny!
Leider erst mal keine Ahnung.
Wird das model Internal noch gesetzt?
Probier mal zum Testen im Modul diese Zeile einzufügen, irgendwo bei 2210
Zitat
$hash->{helper}{packet}{$packetid} = "wifi_stats";
XiaomiDevice_WriteJSON($hash, '{"id":'.$packetid.',"method":"miIO.wifi_assoc_state","params":[""]}' );
return undef if( defined($attr{$name}) && defined($attr{$name}{subType}) && $attr{$name}{subType} ne "VacuumCleaner");
return undef;
Hallo,
die Zeile ist eingefügt.
Danach habe ich den Wischer nochmal neu mit define eingebunden, hier das list:
fhem> list Test
Internals:
CFGFN
DEF 192.168.xx.xx [token]
FD 23
FUUID 5f197f17-f33f-311e-ec20-896349a1b3cc01a0
NAME Test
NR 442
STATE ???
TYPE XiaomiDevice
READINGS:
2020-07-23 14:14:35 error none
helper:
ConnectionState connected
crypt AES
delay 60
dev 129d
id 116f
ip 192.168.xx.xx
last_read 1595506475
packetid 12
port 54321
sequence 0
token [token]
packet:
1 device_info
10 app_get_locale
11 get_status
2 wifi_stats
3 get_consumable
4 get_clean_summary
5 get_dnd_timer
9 get_fw_features
Attributes:
subType VacuumCleaner
verbose 5
fhem>
Kann es sich um ein timing-Problem handeln? Manchmal stürzt fhem kurz nach dem define schon ab. Manchmal kann ich sogar noch per get 1-2 Sachen auslesen, bevor es zum Absturz kommt.
Hier noch ein log:
2020.07.23 14:07:02 3: Test: disconnecting
2020.07.23 14:07:02 2: Test: connecting
2020.07.23 14:07:02 3: Test: initialized
2020.07.23 14:07:02 5: Test: initSend
2020.07.23 14:07:02 5: Test Send SUCCESS
2020.07.23 14:07:02 5: Test > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.07.23 14:07:02 5: Test < 2131002000000000129d116f5f197d66ffffffffffffffffffffffffffffffff (32)
2020.07.23 14:07:06 4: Test: write {"id":1,"method":"miIO.info","params":[""]} (43)
2020.07.23 14:07:06 5: Test: send 2131005000000000129d116f5f197d6aa1746ea47281a433dfde30cc0d2f9bec54a025a67cf51bbbf60f0697aa1eb885c3c6d0e5a858566377822cab8780e38de815e417742fa87e75268446882f268b
2020.07.23 14:07:06 5: Test Send SUCCESS
2020.07.23 14:07:06 5: Test > 2131005000000000129d116f5f197d6aa1746ea47281a433dfde30cc0d2f9bec54a025a67cf51bbbf60f0697aa1eb885c3c6d0e5a858566377822cab8780e38de815e417742fa87e75268446882f268b
2020.07.23 14:07:06 4: Test: write {"id":2,"method":"miIO.wifi_assoc_state","params":[""]} (55)
2020.07.23 14:07:06 5: Test: send 2131006000000000129d116f5f197d6a6ca22dbbc7ebe04f32f7b711a3b0d0f5ae5e24ab277e1243b7b9c0fa22ebba81404a7dac58ec3fa13cd481659b61b2de55c1528f48f4fdea7988ef495074fe1d7f99db493c1a3a5f5dd2242158f25dcd
2020.07.23 14:07:06 5: Test Send SUCCESS
2020.07.23 14:07:06 5: Test > 2131006000000000129d116f5f197d6a6ca22dbbc7ebe04f32f7b711a3b0d0f5ae5e24ab277e1243b7b9c0fa22ebba81404a7dac58ec3fa13cd481659b61b2de55c1528f48f4fdea7988ef495074fe1d7f99db493c1a3a5f5dd2242158f25dcd
2020.07.23 14:07:09 4: Test: write {"id":3,"method":"get_consumable","params":[""]} (48)
2020.07.23 14:07:09 5: Test: send 2131006000000000129d116f5f197d6d9f882adb5abc7a4dd2e8d67466c9fd9fd3b3832babc80585440935961f7fb05f27319ca4f1a1518d80e814e8c7c8f32a5d1c2da5e05e22597df454a20fcd4960745136413d80435ddfc2c22b8314e3d6
2020.07.23 14:07:09 5: Test Send SUCCESS
2020.07.23 14:07:09 5: Test > 2131006000000000129d116f5f197d6d9f882adb5abc7a4dd2e8d67466c9fd9fd3b3832babc80585440935961f7fb05f27319ca4f1a1518d80e814e8c7c8f32a5d1c2da5e05e22597df454a20fcd4960745136413d80435ddfc2c22b8314e3d6
2020.07.23 14:07:09 4: Test: write {"id":4,"method":"get_clean_summary","params":[""]} (51)
2020.07.23 14:07:09 5: Test: send 2131006000000000129d116f5f197d6d8e42f77f71107da4a474ca4a2455b2f0dad3c79db8119da7412f62b37c4535daf6fe90f02613b9faca9919ea321bd1e54ecc1c0deb80c5bf4a5482e58a4a274ee3eb0fa6142ba056f3efa0a0797f2d46
2020.07.23 14:07:09 5: Test Send SUCCESS
2020.07.23 14:07:09 5: Test > 2131006000000000129d116f5f197d6d8e42f77f71107da4a474ca4a2455b2f0dad3c79db8119da7412f62b37c4535daf6fe90f02613b9faca9919ea321bd1e54ecc1c0deb80c5bf4a5482e58a4a274ee3eb0fa6142ba056f3efa0a0797f2d46
2020.07.23 14:07:09 4: Test: write {"id":5,"method":"get_dnd_timer","params":[""]} (47)
2020.07.23 14:07:09 5: Test: send 2131005000000000129d116f5f197d6d0d4766d8f91de3cecb74f35fda5dcf83ca36fc717f98c367393741b419348ce70558fba2942bab246a4d13a694e2036cb121eeff3d4c8390cfff9cf96ae647b4
2020.07.23 14:07:09 5: Test Send SUCCESS
2020.07.23 14:07:09 5: Test > 2131005000000000129d116f5f197d6d0d4766d8f91de3cecb74f35fda5dcf83ca36fc717f98c367393741b419348ce70558fba2942bab246a4d13a694e2036cb121eeff3d4c8390cfff9cf96ae647b4
2020.07.23 14:07:09 4: Test: write {"id":6,"method":"get_timer","params":[""]} (43)
2020.07.23 14:07:09 5: Test: send 2131005000000000129d116f5f197d6d2f634794639d5e3c7345dc3cd307e6944dfa885e9790a89a9b97c91a99129fb029d8eaad1c6a2fcdcc6d0faa20170ed992dd90f6dbf8b80895fc7b6eb9c22e57
2020.07.23 14:07:09 5: Test Send SUCCESS
2020.07.23 14:07:09 5: Test > 2131005000000000129d116f5f197d6d2f634794639d5e3c7345dc3cd307e6944dfa885e9790a89a9b97c91a99129fb029d8eaad1c6a2fcdcc6d0faa20170ed992dd90f6dbf8b80895fc7b6eb9c22e57
2020.07.23 14:07:09 4: Test: write {"id":7,"method":"get_sound_volume","params":[""]} (50)
2020.07.23 14:07:09 5: Test: send 2131006000000000129d116f5f197d6da0f66e729a6e543a2555388462086419bfddba7d99bddb7456841b49a68da8d839f08b0a34549524c21be3832d27ae41c803414e12c41e9fbd65e1c9f81ebf3f7bec91ab3a614087f2ade1071007e71c
2020.07.23 14:07:09 5: Test Send SUCCESS
2020.07.23 14:07:09 5: Test > 2131006000000000129d116f5f197d6da0f66e729a6e543a2555388462086419bfddba7d99bddb7456841b49a68da8d839f08b0a34549524c21be3832d27ae41c803414e12c41e9fbd65e1c9f81ebf3f7bec91ab3a614087f2ade1071007e71c
2020.07.23 14:07:09 4: Test: write {"id":8,"method":"get_carpet_mode","params":[""]} (49)
2020.07.23 14:07:09 5: Test: send 2131006000000000129d116f5f197d6deac83799c0af07cb5b673c379ed52ac8ddc24a771020a47f279a8e2199cb012ea359a8c0bbbd225201524cf8e3587bf8bdcadbd85534a683545fede581e495853c30b5a02d46bb07b5d7dd95338042bf
2020.07.23 14:07:09 5: Test Send SUCCESS
2020.07.23 14:07:09 5: Test > 2131006000000000129d116f5f197d6deac83799c0af07cb5b673c379ed52ac8ddc24a771020a47f279a8e2199cb012ea359a8c0bbbd225201524cf8e3587bf8bdcadbd85534a683545fede581e495853c30b5a02d46bb07b5d7dd95338042bf
2020.07.23 14:07:09 4: Test: write {"id":9,"method":"get_fw_features","params":[""]} (49)
2020.07.23 14:07:09 5: Test: send 2131006000000000129d116f5f197d6dadb8956ce48051da8dd612eccb6554c7e5689ca9894050497e70481292dbeb7ec120a4bb156a2bb6ededae2a6815ba025078cb04fa3b9c09a42495200a0020a506789a948f9a95a87809a68703578508
2020.07.23 14:07:09 5: Test Send SUCCESS
2020.07.23 14:07:09 5: Test > 2131006000000000129d116f5f197d6dadb8956ce48051da8dd612eccb6554c7e5689ca9894050497e70481292dbeb7ec120a4bb156a2bb6ededae2a6815ba025078cb04fa3b9c09a42495200a0020a506789a948f9a95a87809a68703578508
2020.07.23 14:07:09 4: Test: write {"id":10,"method":"app_get_locale","params":[""]} (49)
2020.07.23 14:07:09 5: Test: send 2131006000000000129d116f5f197d6d794b2558293eb6bd4b3f0d41f3c5e9762ccd6cbeecfd5c344c115ed254669e1fabdb1bf3e14059ca8dd9a5a8e245b0960b75325ee31699bdbabb091a8ede3f10923a0481ae445c0564941262ced364a7
2020.07.23 14:07:09 5: Test Send SUCCESS
2020.07.23 14:07:09 5: Test > 2131006000000000129d116f5f197d6d794b2558293eb6bd4b3f0d41f3c5e9762ccd6cbeecfd5c344c115ed254669e1fabdb1bf3e14059ca8dd9a5a8e245b0960b75325ee31699bdbabb091a8ede3f10923a0481ae445c0564941262ced364a7
2020.07.23 14:07:12 4: Test: write {"id":11,"method":"get_prop","params":["get_status"]} (53)
2020.07.23 14:07:12 5: Test: send 2131006000000000129d116f5f197d70b3a51c07d147d771244355a7b512cabfe1a8bda6c983245c182dd602b180e7f6f441cacbc16f725c39945863a82a7f0dc28bbae635dc87f96a0da0635e0dd30ab873f351c8c830308965720f0838f105
2020.07.23 14:07:12 5: Test Send SUCCESS
2020.07.23 14:07:12 5: Test > 2131006000000000129d116f5f197d70b3a51c07d147d771244355a7b512cabfe1a8bda6c983245c182dd602b180e7f6f441cacbc16f725c39945863a82a7f0dc28bbae635dc87f96a0da0635e0dd30ab873f351c8c830308965720f0838f105
2020.07.23 14:07:12 5: Test < 2131004000000000129d116f5f197d707ffaed5369ae9eeea88da9409d26cc260ea2064406168edae5261f0607972253da6ee9a03623cb8f6ff1e3e7a78ad3f7 (64)
2020.07.23 14:07:12 5: Test: decrypted
{"result":[],"id":11}
2020.07.23 14:07:12 5: Test: parse id 11
$VAR1 = {
'id' => 11,
'result' => []
};
2020.07.23 14:07:12 4: Test: parse id 11 / get_status
2020.07.23 14:07:12 4: Test: msg ref is ARRAY
2020.07.23 14:08:01 4: Test: write {"id":12,"method":"find_me","params":[""]} (42)
2020.07.23 14:08:01 5: Test: send 2131005000000000129d116f5f197da10669d5c79eef9120c17573fc2d15e299e5cb1e8e81d89a250d28fb4efca183e0788a423765ddb3707c854467a42bc0654f5b89d8db6fcab7c178fd2335b7e8a5
2020.07.23 14:08:01 5: Test Send SUCCESS
2020.07.23 14:08:01 5: Test > 2131005000000000129d116f5f197da10669d5c79eef9120c17573fc2d15e299e5cb1e8e81d89a250d28fb4efca183e0788a423765ddb3707c854467a42bc0654f5b89d8db6fcab7c178fd2335b7e8a5
2020.07.23 14:08:01 5: Test < 2131004000000000129d116f5f197da1c9985bd5f62c26b0cdc070e07636ae7512feb1dc7927d797e6c87c382ae5806c86513fcc0c4f79451389563be7989240 (64)
2020.07.23 14:08:01 5: Test: decrypted
{"result":[true],"id":12}
2020.07.23 14:08:01 5: Test: parse id 12
$VAR1 = {
'result' => [
bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
],
'id' => 12
};
2020.07.23 14:08:01 4: Test: parse id 12 / find_me
2020.07.23 14:08:01 4: Test: msg ref is ARRAY
2020.07.23 14:08:22 4: Test: write {"id":13,"method":"miIO.wifi_assoc_state","params":[""]} (56)
2020.07.23 14:08:22 5: Test: send 2131006000000000129d116f5f197db6ebefca0584ca364e0d0a69503a684876c74d7494cad5452ea998617d6e211860482ece1ac9f342d12ca3ec6f043234c609d8167b96f168f2a48a83c7a4761612da600054b8d6bf04d1516b483fea02c7
2020.07.23 14:08:22 5: Test Send SUCCESS
2020.07.23 14:08:22 5: Test > 2131006000000000129d116f5f197db6ebefca0584ca364e0d0a69503a684876c74d7494cad5452ea998617d6e211860482ece1ac9f342d12ca3ec6f043234c609d8167b96f168f2a48a83c7a4761612da600054b8d6bf04d1516b483fea02c7
2020.07.23 14:08:22 5: Test < 213100c000000000129d116f5f197db6f0d53e0d6fbaad8a07ab7bb1c0578c47d1eb0cb1a097a2709cda3ea0b26bdc9bc5ca9409c83fccecb9c0c5277cb1695096ecbadf5dab698b5691c3fc0e37a5cbf266f5712f0b7911ea57f2d59f2835d7727d98d80e04075f02cbdfdf5ea00d8c50854cad49b157ab37b4897f4dec7f5f78d70512886a3f3580a8db525dd8946ca4571d89f08d9a4414448b5b7c73a14c795eff320b581ab82b2b0b24584bfdb48c15c0eaba0d193f84b3596315cd3295 (192)
2020.07.23 14:08:22 5: Test: decrypted
{"id":13,"code":0,"message":"ok","result":{"state":"ONLINE","auth_fail_count":0,"conn_success_count":1,"conn_fail_count":0,"dhcp_fail_count":0}}
2020.07.23 14:08:22 5: Test: parse id 13
$VAR1 = {
'code' => 0,
'message' => 'ok',
'result' => {
'conn_success_count' => 1,
'auth_fail_count' => 0,
'conn_fail_count' => 0,
'state' => 'ONLINE',
'dhcp_fail_count' => 0
},
'id' => 13
};
2020.07.23 14:08:22 4: Test: parse id 13 / wifi_stats
2020.07.23 14:08:22 4: Test: msg ref is HASH
2020.07.23 14:08:41 4: Test: write {"id":14,"method":"get_prop","params":["get_status"]} (53)
2020.07.23 14:08:41 5: Test: send 2131006000000000129d116f5f197dc9f6ae0d3e2ee10a597d8bada86fdc2fad48f84df251ac9d1d1c8809f1a542fd304ce9f8ba3656be0b8927b598bf30e292c4f358919c28af73dbc56f488cba8e1703fd4337a4b7bf91e8734f3566497910
2020.07.23 14:08:41 5: Test Send SUCCESS
2020.07.23 14:08:41 5: Test > 2131006000000000129d116f5f197dc9f6ae0d3e2ee10a597d8bada86fdc2fad48f84df251ac9d1d1c8809f1a542fd304ce9f8ba3656be0b8927b598bf30e292c4f358919c28af73dbc56f488cba8e1703fd4337a4b7bf91e8734f3566497910
2020.07.23 14:08:41 5: Test < 2131004000000000129d116f5f197dc96e3a94d6c9714b6b1863542a261211a10ea2064406168edae5261f0607972253006e7e715d35237c95326d8632e71825 (64)
2020.07.23 14:08:41 5: Test: decrypted
{"result":[],"id":14}
2020.07.23 14:08:41 5: Test: parse id 14
$VAR1 = {
'result' => [],
'id' => 14
};
2020.07.23 14:08:41 4: Test: parse id 14 / get_status
2020.07.23 14:08:41 4: Test: msg ref is ARRAY
2020.07.23 14:08:54 4: Test: write {"id":15,"method":"get_clean_summary","params":[""]} (52)
2020.07.23 14:08:54 5: Test: send 2131006000000000129d116f5f197dd6c96fef090c6f8fd036e101156e7c00f8b59558c3be479193bf7ad9815a08db40af99cf8bf973b654cbb0e9bb09d7829d26a36698e73abe6770d1e39215d83c5f9972aee999c27657766edb49c0af96fa
2020.07.23 14:08:54 5: Test Send SUCCESS
2020.07.23 14:08:54 5: Test > 2131006000000000129d116f5f197dd6c96fef090c6f8fd036e101156e7c00f8b59558c3be479193bf7ad9815a08db40af99cf8bf973b654cbb0e9bb09d7829d26a36698e73abe6770d1e39215d83c5f9972aee999c27657766edb49c0af96fa
2020.07.23 14:08:55 5: Test < 2131004000000000129d116f5f197dd72d748e4f279d7bf475e6a28dcf0730a112feb1dc7927d797e6c87c382ae5806c30ac3e39532c5e00ae7d0d3198956021 (64)
2020.07.23 14:08:55 5: Test: decrypted
{"result":[true],"id":15}
2020.07.23 14:08:55 5: Test: parse id 15
$VAR1 = {
'result' => [
bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
],
'id' => 15
};
2020.07.23 14:08:55 4: Test: parse id 15 / get_clean_summary
2020.07.23 14:08:55 4: Test: msg ref is ARRAY
2020.07.23 14:09:04 4: Test: write {"id":16,"method":"get_log_upload_status","params":[""]} (56)
2020.07.23 14:09:04 5: Test: send 2131006000000000129d116f5f197de0aa06c7811fcd0fd15f386720c1a3b0b97d566ed3c86347a6c668377913b5c5eb14b5bbd1542821af25cc397b6fa3c3e4c4c62bd7c00936119ee0c0dbfb2f33eae66164c62712fbd63039b4ef96d9e24f
2020.07.23 14:09:04 5: Test Send SUCCESS
2020.07.23 14:09:04 5: Test > 2131006000000000129d116f5f197de0aa06c7811fcd0fd15f386720c1a3b0b97d566ed3c86347a6c668377913b5c5eb14b5bbd1542821af25cc397b6fa3c3e4c4c62bd7c00936119ee0c0dbfb2f33eae66164c62712fbd63039b4ef96d9e24f
2020.07.23 14:09:04 5: Test < 2131004000000000129d116f5f197de025757edb166213b61d819f8fd6dff6da12feb1dc7927d797e6c87c382ae5806cd767bd3735835b492a40014bc3487cbb (64)
2020.07.23 14:09:04 5: Test: decrypted
{"result":[true],"id":16}
2020.07.23 14:09:04 5: Test: parse id 16
$VAR1 = {
'result' => [
bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
],
'id' => 16
};
2020.07.23 14:09:04 4: Test: parse id 16 / get_log_upload_status
2020.07.23 14:09:04 4: Test: msg ref is ARRAY
Not a HASH reference at ./FHEM/72_XiaomiDevice.pm line 3251.
Ronny
Zitat von: ronny_b am 23 Juli 2020, 14:30:04Kann es sich um ein timing-Problem handeln? Manchmal stürzt fhem kurz nach dem define schon ab. Manchmal kann ich sogar noch per get 1-2 Sachen auslesen, bevor es zum Absturz kommt.
Das Problem ist, dass als Antwort irgendwas kommt, was nicht zu den bisherigen Datentypen passt.
Nochdazu ist die Basis der Kommunikation vermutlich MiIoT und nicht MiIO, da bei get_data nichts zurückkommt.
Vor Zeile 3251 einfügen:
return undef if(ref($json->{result}[0]) ne "HASH")
Dann wird das Modul aber wahrscheinlich nur irgendwo anders abstürzen.
Ich hab mal versucht irgendwas über das Gerät rauszufinden, Google gibt dazu aber (noch) nichts her.
Danke für die schnelle Antwort!
Richtig vermutet, jetzt ist er gleich nach dem define bei Zeile 3260 ausgestiegen: :(
2020.07.23 18:44:27 2: Test: connecting
2020.07.23 18:44:27 3: Test: initialized
2020.07.23 18:44:27 5: Test: initSend
2020.07.23 18:44:27 5: Test Send SUCCESS
2020.07.23 18:44:27 5: Test > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.07.23 18:44:27 5: Test < 2131002000000000129d116f5f19be6bffffffffffffffffffffffffffffffff (32)
2020.07.23 18:44:31 4: Test: write {"id":1,"method":"miIO.info","params":[""]} (43)
2020.07.23 18:44:31 5: Test: send 2131005000000000129d116f5f19be6fa195d465b44f325c86412e4b80381c3254a025a67cf51bbbf60f0697aa1eb885c3c6d0e5a858566377822cab8780e38de815e417742fa87e75268446882f268b
2020.07.23 18:44:31 5: Test Send SUCCESS
2020.07.23 18:44:31 5: Test > 2131005000000000129d116f5f19be6fa195d465b44f325c86412e4b80381c3254a025a67cf51bbbf60f0697aa1eb885c3c6d0e5a858566377822cab8780e38de815e417742fa87e75268446882f268b
2020.07.23 18:44:31 4: Test: write {"id":2,"method":"miIO.wifi_assoc_state","params":[""]} (55)
2020.07.23 18:44:31 5: Test: send 2131006000000000129d116f5f19be6f1fb47fc21849cb9141de90ff9f9c2c94ae5e24ab277e1243b7b9c0fa22ebba81404a7dac58ec3fa13cd481659b61b2de55c1528f48f4fdea7988ef495074fe1d7f99db493c1a3a5f5dd2242158f25dcd
2020.07.23 18:44:31 5: Test Send SUCCESS
2020.07.23 18:44:31 5: Test > 2131006000000000129d116f5f19be6f1fb47fc21849cb9141de90ff9f9c2c94ae5e24ab277e1243b7b9c0fa22ebba81404a7dac58ec3fa13cd481659b61b2de55c1528f48f4fdea7988ef495074fe1d7f99db493c1a3a5f5dd2242158f25dcd
2020.07.23 18:44:31 4: Test: write {"id":3,"method":"get_serial_number","params":[""]} (51)
2020.07.23 18:44:31 5: Test: send 2131006000000000129d116f5f19be6f8e495efa35d26f64915aa444de1f013dd3b3832babc80585440935961f7fb05f8a560080482b63800116bae4760432c53f1d1d6cd16b2623bb78ad3ae22f142036931eaef218f2cd9f018baa165dbd5c
2020.07.23 18:44:31 5: Test Send SUCCESS
2020.07.23 18:44:31 5: Test > 2131006000000000129d116f5f19be6f8e495efa35d26f64915aa444de1f013dd3b3832babc80585440935961f7fb05f8a560080482b63800116bae4760432c53f1d1d6cd16b2623bb78ad3ae22f142036931eaef218f2cd9f018baa165dbd5c
2020.07.23 18:44:31 4: Test: write {"id":4,"method":"get_timezone","params":[""]} (46)
2020.07.23 18:44:31 5: Test: send 2131005000000000129d116f5f19be6fdbb5f5d7fbb2509310b3631a4e4950c2dad3c79db8119da7412f62b37c4535da6cfae1109455f507e89f1678d48f8be8959c923d1bf10eab5eb6d58415bc335f
2020.07.23 18:44:31 5: Test Send SUCCESS
2020.07.23 18:44:31 5: Test > 2131005000000000129d116f5f19be6fdbb5f5d7fbb2509310b3631a4e4950c2dad3c79db8119da7412f62b37c4535da6cfae1109455f507e89f1678d48f8be8959c923d1bf10eab5eb6d58415bc335f
2020.07.23 18:44:32 5: Test < 2131018000000000129d116f5f19be6f51bb477afee793ab47e5cf456bd582d2ecd58ae991286b5bcfb55570a5b760a5dd5fc829cdfc506821aa00f62c32899cf9b40bb1b96dc6b725fc3d6b2939d0007dd40c16a8e61d874227343b454f74d873cd9ca8dcfbc696959a508f7dc6a4036915bb6d758b8cc17496defd3b8a287f06a7ef9a22792a977fcc252ad00f3a105d4ac7d3b0cc857c5b7d20be5f054cb17d3957a6f79fef459bc896cc386509d968483868b9db588e5403cd2075df59a533ccc814dc9fa2224c52bbf1d9e171cf96c646591e43febb83f8a0c31e1623784150dcdecb0d15e12f74818ecdd6bbcda65a2e542db8e3c9c0a84d58e6c532074a3b68defe2a95b97eed476305c5e2b03d744252550241f17ed47478ccb05cdb0afa22fb067f965cdef1fefda8d5fd6ca759b4161fa2cb09a5ca5aead7815c4114032da1ceb559a2673b2371bbec4cc646d11f4fef4f9fe6c9dfb83a67032ae972847ccd20e2bf34b8a564db12fcbda317e8a048ed5c6f682adbb94b36f4ca68 (384)
2020.07.23 18:44:32 5: Test: decrypted
{"partner_id":"","id":1,"code":0,"message":"ok","result":{"hw_ver":"Linux","fw_ver":"3.5.3_1228","ap":{"ssid":"HEROLAN","bssid":"e0:28:6d:70:8d:f9"},"netif":{"localIp":"192.168.178.68","mask":"255.255.255.0","gw":"192.168.178.1"},"model":"kxf321.mop.mo001","mac":"44:23:7C:FE:40:B2","token":"736e71674f39643155554d6d45503765","life":9673}}
2020.07.23 18:44:32 5: Test: parse id 1
$VAR1 = {
'result' => {
'token' => 'xxx',
'ap' => {
'ssid' => 'xxx',
'bssid' => 'xxx'
},
'netif' => {
'gw' => '192.168.xx.xx',
'localIp' => '192.168.xx.xx',
'mask' => '255.255.255.0'
},
'fw_ver' => '3.5.3_1228',
'model' => 'kxf321.mop.mo001',
'mac' => 'xxx',
'hw_ver' => 'Linux',
'life' => 9673
},
'code' => 0,
'partner_id' => '',
'message' => 'ok',
'id' => 1
};
2020.07.23 18:44:32 4: Test: parse id 1 / device_info
2020.07.23 18:44:32 4: Test: msg ref is HASH
2020.07.23 18:44:32 5: Test < 213100c000000000129d116f5f19be6fe345ce612a9953b26abc105b7a062cfd1c6f9ab390cf6856201c9d0aaa368f5512295e969790534e6523a28f3299decd3373c2a75f68d7a2d854256d6dcaea4a7d0b3fe818e6410ddf3e552e9e0f2af0d3ec9b3a5293ad64c9793471df1e20a83bb4e620a70b4026a554ba831ae009e42822dad7ce4722b510ef09bad0587cc467ed75108c115109feb46a84d8472e9fb929e785df0f13492313519e5ec518b77fe9cd64c34950e6e8bee174a83332c7 (192)
2020.07.23 18:44:32 5: Test: decrypted
{"id":2,"code":0,"message":"ok","result":{"state":"ONLINE","auth_fail_count":0,"conn_success_count":1,"conn_fail_count":0,"dhcp_fail_count":0}}
2020.07.23 18:44:32 5: Test: parse id 2
$VAR1 = {
'result' => {
'conn_success_count' => 1,
'state' => 'ONLINE',
'dhcp_fail_count' => 0,
'conn_fail_count' => 0,
'auth_fail_count' => 0
},
'code' => 0,
'message' => 'ok',
'id' => 2
};
2020.07.23 18:44:32 4: Test: parse id 2 / wifi_stats
2020.07.23 18:44:32 4: Test: msg ref is HASH
2020.07.23 18:44:32 5: Test < 2131004000000000129d116f5f19be6f36e988732d93aee7a843b85f8b005c1d12feb1dc7927d797e6c87c382ae5806c9caae76af35335ff51d61153e4f8c4b7 (64)
2020.07.23 18:44:32 5: Test: decrypted
{"result":[true],"id":3}
2020.07.23 18:44:32 5: Test: parse id 3
$VAR1 = {
'result' => [
bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
],
'id' => 3
};
2020.07.23 18:44:32 4: Test: parse id 3 / get_serial_number
2020.07.23 18:44:32 4: Test: msg ref is ARRAY
Not a HASH reference at ./FHEM/72_XiaomiDevice.pm line 3260.
Wenn ich noch irgendwas zur Fehlersuche betragen kann, helfe ich natürlich gerne. ;)
Ronny
Du kannst wieder die selbe Zeile dort einfügen.
Aber ohne das Gerät kann ich dir aktuell leider nicht viel helfen.
Du musst warten, bis jemand anders das durchtesten kann.
Du scheinst der erste zu sein der das Teil im Einsatz hat und automatisieren will.
Ok, da muß ich wohl hier etwas Werbung für das Gerät machen? ;D
Das Modul steigt leider immer wieder an anderen Stellen aus, jetzt an Zeile 3161.
Momentan läßt sich das Gerät wirklich nur mit der Xiaomi-App bedienen und ich bin vom S50 total verwöhnt... Der wird nur noch über FHEM bedient.
Dann bleibt ja nur abwarten. :'(
Danke trotzdem, Ronny!
Hallo Alle,
wird der Xiaomi SmartFan Xiaomi 1C oder model "dmaker.fan.1C" vom Modul unterstuetzt?
Das ist der kleine Bruder vom Xiaomi 2S. Der 1C ist ohne Akku, nur 3 windstaerken, und man kann den Winkel nicht einstellen.
Hat jemand den 1C schon in FHEM eingebunden? Ich finde im Modul als "attr subType" nur 'SmartFan' und 'SmartFan1X', aber nicht den 1C. Es kommt der Fehler im Reading error: "useracktimeout". Danke!
Moinsen,
habe gerade zufällig folgende Meldungen im Logfile gesehen:
2020.08.01 01:09:26 2: Robosauger: Message type for ID 2824 not found
2020.08.01 01:09:26 3: Robosauger: {
'id' => 2824,
'result' => [
77
]
}
2020.08.01 13:09:26 2: Robosauger: Message type for ID 3188 not found
2020.08.01 13:09:26 3: Robosauger: {
'result' => [
77
],
'id' => 3188
}
2020.08.01 17:09:26 2: Robosauger: Message type for ID 3308 not found
2020.08.01 17:09:26 3: Robosauger: {
'id' => 3308,
'result' => [
77
]
}
2020.08.01 18:09:26 2: Robosauger: Message type for ID 3338 not found
2020.08.01 18:09:26 3: Robosauger: {
'result' => [
77
],
'id' => 3338
}
2020.08.01 21:09:26 2: Robosauger: Message type for ID 3428 not found
2020.08.01 21:09:26 3: Robosauger: {
'id' => 3428,
'result' => [
77
]
}
2020.08.02 01:09:26 2: Robosauger: Message type for ID 3548 not found
2020.08.02 01:09:26 3: Robosauger: {
'id' => 3548,
'result' => [
77
]
}
Ich habe einen Roborock S50 im Einsatz. Bisher sind mir solche Meldungen noch nicht aufgefallen.
Ich nutze folgende Modulversion, sollte aktuell sein:
72_XiaomiDevice.pm 22358 2020-07-06 14:14:40Z moises
Ist das bekannt? Kann man da etwas gegen tun?
Gruß Hoppel
Zitat von: hoppel118 am 03 August 2020, 09:36:15
habe gerade zufällig folgende Meldungen im Logfile gesehen:
2020.08.01 01:09:26 2: Robosauger: Message type for ID 2824 not found
Ist das bekannt? Kann man da etwas gegen tun?
Du müsstest mal vorher mit verbose 5 mitloggen was in diesen IDs an den Sauger geschickt wird.
Klingt fast so als würde er verspätet doppelt auf eine Anfrage antworten - das hatte ich eigentlich schon gefixt.
Hat irgendein Reading den Wert aus der Meldung?
Zitat von: Jamo am 24 Juli 2020, 22:29:55
Hat jemand den 1C schon in FHEM eingebunden? Ich finde im Modul als "attr subType" nur 'SmartFan' und 'SmartFan1X', aber nicht den 1C. Es kommt der Fehler im Reading error: "useracktimeout". Danke!
Kann ich so bestätigen. Ich bekomme ihn auch nicht funktionierend eingebunden.
Internals:
DEF [meineIP] [meinToken]
FD 26
FUUID 5f32adf1-f33f-08ae-7e87-e7cfdd891e221330
NAME ventilator
NR 731
STATE mode level%
TYPE XiaomiDevice
READINGS:
2020-08-11 16:46:43 device_firmware 2.0.4
2020-08-11 16:46:43 device_uptime 0.35
2020-08-12 06:18:01 error useracktimeout
2020-08-11 16:53:24 power off
2020-08-11 22:07:58 state connected
2020-08-11 16:46:43 wifi_rssi -69
helper:
ConnectionState connected
crypt AES
delay 60
dev 0e5f
id 328c
ip [meineIP]
last_read 1597205881
packetid 124
port 54321
sequence 1597176359
token [meinToken]
packet:
121 fan_data
122 fan_data
123 fan_data
Attributes:
room Schlafzimmer
stateFormat mode level%
subType SmartFan
LG
Oli
Da ich in dem Thread nichts gefunden habe, unterstützt das Modul den Mii Vacuum Mop Pro? STYJ02YM
Bzw. hat jemand schon einmal den Token auslesen können?
Danke.
Zitat von: OliS. am 12 August 2020, 06:25:23
Kann ich so bestätigen. Ich bekomme ihn auch nicht funktionierend eingebunden.
Liegt an komplett anderer Kommunikation.
Probier doch mal den Anhang mit SmartFan1C, ob damit das Setzen von Werten geht.
Zitat von: Che007 am 12 August 2020, 14:50:49Da ich in dem Thread nicht gefunden habe, unterstützt das Modul den Mii Vacuum Mop Pro? STYJ02YM
Noch nicht, ist aber zumindest theoretisch möglich. In absehbarer Zeit komme ich vermutlich nicht dazu.
Wenn du es selbst versuchen willst: https://github.com/nqkdev/home-assistant-vacuum-styj02ym/blob/master/vacuum.py (https://github.com/nqkdev/home-assistant-vacuum-styj02ym/blob/master/vacuum.py)
Zitat von: Markus M. am 12 August 2020, 17:58:48
Noch nicht, ist aber zumindest theoretisch möglich. In absehbarer Zeit komme ich vermutlich nicht dazu.
Wenn du es selbst versuchen willst: https://github.com/nqkdev/home-assistant-vacuum-styj02ym/blob/master/vacuum.py (https://github.com/nqkdev/home-assistant-vacuum-styj02ym/blob/master/vacuum.py)
Hi Markus,
vielen Dank. Also den Token kann man bei dem Modell also auch auslesen! Ich kann gerne mal drüberschauen, der Roboter ist noch nicht bei mir. Werde es dann mal versuchen.
Zitat von: Che007 am 13 August 2020, 11:56:26
Hi Markus,
vielen Dank. Also den Token kann man bei dem Modell also auch auslesen! Ich kann gerne mal drüberschauen, der Roboter ist noch nicht bei mir. Werde es dann mal versuchen.
Vermutlich nicht direkt sondern über dubiose Apps.
Aber irgendwer hat's wohl schon zum Laufen gekriegt ;)
Zitat von: Markus M. am 12 August 2020, 17:58:48
Liegt an komplett anderer Kommunikation.
Probier doch mal den Anhang mit SmartFan1C, ob damit das Setzen von Werten geht.
Hey, danke für den schnellen Patch. Scheint jetzt soweit zu funktionieren. Ich hatte zwar ein paarmal Disconnects, aber die hatte ich in der Mi Home App auch.
LG
Oli
Zitat von: OliS. am 13 August 2020, 17:57:03
Hey, danke für den schnellen Patch. Scheint jetzt soweit zu funktionieren. Ich hatte zwar ein paarmal Disconnects, aber die hatte ich in der Mi Home App auch.
Hi Oli
Dass du noch keine Daten angezeigt bekommst, hast du vermutlich ja schon bemerkt ;)
Bitte mal verbose 5 anmachen und die Kommunikation mitschneiden.
Da müssen wir noch ein paar Runden drehen.
Kurze Frage, jetzt wo ihr über die Fan´s schreibt.
Der Smartmi Standing Fan 2S funktioniert mit dem Modul...?
Grüße Marcel
Zitat von: Ma_Bo am 13 August 2020, 18:35:11
Kurze Frage, jetzt wo ihr über die Fan´s schreibt.
Der Smartmi Standing Fan 2S funktioniert mit dem Modul...?
Sollte funktionieren
Zitat von: Markus M. am 13 August 2020, 18:38:15
Sollte funktionieren
Super, werde ich testen, Fan ist bestellt und sollte am WE ankommen, bin aber dann erst einmal in Urlaub.
Zitat von: Markus M. am 13 August 2020, 18:24:20
Bitte mal verbose 5 anmachen und die Kommunikation mitschneiden.
Kommunikation mitschneiden? Hilf mir mal kurz auf die Sprünge. Das heißt einfach, dass Du ein Verbose5-Log brauchst, wenn ich das Ding bediene?
Momentan habe ich noch Schwierigkeiten, weil sich der Ventilator ständig disconnected. Aber nicht nur zu FHEM sondern auch in der Mi Home App. Dann muss ich ihn immer einmal manuell starten und reconnecten.
LG
Oli
EDIT: Ach, jetzt hab ich's gefunden. Ich versuche das heute Abend mal.
Zitat von: Markus M. am 12 Juni 2017, 19:23:46
https://ask.wireshark.org/questions/17559/packet-capturing-application-for-the-iphone (https://ask.wireshark.org/questions/17559/packet-capturing-application-for-the-iphone)
Neue Version zum Testen für den dmaker fan
Bis auf den Countdown Timer sollte alles funktionieren.
Hat der Fan eigentlich keine Einsrtellungen für den Winkel und kein links/rechts?
Hallo Markus,
anbei ein Patch für die (Anfänge der) Unterstützung eines Xiaomi Turmventilators (https://www.china-gadgets.de/xiaomi-turmventilator/) (einbindbar über die Token-Methode).
Als "model" wird "dmaker.fan.p9" erkannt.
Basis für den Patch ist die von Dir im Beitrag #2072 (https://forum.fhem.de/index.php/topic,73052.msg1077786.html#msg1077786) zur Verfügung gestellte Version der 72_XiaomiDevice.pm (für den SmartFan1C).
Bisher war ich allerdings nur in der Lage die "set"-Kommandos zu implementierten (und zu dokumentieren).
Mit den noch fehlenden "get" und regelmäßigen Status-Updates in dem Modul blicke ich leider so gar nicht durch. :'(
Falls Du da 'mal reinschauen könntest wäre das klasse.
Alternativ bräuchte ich eine kleine Einführung in "wo und was" für die get/Status-Updates im Code zu tun wäre.
Die Infos zu dem Turmventilator habe ich von hier (https://github.com/rytilahti/python-miio/issues/721) bzw. hier (http://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:fan:0000A005:dmaker-p9:1) (letzeres angehängt als formatierte Textdatei).
Hoffe, das ist ein guter Anfang, wie gesagt, stehe gerne parat für Erweiterungen, bräuchte dann aber Deine Unterstützung.
Viele Grüße,
Andreas
Edit: Während ich schrieb hast Du auch Deinen letzten Beitrag erstellt, ist jetzt mit "dmaker fan" weiterhin der "SmartFan1C" gemeint?
Edit2: Patch -Datei entfernt, neue Versin Patchdatei in diesem Beitrag (https://forum.fhem.de/index.php/topic,73052.msg1078447.html#msg1078447).
P9 sehe ich mir demnächst an.
Hier noch ein Versuch für den 1C mit timed_off
Wenn das funktioniert, sollte der damit komplett sein.
Zitat von: Markus M. am 15 August 2020, 11:14:10
Hat der Fan eigentlich keine Einsrtellungen für den Winkel und kein links/rechts?
Nee, bei dem kann man nur aktivieren ob er schwenken soll oder eben nicht. Einen definierten Winkel kann man aber nicht ansteuern.
Danke für die neue Version.
Ich kann die wesentlichen Funktionen mit dem Modul steuern. Die Settings kommen beim Fan und in der Mi Home App an. Aber wenn ich den Ventilator in der Mi Home App steuere oder am Fan selbst, ändern sich die Readings in FHEM noch nicht.
Außerdem steht im Reading "mode" permanent "favorite". Und das Reading "level" scheint es auch noch nicht zu geben.
Wenn Du noch was brauchst, sag Bescheid.
LG und danke.
Oli
Zitat von: Markus M. am 15 August 2020, 11:34:52
Hier noch ein Versuch für den 1C mit timed_off
Wenn das funktioniert, sollte der damit komplett sein.
Unsere Antworten hatten sich überschnitten. Mit der letzten Version scheint jetzt alles zu funktionieren. Vielen Dank.
LG
Oli
Die Timer waren noch suboptimal.
Lass die Version hier mal ein paar Tage auf verbose 3 laufen und gib mit Bescheid ob irgendwelche Fehler im Log auftauchen.
Zitat von: scooty am 15 August 2020, 11:29:55
Edit: Während ich schrieb hast Du auch Deinen letzten Beitrag erstellt, ist jetzt mit "dmaker fan" weiterhin der "SmartFan1C" gemeint?
Ja, probier für den P9 mal den Anhang.
Musste schnell gehen, hab mir deinen Patch daher nicht wirklich angeguckt ;)
Sag Bescheid ob das so funktioniert oder ob ich noch was vergessen hab
Hallo Markus,
Zitat von: Markus M. am 15 August 2020, 11:34:52
P9 sehe ich mir demnächst an.
Herzlichen Dank, hat keine Eile.
Anbei eine aktualisierte Patch-Datei mit dem Versuch, "get data" und die regelmäßigen Status-Updates abzubilden.
Scheint zu funktionieren.
Patch ist basierend auf Deiner letzten Version aus Beitrag #2087 (https://forum.fhem.de/index.php/topic,73052.msg1078444.html#msg1078444).
Viele Grüße,
Andreas
PS: Erste Version der Patch-Datei habe ich aus meinem damaligen Beitrag entfernt.
PPS: Und schon wieder eine Überschneidung, Du bist aber auch schnell ;).
P9 hat noch ein paar mehr Funktionen, ich teste es aber mal mit Deiner letzten Version.
Was fehlt denn noch?
Move left/right und die Winkel sind drin, die Stufen nicht weil Level stufenlos gesetzt werden kann.
Hier alle sets, die in meinem Patch drin sind:
on / off (AirPurifier/Humidifier//TowerFanP9):
Turn the device on or off
mode (AirPurifier/EvpHumidifier/TowerFanP9):
Set the device mode
AirPurifier: auto,silent,favorite
EvpHumidifier: silent,medium,high,auto
TowerFanP9: straight,natural,sleep
buzzer (AirPurifier/EvpHumidifier/TowerFanP9)
Set the buzzer (on,off)
led (AirPurifier/EvpHumidifier/TowerFanP9):
Set the LED (bright,dim,off)
TowerFanP9: on,off
child_lock (AirPurifier/EvpHumidifier/TowerFanP9)
Set the child lock (on,off)
angle_enable (TowerFanP9)
Set the horizontal swing (on,off)
angle (TowerFanP9)
Set the horizontal swing angle in degrees
TowerFanP9: 30,60,90,120,150 degrees
level (TowerFanP9)
Set the level of fan power
TowerFanP9: 1,2,3,4
level_speed (TowerFanP9)
Set the fan speed more granular then "set level"
TowerFanP9: 1-100
motor_control (TowerFanP9)
Set direction of the fan manually left or right in steps
TowerFanP9: none,left,right
timed_off (TowerFanP9)
Set the power off delay time in minutes (sleep timer)
TowerFanP9: 0-480 minutes
Ich glaube, die Unterschiede zum 1C / mehr Funktionen beim P9 sind:
mode: straight,natural,sleep
led: Nur on/off
angle: 30,60,90,120,15
level: 1,2,3,4
level_speed: 1-100
motor_control: none,left,right
timed_off: 0-480 minutes
Generell sind auch manche "piid" anders als beim 1C, daher separate Implementierung im Code
z.B. für LED:
P9:
{"did": "led", "siid": 2, "piid": 9}
1C:
{"did": "led", "siid": 2, "piid": 12}
Ich gehe also davon aus, dass es sich lohnt, den Patch anzuschauen.
;)
Aber wie gesagt, keine Eile, bin ab morgen auch ein paar Tage weg...
Vielen Dank und Grüße,
Andreas
RC für SmartFan1C und TowerFanP9 im Anhang
Bitte auch testen wenn ihr nur andere Geräte habt
Zitat von: Markus M. am 16 August 2020, 17:42:23
RC für SmartFan1C und TowerFanP9 im Anhang
Bitte auch testen wenn ihr nur andere Geräte habt
Guten Morgen,
mit der letzten Version und dem Slider lässt sich beim 1C kein Level mehr setzen. Mit den drei Settings "low/medium/high" funktionierte das noch.
LG
Oli
Zitat von: OliS. am 17 August 2020, 07:14:11
Guten Morgen,
mit der letzten Version und dem Slider lässt sich beim 1C kein Level mehr setzen. Mit den drei Settings "low/medium/high" funktionierte das noch.
Sorry, da fehle irgendwie noch was.
Ich hab
level nun generell über alle Devices numerisch gelassen.
Zitat von: Markus M. am 17 August 2020, 18:00:51
Sorry, da fehle irgendwie noch was.
Ich hab level nun generell über alle Devices numerisch gelassen.
Funktioniert, danke.
LG
Oli
Zitat von: Markus M. am 16 August 2020, 17:42:23
RC für SmartFan1C und TowerFanP9 im Anhang
Bitte auch testen wenn ihr nur andere Geräte habt
Alles schick, keine Probleme, vielen Dank, besonders auch für die schnelle Implementierung!
Getestet mit TowerFanP9 und auch weiteren XiaomiDevices.
Vielleicht möchtest Du dem "set timed_off"-Befehl des TowerFanP9 noch einen slider spendieren?
timed_off:slider,0,1,480
Zeile 576 Deiner letzten Version.
Denn numerische Werte größer als 480 (Minuten) setzt er sowieso auf 480.
Die Lösung, "level" nur mit numerischen Werten zu steuern, gefällt mir gut.
Viele Grüße,
Andreas
Moin zusammen, leider konnte ich aus dem Wiki nicht ganz genau erkennen, ob alle Xiaomi Saugroboter unterstützt werden?
Aktuell wird das Modell "Xiaomi Robot Mop Pro" ja vermarktet (Herstellernr: XM200022).
Ich gehe mal davon aus, dass auch hier wie gewohnt der Token ausgelesen werden muss und dann sollte der Einbindung mit FHEM nichts im wege stehen?
Hat jemand diesen schon erfolgreich in FHEM eingebunden bzw. verwendet diesen erfolgreich?
Gruß
Mathze
Auf der vorherigen Seite steht, dass er noch nicht unterstützt wird es aber möglich ist (Mit Verweis auf den Home Assistant Quellcode wo er wohl schon implementiert ist).
Zitat von: Thyraz am 27 August 2020, 07:53:17
Auf der vorherigen Seite steht, dass er noch nicht unterstützt wird es aber möglich ist (Mit Verweis auf den Home Assistant Quellcode wo er wohl schon implementiert ist).
Alles klar, den Post hatte ich auf Seite 139 nicht gesehen gehabt.
Ich denke ich werde mir Mitte September mal einen Xiaomi Mi Robot Vacuum Mop Pro besorgen und schauen, ob ich an den Token komme und diesen einbinden kann.
Gruß
Moin,
ich habe hier zwecks Überwachung einen noch mit originaler FW laufenden Roborok S6 eingebunden. Soweit kann ich auch schön alle Daten sehen, jedoch erscheint im Log in schöner Regelmäßigkeit folgender Eintrag (trotz Verbose 0 im Device):
2020.08.28 17:31:04.511 1: Bob.Roborock, unknown Event batteryPercent: 100
2020.08.28 17:31:04.513 1: Bob.Roborock, unknown Event batteryState: ok
Ist grundsätzlich nicht schlimm, jedoch stört das etwas die Übersichtlichkeit im Log, weil das so oft kommt.
Das Device:
Internals:
DEF 192.168.1.158 317172344b4741624d52737531624c71
FD 56
FUUID 5da357fd-f33f-378b-b448-699343a3e46afdf7
FVERSION 72_XiaomiDevice.pm:0.223580/2020-07-06
NAME Bob.Roborock
NR 1634
STATE Docked
TYPE XiaomiDevice
READINGS:
2020-08-28 16:56:03 app_bom A.03.0040
2020-08-28 16:56:03 app_language en
2020-08-28 16:56:04 app_location de
2020-08-28 16:56:03 app_logserver awsde0.fds.api.xiaomi.com
2020-08-28 16:56:04 app_name custom_A.03.0040_CE
2020-08-28 16:56:03 app_timezone Europe/Berlin
2020-08-28 17:51:04 batteryPercent 100
2020-08-28 17:51:04 batteryState ok
2020-08-28 16:56:03 carpet_high 500
2020-08-28 16:56:03 carpet_integral 450
2020-08-28 16:56:03 carpet_low 400
2020-08-28 16:56:03 carpet_mode on
2020-08-28 16:56:03 carpet_stall_time 10
2020-08-28 17:51:04 cleaning_mode max
2020-08-28 16:56:03 consumables_filter 71
2020-08-28 16:56:03 consumables_main_brush 85
2020-08-28 16:56:03 consumables_sensors 65
2020-08-28 16:56:03 consumables_side_brush 78
2020-08-27 10:47:57 device_firmware 3.5.8_2076
2020-08-28 16:56:03 device_fw_features 111,112,113,114,115,116,117,118,119,120,122,123,124,125
2020-08-27 10:47:57 device_uptime 7.26
2020-08-28 17:51:04 dnd off
2020-08-28 16:56:03 dnd_enabled on
2020-08-28 16:56:03 dnd_end 08:00
2020-08-28 16:56:03 dnd_start 22:00
2020-08-28 17:51:04 error none
2020-08-28 17:51:04 error_code None
2020-08-28 17:51:04 fan_power 104
2020-08-28 16:56:04 history_0 2020-08-25 10:36:18: 7.14m² in 0.12h, finished cleaning
2020-08-28 16:56:04 history_1 2020-08-25 10:19:42: 11.23m² in 0.27h, finished cleaning
2020-08-28 16:56:04 history_2 2020-08-23 14:22:49: 11.07m² in 0.21h, finished cleaning
2020-08-28 16:56:04 history_3 2020-08-21 10:27:09: 11.49m² in 0.19h, finished cleaning
2020-08-28 16:56:04 history_4 2020-08-18 11:20:03: 6.96m² in 0.11h, finished cleaning
2020-08-28 16:56:04 history_5 2020-08-18 11:08:19: 11.09m² in 0.18h, finished cleaning
2020-08-28 16:56:04 history_6 2020-08-17 08:51:10: 11.46m² in 0.23h, finished cleaning
2020-08-28 16:56:04 history_7 2020-08-02 11:35:21: 11.54m² in 0.20h, finished cleaning
2020-08-28 16:56:04 history_8 2020-08-02 11:15:53: 10.01m² in 0.29h, finished cleaning
2020-08-28 16:56:04 history_9 2020-07-25 11:10:12: 11.38m² in 0.20h, finished cleaning
2020-08-28 17:51:04 in_cleaning no
2020-08-28 17:51:04 in_fresh_state yes
2020-08-28 17:51:04 in_returning no
2020-08-28 17:51:04 lab_status yes
2020-08-28 17:51:04 last_clean_area 7.14
2020-08-28 17:51:04 last_clean_time 0.12
2020-08-28 16:56:04 last_timestamp 1598344578
2020-08-28 17:51:04 lock_status off
2020-08-28 17:51:04 map_present yes
2020-08-28 17:51:04 mop_forbidden_enable no
2020-08-27 10:47:57 serial_number R0306S92601139
2020-08-28 17:51:04 state Docked
2020-08-27 10:47:57 timezone Europe/Berlin
2020-08-28 16:56:03 total_clean_area 2333.81
2020-08-28 16:56:03 total_clean_time 41.50
2020-08-28 16:56:03 total_cleans 203
2020-08-28 16:56:03 volume 100
2020-08-28 17:51:04 water_box_status no
2020-08-27 10:47:57 wifi_auth_fail_count 0
2020-08-27 10:47:57 wifi_conn_fail_count 0
2020-08-27 10:47:57 wifi_conn_success_count 1
2020-08-27 10:47:57 wifi_dhcp_fail_count 0
2020-08-27 10:47:57 wifi_rssi -39
2020-08-27 10:47:57 wifi_state online
helper:
ConnectionState connected
cleanrecord 10
crypt AES
delay 60
dev 0f8f
historydays 10
id 183a
ip 192.168.1.158
last_read 1598629864
packetid 643
port 54321
sequence 1
timers 0
token 317172344b4741624d52737531624c71
day:
history:
packet:
640 get_status
641 find_me
642 get_status
Attributes:
alias Staubsauger-Roboter "Bob" Roborock S6
disable 0
icon vacuum_top
room Flur
subType VacuumCleaner
userReadings last_clean_time_text:last_clean_time.*\ {\ my $seconds=ReadingsNum($name,"last_clean_time",0)*60*60;\ return SecondsToTime($seconds);\ },\ total_clean_time_text:total_clean_time.*\ {\ my $seconds=ReadingsNum($name,"total_clean_time",0)*60*60;\ return SecondsToTime($seconds);\ },\ consumables_filter_h:consumables_filter.*\ {\ my $hours=round((100-ReadingsNum($name,"consumables_filter",0))/100*150,0);\ return $hours."/150h";\ },\ consumables_main_brush_h:consumables_main_brush.*\ {\ my $hours=round((100-ReadingsNum($name,"consumables_main_brush",0))/100*300,0);\ return $hours."/300h";\ },\ consumables_sensors_h:consumables_sensors.*\ {\ my $hours=round((100-ReadingsNum($name,"consumables_sensors",0))/100*30,0);\ return $hours."/30h";\ },\ consumables_side_brush_h:consumables_side_brush.*\ {\ my $hours=round((100-ReadingsNum($name,"consumables_side_brush",0))/100*200,0);\ return $hours."/200h";\ }
verbose 0
Kann man eigentlich bei einem ungerooteten S6 trotzdem die Raumbezeichner der originalen Map herausbekommen? Dann müsste sich evtl. doch auch eine Reinigung dieser Räume möglich werden über fhem. Oder muß ich dazu tatsächlich das Ding rooten und mit Valetudo betreiben (ist ja jetzt seit einigen Wochen auch mit dem S6 möglich)
Gruß, Christoph
Zumindest beim S5 ist das hier im Thread irgendwo beschrieben gewesen, wie man die Reinigung der Räume anstößt.
Hab es gerade in diesem Bandwurmthread aber nicht mehr gefunden. :-X
Zitat von: caldir65 am 28 August 2020, 17:56:31
ich habe hier zwecks Überwachung einen noch mit originaler FW laufenden Roborok S6 eingebunden. Soweit kann ich auch schön alle Daten sehen, jedoch erscheint im Log in schöner Regelmäßigkeit folgender Eintrag (trotz Verbose 0 im Device):
2020.08.28 17:31:04.511 1: Bob.Roborock, unknown Event batteryPercent: 100
2020.08.28 17:31:04.513 1: Bob.Roborock, unknown Event batteryState: ok
Ist grundsätzlich nicht schlimm, jedoch stört das etwas die Übersichtlichkeit im Log, weil das so oft kommt.
Hast du zufällig irgendwo ein zu weit gefasstes notify rumfliegen?
ZitatKann man eigentlich bei einem ungerooteten S6 trotzdem die Raumbezeichner der originalen Map herausbekommen? Dann müsste sich evtl. doch auch eine Reinigung dieser Räume möglich werden über fhem.
Leider nein, du kannst die Räume aber analog zu den Zonen entweder mit ID reinigen oder sogar ein Alias im Device hinterlegen.
Schau mal ein paar Seiten vorher, hatte ich erst eingebaut.
Zitat von: Markus M. am 07 September 2020, 00:36:11
Hast du zufällig irgendwo ein zu weit gefasstes notify rumfliegen?
Moin,
müsste das dann nicht im Device als/unter "Probably associated with" erscheinen? Ich kann mich jedenfalls nicht an ein Notify o.ä. erinnern, welches ich angelegt hätte - bisher war die Einbindung einzig prophylaktischer Art - "falls da mal noch was kommt zum steuern aus fhem" oder ich das Ding mal rooten etc. sollte ...
Gruß, Christoph
Hi,
könnte aber nicht müsste. Das FHEM Web versucht Zusammenhänge zu ermitteln, kann das aber nicht in jedem Fall.
Versuch mal:
defmod TestBalla notify .*:.* {}
Das reagiert auf jeden Event in deinem System, wird aber nirgendwo als "Probably associated with" erscheinen.
Bitte wieder löschen und nie wirklich produktiv verwenden!
Gruß Otto
Hallo und guten Morgen,
hab mal eine Frage an die Profis hier. Besitze einen Mi Robot Vacuum, Model SDJQR02RR. Der läuft mit der aktuellen Firmware, V3.5.8_004018 und ohne root (noch, habe hier gelesen wäre sinnvoll).
Diesen habe ich auch von Anfang an erfolgreich an FHEM angebunden, jetzt habe ich in den letzten Tagen jeden Tag folgenden Eintrag im Log:
2020.09.10 03:34:14.846 3: Xiaomi_Mi_Robot: connection timeout
2020.09.10 03:37:14.903 3: Xiaomi_Mi_Robot: disconnecting
2020.09.10 03:37:14.903 2: Xiaomi_Mi_Robot: connecting
2020.09.10 03:37:14.904 3: Xiaomi_Mi_Robot: initialized
2020.09.10 03:37:18.930 2: Xiaomi_Mi_Robot: Message type for ID 11109 not found
2020.09.10 03:37:18.930 3: Xiaomi_Mi_Robot: $VAR1 = {
'result' => {
'fw_ver' => '3.5.8_004018',
'token' => '4b69xxxxxxxxxxxxxxxxxxxxxxxx4d77',
'mac' => '50:EC:50:04:3E:83',
'hw_ver' => 'Linux',
'model' => 'rockrobo.vacuum.v1',
'netif' => {
'gw' => '192.168.179.1',
'localIp' => '192.168.179.22',
'mask' => '255.255.255.0'
},
'miio_ver' => 'miio-client3.5.8',
'life' => 1623,
'ap' => {
'bssid' => '38:10:D5:E0:83:10',
'rssi' => -56,
'ssid' => 'FRITZ!Box7590'
}
},
'partner_id' => '',
'id' => 11109,
'message' => 'ok',
'code' => 0
};
Das "connection timeout", "disconnecting" und "connecting" hatte ich vorher auch schon als mal gehabt, wegen was ich frage ist der Teil mit der "Message type for ID". Die steht jetzt mittlerweile jeden Tag einmal im Log, immer mit einer anderen Message ID aber immer mit dem gleichen Inhalt.
Habt ihr eine Idee wo das herkommen kann?
Gruß
Markus
Hallo, ich habe da mal eine Frage zu dem Modul. Ich habe mir nun einen inteligenten Toilettensitz mit Popodusche von Xiaomi Smartmi zugelegt. Über die russische App konnte ich auch den Token auslesen und in Fhem integrieren. Meine Frage ist, was wähle ich dafür unter subType aus? Ich finde da irgendwie nichts passendes.
Ich habe eine Frage zum Smartfan 1C.
Am Anfang des Threads steht, dass man für diesen keinen Token benötigt.
Ich habe den in der Xiaomi Home App erfolgreich eingerichtet.
Beim Versuch das Device ohne Token in fhem anzulegen kommt im Log allerdings die Meldung
fan: Token could not be retrieved automatically from already cloud-connected device!
Wird also doch das Token benötigt?
Ich habe das Gerät dann wieder aus de App gelöscht und in fhem neu angelegt.
Dann habe ich im Log diese Meldungen
2020.09.11 12:54:56.764 1: PERL WARNING: Use of uninitialized value in pack at ./FHEM/72_XiaomiDevice.pm line 2321.
2020.09.11 12:54:56.765 1: stacktrace:
2020.09.11 12:54:56.766 1: main::__ANON__ called by ./FHEM/72_XiaomiDevice.pm (2321)
2020.09.11 12:54:56.769 1: main::XiaomiDevice_WriteJSON called by ./FHEM/72_XiaomiDevice.pm (2201)
2020.09.11 12:54:56.769 1: main::XiaomiDevice_GetDeviceDetails called by fhem.pl (3349)
2020.09.11 12:54:56.770 1: main::HandleTimeout called by fhem.pl (685)
2020.09.11 12:54:56.771 1: PERL WARNING: Use of uninitialized value in pack at ./FHEM/72_XiaomiDevice.pm line 2322.
2020.09.11 12:54:56.772 1: stacktrace:
2020.09.11 12:54:56.772 1: main::__ANON__ called by ./FHEM/72_XiaomiDevice.pm (2322)
2020.09.11 12:54:56.773 1: main::XiaomiDevice_WriteJSON called by ./FHEM/72_XiaomiDevice.pm (2201)
2020.09.11 12:54:56.774 1: main::XiaomiDevice_GetDeviceDetails called by fhem.pl (3349)
2020.09.11 12:54:56.774 1: main::HandleTimeout called by fhem.pl (685)
2020.09.11 12:54:56.784 1: fan: internal error, values missing
2020.09.11 12:54:56.786 1: PERL WARNING: Use of uninitialized value in pack at ./FHEM/72_XiaomiDevice.pm line 2321.
2020.09.11 12:54:56.787 1: stacktrace:
2020.09.11 12:54:56.787 1: main::__ANON__ called by ./FHEM/72_XiaomiDevice.pm (2321)
2020.09.11 12:54:56.788 1: main::XiaomiDevice_WriteJSON called by ./FHEM/72_XiaomiDevice.pm (2208)
2020.09.11 12:54:56.789 1: main::XiaomiDevice_GetDeviceDetails called by fhem.pl (3349)
2020.09.11 12:54:56.789 1: main::HandleTimeout called by fhem.pl (685)
2020.09.11 12:54:56.790 1: PERL WARNING: Use of uninitialized value in pack at ./FHEM/72_XiaomiDevice.pm line 2322.
2020.09.11 12:54:56.791 1: stacktrace:
2020.09.11 12:54:56.792 1: main::__ANON__ called by ./FHEM/72_XiaomiDevice.pm (2322)
2020.09.11 12:54:56.794 1: main::XiaomiDevice_WriteJSON called by ./FHEM/72_XiaomiDevice.pm (2208)
2020.09.11 12:54:56.795 1: main::XiaomiDevice_GetDeviceDetails called by fhem.pl (3349)
2020.09.11 12:54:56.796 1: main::HandleTimeout called by fhem.pl (685)
2020.09.11 12:54:56.799 1: fan: internal error, values missing
2020.09.11 12:54:56.801 1: PERL WARNING: Use of uninitialized value in pack at ./FHEM/72_XiaomiDevice.pm line 2321.
2020.09.11 12:54:56.802 1: stacktrace:
2020.09.11 12:54:56.803 1: main::__ANON__ called by ./FHEM/72_XiaomiDevice.pm (2321)
2020.09.11 12:54:56.804 1: main::XiaomiDevice_WriteJSON called by ./FHEM/72_XiaomiDevice.pm (2215)
2020.09.11 12:54:56.805 1: main::XiaomiDevice_GetDeviceDetails called by fhem.pl (3349)
2020.09.11 12:54:56.806 1: main::HandleTimeout called by fhem.pl (685)
2020.09.11 12:54:56.807 1: PERL WARNING: Use of uninitialized value in pack at ./FHEM/72_XiaomiDevice.pm line 2322.
2020.09.11 12:54:56.808 1: stacktrace:
2020.09.11 12:54:56.808 1: main::__ANON__ called by ./FHEM/72_XiaomiDevice.pm (2322)
2020.09.11 12:54:56.809 1: main::XiaomiDevice_WriteJSON called by ./FHEM/72_XiaomiDevice.pm (2215)
2020.09.11 12:54:56.809 1: main::XiaomiDevice_GetDeviceDetails called by fhem.pl (3349)
2020.09.11 12:54:56.810 1: main::HandleTimeout called by fhem.pl (685)
2020.09.11 12:54:56.813 1: fan: internal error, values missing
2020.09.11 12:54:56.816 1: PERL WARNING: Use of uninitialized value in pack at ./FHEM/72_XiaomiDevice.pm line 2321.
2020.09.11 12:54:56.817 1: stacktrace:
2020.09.11 12:54:56.817 1: main::__ANON__ called by ./FHEM/72_XiaomiDevice.pm (2321)
2020.09.11 12:54:56.818 1: main::XiaomiDevice_WriteJSON called by ./FHEM/72_XiaomiDevice.pm (2220)
2020.09.11 12:54:56.819 1: main::XiaomiDevice_GetDeviceDetails called by fhem.pl (3349)
2020.09.11 12:54:56.819 1: main::HandleTimeout called by fhem.pl (685)
2020.09.11 12:54:56.820 1: PERL WARNING: Use of uninitialized value in pack at ./FHEM/72_XiaomiDevice.pm line 2322.
2020.09.11 12:54:56.821 1: stacktrace:
2020.09.11 12:54:56.821 1: main::__ANON__ called by ./FHEM/72_XiaomiDevice.pm (2322)
2020.09.11 12:54:56.822 1: main::XiaomiDevice_WriteJSON called by ./FHEM/72_XiaomiDevice.pm (2220)
2020.09.11 12:54:56.822 1: main::XiaomiDevice_GetDeviceDetails called by fhem.pl (3349)
2020.09.11 12:54:56.823 1: main::HandleTimeout called by fhem.pl (685)
2020.09.11 12:54:56.826 1: fan: internal error, values missing
Mit dem Device lässt sich dann in fhem nicht wirklich was anfangen:
Internals:
CFGFN
DEF 192.168.2.66
FD 85
FUUID 5f5b5a45-f33f-a4cf-f628-f5d4249ba8d9e4aa
NAME fan
NR 205510
STATE ???
TYPE XiaomiDevice
helper:
ConnectionState initialized
crypt AES
delay 60
ip 192.168.2.66
packetid 1
port 54321
Attributes:
subType VacuumCleaner
Kann mir da jemand weiter helfen?
Smartfan 1C und P9 ab morgen im Update.
Zitat von: meier81 am 10 September 2020, 09:52:23Besitze einen Mi Robot Vacuum, Model SDJQR02RR. Der läuft mit der aktuellen Firmware, V3.5.8_004018 und ohne root (noch, habe hier gelesen wäre sinnvoll).
Diesen habe ich auch von Anfang an erfolgreich an FHEM angebunden, jetzt habe ich in den letzten Tagen jeden Tag folgenden Eintrag im Log
...
Das "connection timeout", "disconnecting" und "connecting" hatte ich vorher auch schon als mal gehabt, wegen was ich frage ist der Teil mit der "Message type for ID". Die steht jetzt mittlerweile jeden Tag einmal im Log, immer mit einer anderen Message ID aber immer mit dem gleichen Inhalt.
Habt ihr eine Idee wo das herkommen kann?
Ja. Der Staubsauger antwortet dem Modul entweder doppelt, verspätet oder ungefragt.
Update morgen, dann ist der Inhalt zumindest auf verbose 4 ;)
Zitat von: christian.71 am 11 September 2020, 09:00:38
Hallo, ich habe da mal eine Frage zu dem Modul. Ich habe mir nun einen inteligenten Toilettensitz mit Popodusche von Xiaomi Smartmi zugelegt. Über die russische App konnte ich auch den Token auslesen und in Fhem integrieren. Meine Frage ist, was wähle ich dafür unter subType aus? Ich finde da irgendwie nichts passendes.
Nimm irgendwas (Fan?) und versuch erst mal die Device Infos auszulesen. Dann sehen wir nachdem du ein list gepostet hast weiter.
Zitat von: kaihs am 11 September 2020, 13:11:45
Beim Versuch das Device ohne Token in fhem anzulegen kommt im Log allerdings die Meldung
fan: Token could not be retrieved automatically from already cloud-connected device!
Wird also doch das Token benötigt?
Frei nach dem Motto "Was interessiert mich mein Geschwätz von 2017": Ja!
(Hab's auf der ersten Seite ausgebessert)
Hier mal ein list von meiner Toilette. Als subType habe ich nun SmartFan genommen:
Cool wäre es, wenn das device als Reading auspuckt, wenn sich jemand auf den WC-Sitz setzt. Dann könnte man ja z.B. den Sonos Lautsprecher einschalten und eine gewisse Lichtstimmung aktivieren. ;D
Internals:
CFGFN
DEF 192.168.2.51 fba39675063axxxxxxxxxxxxx
FD 48
FUUID 5f5a7bc0-f33f-524a-601a-d185759bdb02e58d
NAME Toilette
NR 214402
STATE idle level%
TYPE XiaomiDevice
hardware esp32
mac 5C:E5:0C:3B:D2:26
mcu_firmware 0015
model zhimi.toilet.sa1
token xxx
wifi_firmware v3.1.5-69-gbcdc95ba6
READINGS:
2020-09-10 21:37:04 buzzer off
2020-09-10 21:40:01 device_firmware 2.0.7
2020-09-10 21:40:01 device_uptime 0.29
2020-09-10 22:15:35 error none
2020-09-10 21:37:19 mode idle
2020-09-10 21:37:19 power off
2020-09-14 16:23:38 state disconnected
2020-09-10 21:40:01 wifi_rssi -58
Zitat von: christian.71 am 14 September 2020, 16:46:51
Hier mal ein list von meiner Toilette.
Sieht nicht gut aus, das Modell findet sich nicht in den gängigen Projekten.
Zähl mal alle Funktionen und Readings auf, die du in der App einstellen und auslesen kannst.
Hier mal zwei screenshots von der app. Ich hoffe, das hilft weiter.
Hast du eine Möglichkeit, die Kommunikation zwischen Telefon und Toilette mitzuschneiden (sofern vorhanden)
oder an das Plugin Paket in der App ranzukommen?
Ich weiss leider nicht, welche Möglichkeiten es da aktuell überhaupt noch gibt.
Und wenn ich fragen darf: Wieviel kostet der Spass und woher?
Die Möglichkeit eines Mitschnitts zwischen Telefon und Toilette habe ich leider nicht.
In der app steht was von Plugin Version 34. Meintest du das?
Der Spass war jetzt nicht ganz so billig. Ich habe sie für 275 € über einen Preisvorschlag in der Bucht ergattert. Suche mal nach "Xiaomi Smartmi Smart Toilettensitzdeckel Pro Automatisches Induktions Bidet APP".
Verrückte Sache. :)
Braucht man da Strom an der Toilette? Und wie ist das mit dem Wasseranschlus, "klaut" der SItz das aus dem normalen Wasserzugang der Spülung oder muss da auch zusätzlich was ran?
Zitat von: Thyraz am 15 September 2020, 11:54:15
Verrückte Sache. :)
Braucht man da Strom an der Toilette? Und wie ist das mit dem Wasseranschlus, "klaut" der SItz das aus dem normalen Wasserzugang der Spülung oder muss da auch zusätzlich was ran?
Schau dir auf Aliexpress die Bilder an, dort siehst du, dass auf der rechten Seite der Stromanschluss, und auf der linken Seite der Anschluss fürs Wasser ist.
Sollte sich das Ding in Fhem integrieren lassen, schießt das echt den Vogel ab..
ZitatSchau dir auf Aliexpress die Bilder an, dort siehst du, dass auf der rechten Seite der Stromanschluss, und auf der linken Seite der Anschluss fürs Wasser ist.
Genau so ist es, wenn man vor der Toilette steht. Da ich direkt neben der Toilette mein Waschbecken habe, konnte ich vom Eckventil das Wasser abzweigen.
Zitat von: christian.71 am 15 September 2020, 10:30:07
Die Möglichkeit eines Mitschnitts zwischen Telefon und Toilette habe ich leider nicht.
So, hab was gefunden :)
Wenn du Android hast (hab ich leider nicht zur Verfügung), installier dir mal die russische Mi-Home Version von hier:
https://translate.google.com/translate?sl=auto&tl=en&u=https%3A%2F%2Fwww.kapiba.ru%2F2017%2F11%2Fmi-home.html (https://translate.google.com/translate?sl=auto&tl=en&u=https%3A%2F%2Fwww.kapiba.ru%2F2017%2F11%2Fmi-home.html)
Dann legst du ein Verzeichnis /sdcard/vevs/logs auf dem Telefon an und startest es neu
Und dann sollte die App alle Kommandos mitloggen, d.h. du bedienst alle Funktionen der Toilette einmal und schaust dann dort ins Log
Vielen Dank Markus für dein Bemühen. :)
Hat geklappt mit der app und dem Verzeichnis. Ich hänge die txt Datei mal hier ran.
Zitat von: christian.71 am 15 September 2020, 17:31:01
Vielen Dank Markus für dein Bemühen. :)
Hat geklappt mit der app und dem Verzeichnis. Ich hänge die txt Datei mal hier ran.
Sehr schön!
Damit kann ich was anfangen.
Wenn die Stufen bei der Temperatur und Level in der App noch irgendwelche schönen Namen haben wie "cool", "medium", "high" usw. statt nur 1-5, bitte die auch noch raussuchen ;)
Zitat von: ronny_b am 22 Juli 2020, 16:59:44
ich versuche gerade meinen neuen Sawasdika ZDG300 Wischroboter mit dem Modul zu koppeln. Den Token konnte ich über die russische App auslesen.
Zitat von: Che007 am 12 August 2020, 14:50:49
Da ich in dem Thread nichts gefunden habe, unterstützt das Modul den Mii Vacuum Mop Pro? STYJ02YM
Bzw. hat jemand schon einmal den Token auslesen können?
Zitat von: t1me2die am 27 August 2020, 08:41:53
Ich denke ich werde mir Mitte September mal einen Xiaomi Mi Robot Vacuum Mop Pro besorgen und schauen, ob ich an den Token komme und diesen einbinden kann.
Auch hier ist die russische App 3 Posts weiter oben die Lösung ;)
ZitatWenn die Stufen bei der Temperatur und Level in der App noch irgendwelche schönen Namen haben wie "cool", "medium", "high" usw. statt nur 1-5, bitte die auch noch raussuchen
Also bei Water Temp. und Seat Temp. sind die Stufen: off, 33°, 35°, 37°, 39°
Bei Water pressure: Soft, middle, Strong, Max
Bei Warm air temp. (Fön) sind die Stufen: off, 30°, 40°, 47°, 52°
Bei Nozzle position sind die Stufen: Last, Later, Front, Foremost
set_cover on ist übrigens der Befehl, dass der Deckel hoch geht. Leider gibt es kein Befehl von der app, dass er sich wieder schließt. Dass kann ich nur mit der Fernbedienung zum WC-Sitz machen.
Zitat von: christian.71 am 15 September 2020, 17:31:01
Vielen Dank Markus für dein Bemühen. :)
Hat geklappt mit der app und dem Verzeichnis. Ich hänge die txt Datei mal hier ran.
Da fehlt leider noch einiges an Settings und Daten wie z.B. aller Einstellungen die du gesetzt hast, Deckel und der Wasserfilter
Lass das Ding mal laufen oder schau dir das Log nochmal durch und such gezielt nach
get_prop, wenn das nur ein Ausschnitt ist.
Hat das Ding 4 User mit je einem eigenen Modus (ist das die Nozzle position, set_nozzle_level?) aber alle anderen Einstellungen sind gleich?
Man kann verschiedene User anlegen und verschiedene Optionen einstellen (siehe angehängter Screenshot)
Hab auch noch den dazugehörigen Log-Abschnitt angehängt, wo ich die Parameter für den User Christian gespeichert habe und dann das Programm gestartet und gestoppt habe.
Ja, nozzle_level ist die nozzle position.
Zitat von: christian.71 am 15 September 2020, 19:10:10
Man kann verschiedene User anlegen und verschiedene Optionen einstellen (siehe angehängter Screenshot)
Hab auch noch den dazugehörigen Log-Abschnitt angehängt, wo ich die Parameter für den User Christian gespeichert habe und dann das Programm gestartet und gestoppt habe.
Probier mal rauszufinden welches Setting hier was ist:
"set_user1_value","params":[1,60,1,2,2,2,2,120]
Und probier man den Anhang aus mit ToiletSeat, ich hab schon mal ein paar Settings geraten
Bitte 1x get Data bis mit verbose 3 was im Log steht
Und gucken ob der Deckel schon auf und zu geht ;)
ZitatProbier mal rauszufinden welches Setting hier was ist:
"set_user1_value","params":[1,60,1,2,2,2,2,120]
Ich denke, das ist die Reihenfolge von diesen Werten: "u1_clean_mode","u1_clean_time","u1_clean_rec","u1_water_level","u1_flow_level","u1_nozzle_level","u1_wind_level","u1_wind_time"
Bei get data mit verbose 3 kommt folgendes:
2020.09.15 19:51:08.769 3: Toilette: type toiletseat_data not implemented
{
'id' => 14,
'result' => [
1,
1,
-5001,
-5001,
-5001,
0,
'on'
]
}
2020.09.15 19:51:09.037 3: Toilette: type toiletseat_settings not implemented
{
'result' => [
0,
'on',
'on',
64800,
72000,
'on',
43200,
20700
],
'id' => 15
}
2020.09.15 19:51:09.412 3: Toilette: type toiletseat_test not implemented
{
'id' => 16,
'result' => [
undef,
2,
2,
2,
2,
'on',
undef,
'off',
undef,
undef,
undef,
undef,
undef
]
}
Der Deckel geht leider noch nicht auf oder zu.
Zitat von: christian.71 am 15 September 2020, 20:01:17Der Deckel geht leider noch nicht auf oder zu.
Hiermit?
Die Abfragen zum Deckelstatus und Filterstatus fehlen leider immer noch.
Spiel noch ein wenig mit der App rum, irgendwann muss das ja mal im Log auftauchen.
Yepp, mit der neuen Datei geht nun der Deckel auf und auch wieder zu. :-D Das ist mehr als mit der app. Da kann ich ihn nur aufmachen.
Wenn ich den Filter in der app abfrage kommt folgendes Bild. (siehe screenshot)
Aber er hinterlässt keinen Eintrag in der app LOG.
Zitat von: christian.71 am 15 September 2020, 20:33:32
Yepp, mit der neuen Datei geht nun der Deckel auf und auch wieder zu. :-D Das ist mehr als mit der app. Da kann ich ihn nur aufmachen.
Wenn ich den Filter in der app abfrage kommt folgendes Bild. (siehe screenshot)
Aber er hinterlässt keinen Eintrag in der app LOG.
Was sagt der dritte Teil von get data jetzt im Log? Hab da noch etwas rumprobiert.
Der Deckelstatus fehlt auch noch. Kannst du den mal mit der Fernbedienung oder manuell aufmachen und sehen ob die App das mitbekommt und was loggt?
Hier noch das LOG von der get Data Abfrage:
2020.09.15 21:10:46.760 3: Toilette: type toiletseat_data not implemented
{
'result' => [
1,
1,
-5001,
-5001,
-5001,
0,
'on'
],
'id' => 61
}
2020.09.15 21:10:47.019 3: Toilette: type toiletseat_settings not implemented
{
'result' => [
0,
'on',
'on',
64800,
72000,
'on',
43200,
20700
],
'id' => 62
}
2020.09.15 21:10:47.326 3: Toilette: type toiletseat_test not implemented
{
'id' => 63,
'result' => [
undef,
2,
2,
2,
2,
'on',
'off',
undef,
99,
undef,
undef,
undef,
undef,
undef,
undef
]
}
Leider wird auch nichts geloggt, wenn ich den Deckel manuell oder mit der Fernbedienung auf oder zu mache.
Schön, wäre auch wenn man wüßte, ob gerade jemand auf dem Sitz sitzt oder nicht. Es gibt in der App eine Automatisierung, wo ich z. B. was starten kann, wenn er jemand auf dem Sitz erkennt, aber auch da wird nichts in der Log mitgeschrieben. :-(
Mist.
Na zumindest dein Filter dürfte jetzt auf 99 sein, das kommt bei filter_life.
Letzte Raterunde für heute, danach geb ich auf -> get data
Also in der app steht noch 100% bei Filter.
Hier noch das get Data deiner letzten Datei:
2020.09.15 21:42:30.748 3: Toilette: type set_cover not implemented
{
'result' => [
'ok'
],
'id' => 4
}
2020.09.15 21:42:37.799 3: Toilette: type set_cover not implemented
{
'result' => [
'ok'
],
'id' => 5
}
2020.09.15 21:42:47.214 3: Toilette: type toiletseat_test not implemented
{
'result' => [
'idle',
undef,
undef,
27,
undef,
undef,
undef,
undef,
undef,
undef,
undef,
undef,
undef,
undef,
undef,
undef
],
'id' => 6
}
Keine Ahnung was den Deckel angeht, aber
idle: mode
27: temp
:)
Bei 27° würde es sich ja dann um einen Temperatursensor handeln für die normale Umgebungstemperatur, da ich nirgendswo 27 ° sonst einstellen kann.
Ist es eigentlich normal, dass das Reading buzzer nur reagiert, wenn ich über fhem on oder off schalte, aber sich nicht ändert, wenn ich es über die app ausführe?
Zitat von: christian.71 am 15 September 2020, 22:27:34
Bei 27° würde es sich ja dann um einen Temperatursensor handeln für die normale Umgebungstemperatur, da ich nirgendswo 27 ° sonst einstellen kann.
Genau
ZitatIst es eigentlich normal, dass das Reading buzzer nur reagiert, wenn ich über fhem on oder off schalte, aber sich nicht ändert, wenn ich es über die app ausführe?
Ja, ich hab noch keine Readings implementiert
Mit dem Anhang sollten alle Readings die wir kennen auftauchen
Moin,
diesmal bin ich aber richtig :-) Ich habe einen AirPurifier 2H und das Modul eingerichtet.
# $Id: 72_XiaomiDevice.pm 22766 2020-09-13 19:04:13Z moises $$$
Aber als State bekomme ich leider nur:
JSON, Digest::MD5, Crypt::CBC and either Crypt::Cipher::AES or Crypt::Rijndael_PP are required!
Die Module sind aber installiert:
root@pi-server:/opt.tmpfs/fhem/FHEM# perl -v
This is perl 5, version 30, subversion 0 (v5.30.0) built for x86_64-linux-gnu-thread-multi
(with 46 registered patches, see perl -V for more detail)
Copyright 1987-2019, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
root@pi-server:/opt.tmpfs/fhem/FHEM# cpan install Crypt::Cipher::AES Crypt::Rijndael_PP JSON Digest::MD5 Crypt::CBC
Loading internal logger. Log::Log4perl recommended for better logging
Reading '/root/.cpan/Metadata'
Database was generated on Fri, 18 Sep 2020 14:29:03 GMT
CPAN: Module::CoreList loaded ok (v5.20190522)
Crypt::Cipher::AES is up to date (0.069).
Crypt::Rijndael_PP is up to date (0.05).
JSON is up to date (4.02).
Digest::MD5 is up to date (2.55).
Crypt::CBC is up to date (2.33).
Wie kann ich den Fehler finden? OS ist Ubuntu Focal (20.04) Danke im Voraus
Zitat von: fhem@supergut am 18 September 2020, 18:17:42
root@pi-server:/opt.tmpfs/fhem/FHEM# cpan install Crypt::Cipher::AES Crypt::Rijndael_PP JSON Digest::MD5 Crypt::CBC
Wie kann ich den Fehler finden? OS ist Ubuntu Focal (20.04) Danke im Voraus
Auf der ersten Seite bei "Benötigte Perl Module" steht eigentlich implizit dass du Perl Module nur dann per CPAN installieren sollst, wenn es nichts anderes gibt.
Über den Package Manager
libjson-perl, libdigest-md5-perl, libcrypt-cbc-perl, libcrypt-ecb-perl (bei verschlüsseltem Token)
Und mit CPAN dann nur noch
Crypt::Cipher::AES oder Crypt::Rijndael_PP
Danke. Also aufgeräumt und nun soweit so gut, beim Schalten nun:
2020.09.18 19:51:26 2: buero_air_purifier_2h: connecting
2020.09.18 19:51:26 3: buero_air_purifier_2h: initialized
2020.09.18 19:51:26 5: buero_air_purifier_2h: initSend
2020.09.18 19:51:26 5: buero_air_purifier_2h Send SUCCESS
2020.09.18 19:51:26 5: buero_air_purifier_2h > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.09.18 19:54:12 4: buero_air_purifier_2h: write {"id":3,"method":"set_power","params":["on"]} (45)
2020.09.18 19:54:12 5: buero_air_purifier_2h: initSend
2020.09.18 19:54:12 5: buero_air_purifier_2h Send SUCCESS
2020.09.18 19:54:12 5: buero_air_purifier_2h > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.09.18 19:54:12 1: buero_air_purifier_2h: internal error, values missing
defmod buero_air_purifier_2h XiaomiDevice 192.158.178.95 2c6d5a8411586db4531b75fcaf6237bc
attr buero_air_purifier_2h stateFormat pm25 µg/m³ / speed rpm / mode
attr buero_air_purifier_2h subType AirPurifier
attr buero_air_purifier_2h verbose 5
Edit: Ich habe nochmal den Key neu erstellt (Wifi Reset) aktuelle FW des Gerätes ist:
1.4.3_23101
Noch ein Edit: Ich habe mal an der Stelle wo er aussteigt etwas mitgeloggt:
$crypt = pack('H*', $crypt);
Log3 ($name, 1, "$name: {helper} $hash->{helper}");
Log3 ($name, 1, "$name: {helper}{sequence} $hash->{helper}{sequence}");
Log3 ($name, 1, "$name: {helper}{dev} $hash->{helper}{dev}");
Log3 ($name, 1, "$name: {helper}{id} $hash->{helper}{id}");
Log3 ($name, 1, "$name: {helper}{token} $hash->{helper}{token}");
if(!defined($hash->{helper}) || !defined($hash->{helper}{sequence}) || !defined($hash->{helper}{dev}) || !defined($hash->{helper}{id}) || !defined($hash->{helper}{token}) )
{
RemoveInternalTimer($hash);
Log3 ($name, 1, "$name: internal error, values missing");
$hash->{helper}{delay} += 300;
InternalTimer( gettimeofday() + $hash->{helper}{delay}, "XiaomiDevice_connect", $hash);
return undef;
}
sequence, dev und id ist leer?!
2020.09.18 21:52:43 4: buero_air_purifier_2h: write {"id":29,"method":"set_power","params":["on"]} (46)
2020.09.18 21:52:43 5: buero_air_purifier_2h: initSend
2020.09.18 21:52:43 5: buero_air_purifier_2h Send SUCCESS
2020.09.18 21:52:43 5: buero_air_purifier_2h > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.09.18 21:52:43 1: buero_air_purifier_2h: Crypt::Cipher::AES
2020.09.18 21:52:43 1: buero_air_purifier_2h: {helper} HASH(0x55aa45c5c7a0)
2020.09.18 21:52:43 1: buero_air_purifier_2h: {helper}{sequence}
2020.09.18 21:52:43 1: buero_air_purifier_2h: {helper}{dev}
2020.09.18 21:52:43 1: buero_air_purifier_2h: {helper}{id}
2020.09.18 21:52:43 1: buero_air_purifier_2h: {helper}{token} e6442ba4889e7cfe17175f298e0dc5cf
2020.09.18 21:52:43 1: buero_air_purifier_2h: internal error, values missing
Sicher dass der Token stimmt?
Nach dem Wifi Update nochmal ausgelesen?
FHEM und Gerät sind im selben Netzwerk?
Scheint nicht mal auf das Init Packet zu antworten.
Tauchen irgendwelche Readings auf?
Sicher dass der Token stimmt? - Ja
Nach dem Wifi Update nochmal ausgelesen? - Ja
FHEM und Gerät sind im selben Netzwerk? - Ja
Scheint nicht mal auf das Init Packet zu antworten. - Sehe ich auch so.
Tauchen irgendwelche Readings auf? - Nein
Edit: Ich scanne mal die Ports des Airprifiers...
Hmm - ich würde erst mal das Netzwerk prüfen.
Bei nem falschen Token sollte zumindes irgendwas im Log ankommen.
Ping vom FHEM Rechner, wenn das funktioniert mal mit python-miio probieren.
Netzwerk scheint OK?!
root@pi-server:/opt.tmpfs/fhem/FHEM# miiocli device --ip 192.168.178.95 --token e6442ba4889e7cfe17175f298e0dc5cf info
Model: zhimi.airpurifier.mc2
Hardware version: MW300
Firmware version: 1.4.3_23101
Network: {'localIp': '192.168.178.95', 'mask': '255.255.255.0', 'gw': '192.168.178.1', 'gw_mac': '98:9B:CB:BE:27:57'}
AP: {'rssi': -24, 'ssid': 'SSIDvonMIR', 'bssid': '98:9B:CB:BE:27:5A'}
Nmap scan report for 192.168.178.95
Host is up (0.13s latency).
PORT STATE SERVICE VERSION
54321/udp open|filtered bo2k
MAC Address: 5C:E5:0C:B7:B5:BF (Unknown)
Dann bin ich leider erst mal ratlos, eventuell liegt es an den Perl Libs.
Neugestartet hast du alles mal?
Hast du noch andere Devices die du probieren kannst?
Alles neu gestartet, das Modul bekommt einfach keine Antwort. Nein, ich habe sonst nichst was mit dem Modul unterstützt würde.
Edit:
Auch auf einem frischen PI nur Basis fhem und nur https://wiki.fhem.de/wiki/Mi_vacuum kein Erfolg, leider.
2020.09.19 08:09:11 3: buero_air_purifier_2h: disconnecting
2020.09.19 08:09:11 2: buero_air_purifier_2h: connecting
2020.09.19 08:09:11 3: buero_air_purifier_2h: initialized
2020.09.19 08:09:11 5: buero_air_purifier_2h: initSend
2020.09.19 08:09:11 5: buero_air_purifier_2h Send SUCCESS
2020.09.19 08:09:11 5: buero_air_purifier_2h > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.09.19 08:09:18 4: buero_air_purifier_2h: write {"id":5,"method":"set_power","params":["on"]} (45)
2020.09.19 08:09:18 5: buero_air_purifier_2h: initSend
2020.09.19 08:09:18 5: buero_air_purifier_2h Send SUCCESS
2020.09.19 08:09:18 5: buero_air_purifier_2h > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.09.19 08:09:18 1: buero_air_purifier_2h: internal error, values missing
Danke für das tolle Modul. Läuft sehr gut bei mir...
Eine Frage bzw. ein Problem habe ich.
Es gibt die Möglichkeit via "set vaccuum segment XXX" einen bestimmten Raum zu reinigen.
Sende ich z.B. "set vaccuum segment 1" gibt mir der Roborock S5 Max akustisch aus "Zimmerreinigung gestartet". Leider endet diese nach 5 Sekunden. Ich nehme an dass er eine bestimmte Angabe für den Raum benötigt.
Wenn ich es über die mi App als "Zimmereinigung" starte, sagt er das gleiche, reinigt aber auch den Raum.
Gibt es einen Trick um die "ID" der Räume zu erhalten?
Habe schon in der App jedem Raum einen Namen gegeben aber damit geht es auch nicht.
Danke für Eure Hilfe!
Beste Grüße
Christoph
Hallo,
wenn Du Valetudo installiert hast bekommst Du diese mit http://<sauger>/api/segment_names
Ronny
Zitat von: Ganglion am 26 September 2020, 11:54:18
Sende ich z.B. "set vaccuum segment 1" gibt mir der Roborock S5 Max akustisch aus "Zimmerreinigung gestartet". Leider endet diese nach 5 Sekunden. Ich nehme an dass er eine bestimmte Angabe für den Raum benötigt.
Gibt es einen Trick um die "ID" der Räume zu erhalten?
Die IDs fangen bei 17 an.
set vacuum segment 17,18Du kannst auch Namen vergeben:
attr vacuum segment_names Kitchen:17,18 Bathroom:19
Zitat von: Markus M. am 26 September 2020, 14:05:32
Die IDs fangen bei 17 an.
set vacuum segment 17,18
Du kannst auch Namen vergeben:
attr vacuum segment_names Kitchen:17,18 Bathroom:19
Vielen Dank. Dadurch konnte ich per Try&Error meine IDs finden :-)
Ich hatte einen Raum der in 2 geteilt war und den habe ich per App zusammengefügt. Dieser Raum hat dann die ID 16 erhalten. Scheinbar werden die ID darunter also auch vergeben.
Ich bin glücklich :-) Schönes Wochenende
Hallo zusammen,
ich hatte den Xiaomi Vacuum Cleaner der ersten Generation ca. 3 Jahre tadellos in FHEM integriert (damals noch per Flole App). Durch einen Routerwechsel muss ich nun den neuen Token auslesen. Inzwischen geht der Weg per Flole, wie ich auch gemerkt habe, ja nicht mehr und ich habe den Weg mit der alten Version 4.2.0 aus der Anleitung probiert - ebenfalls erfolglos. Wie ist denn nun der aktuell noch mögliche Weg? Geht der Weg aus der reddit-Anleitung aus https://forum.fhem.de/index.php?topic=73052.msg646649#msg646649 noch? Mein Virenprogramm war direkt unzufrieden mit dem Download von Memuplay, da wollte ich lieber nochmal nachfragen ob der Weg nach so langer Zeit überhaupt noch aktuell ist bzw. welcher Weg die aktuelle Empfehlung ist. Danke im Voraus.
Schöne Grüße
Christoph
Zitat von: ChHerrm am 27 September 2020, 19:39:34
Hallo zusammen,
ich hatte den Xiaomi Vacuum Cleaner der ersten Generation ca. 3 Jahre tadellos in FHEM integriert (damals noch per Flole App). Durch einen Routerwechsel muss ich nun den neuen Token auslesen. Inzwischen geht der Weg per Flole, wie ich auch gemerkt habe, ja nicht mehr und ich habe den Weg mit der alten Version 4.2.0 aus der Anleitung probiert - ebenfalls erfolglos. Wie ist denn nun der aktuell noch mögliche Weg? Geht der Weg aus der reddit-Anleitung aus https://forum.fhem.de/index.php?topic=73052.msg646649#msg646649 noch? Mein Virenprogramm war direkt unzufrieden mit dem Download von Memuplay, da wollte ich lieber nochmal nachfragen ob der Weg nach so langer Zeit überhaupt noch aktuell ist bzw. welcher Weg die aktuelle Empfehlung ist. Danke im Voraus.
Schöne Grüße
Christoph
Schau mal hier:
https://forum.xda-developers.com/android/apps-games/app-xvacuum-firmware-xiaomi-vacuum-t3896526
Evtl hilft dir das weiter den Token auszulesen.
Ich würde ihn mit ssh versorgen / rooten. https://heinz-otto.blogspot.com/2019/06/root-und-gut.html
Oder direkt flashen mit Valetudo / Valetudo RE
Danke schon mal für eure Hinweise!
Zitat von: swsmily am 27 September 2020, 21:41:54
Schau mal hier:
https://forum.xda-developers.com/android/apps-games/app-xvacuum-firmware-xiaomi-vacuum-t3896526
Evtl hilft dir das weiter den Token auszulesen.
Die App habe ich zum Laufen bekommen, auch den Token gefunden. Aber was für eine Firmware lade ich dann drauf? Das ging für mich da irgendwie nicht draus hervor, sorry:-/ Habe von hier die Neueste versucht: http://dustbuilder.xvm.mit.edu/pkg/v1/ (http://dustbuilder.xvm.mit.edu/pkg/v1/) Das brachte aber nichts, ich konnte den Token anschließend nicht auswerten. Hier also die Frage: Was für eine / von wo nehme ich eine Firmware?
Zur zweiten Hilfe:
Zitat von: Otto123 am 27 September 2020, 21:56:22
Ich würde ihn mit ssh versorgen / rooten. https://heinz-otto.blogspot.com/2019/06/root-und-gut.html
Auch hier habe ich ne ganze Weile rumprobiert, aber bin letztlich gescheitert. Das bash-Skript imagebuilder.sh musste ich anpassen, damit ich es überhaupt zum Laufen bekam. Für die Übergabeparameter musste ich im Skript $ARG jeweils mit $1 ersetzen, dann lief es. Und beim NTPSERVER habe ich einfach einen festgelegt, da ich ansonsten in eine Fehlermeldung kam, dass NTPSERVER leer sei in der Zeile 606.
Nach den Anpassungen (bei Bedarf kann ich auch mein angepasstes Skript posten) lief dann alles erfolgreich durch aus diesem Schritt. Beim Skript Flasher.py war dann aber endgültig Schluss. Das ist der Fehler:
sudo python3 flasher.py -a $ip -t $token -f output/v11_003468.fullos.pkg
Flasher for Xiaomi Vacuum
Connecting to device 192.168.8.1...
Starting local http server...
Serving http server at 192.168.8.221:38979
Sending ota command with parameters: {"mode": "normal", "install": "1", "app_url": "http://192.168.8.221:38979/v11_003468.fullos.pkg", "file_md5": "f82b79c4eb31447cc06cd747741feba1", "proc": "dnld install"}
Traceback (most recent call last):
File "/usr/local/lib/python3.7/dist-packages/miio/protocol.py", line 193, in _decode
return json.loads(decoded)
File "/usr/lib/python3.7/json/__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.7/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "flasher.py", line 216, in <module>
main()
File "flasher.py", line 194, in main
r = vacuum.send('miIO.ota', ota_params)
File "/usr/local/lib/python3.7/dist-packages/miio/device.py", line 147, in send
command, parameters, retry_count, extra_parameters=extra_parameters
File "/usr/local/lib/python3.7/dist-packages/miio/miioprotocol.py", line 193, in send
m = Message.parse(data, token=self.token)
File "/usr/local/lib/python3.7/dist-packages/construct/core.py", line 288, in parse
return self.parse_stream(io.BytesIO(data), **contextkw)
File "/usr/local/lib/python3.7/dist-packages/construct/core.py", line 300, in parse_stream
return self._parsereport(stream, context, "(parsing)")
File "/usr/local/lib/python3.7/dist-packages/construct/core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
File "/usr/local/lib/python3.7/dist-packages/construct/core.py", line 1981, in _parse
subobj = sc._parsereport(stream, context, path)
File "/usr/local/lib/python3.7/dist-packages/construct/core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
File "/usr/local/lib/python3.7/dist-packages/construct/core.py", line 2439, in _parse
return self.subcon._parsereport(stream, context, path)
File "/usr/local/lib/python3.7/dist-packages/construct/core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
File "/usr/local/lib/python3.7/dist-packages/construct/core.py", line 3987, in _parse
obj = self.subcon._parsereport(stream, context, path)
File "/usr/local/lib/python3.7/dist-packages/construct/core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
File "/usr/local/lib/python3.7/dist-packages/construct/core.py", line 4265, in _parse
obj = self.subcon._parsereport(stream, context, path)
File "/usr/local/lib/python3.7/dist-packages/construct/core.py", line 312, in _parsereport
obj = self._parse(stream, context, path)
File "/usr/local/lib/python3.7/dist-packages/construct/core.py", line 698, in _parse
return self._decode(obj, context, path)
File "/usr/local/lib/python3.7/dist-packages/miio/protocol.py", line 201, in _decode
) from ex
miio.exceptions.PayloadDecodeException: Unable to parse message payload
Ausgeführt habe ich hier alles mit einem RPi 2, der zumindest für das Ausführen des Flasher Skripts auch nur im WLAN des Staubsaugers war.
Die Möglichkeit mit Valetudo habe ich bislang noch nicht ausprobiert. Wenn mir zu den ersten beiden Möglichkeiten noch jemand Hinweise geben könnte, wäre das super. Ansonsten wäre als nächstes dann die Variante mit Valetudo dran.
Hi,
Bist Du sicher, dass Du den richtigen Weg gegangen bist? Du hast ihn doch noch nicht eingebunden?! Du willst ihn doch quasi rooten nach dem Auspacken/Reset? Dafür gibt es einen extra Abschnitt in meinem Beitrag!
Sorry wenn das nicht so hundertprozentig drin steht.
Ich prüfe das die Tage nochmals, aber das Original Script muss keinesfalls gepatcht werden :o
Wenn ich richtig liege hat sich die Original Seite seit meinem Artikel nicht geändert. Aber im Zweifelsfall muss man die Original Anleitung nehmen, steht bei mir in der ersten Zeile!
Gruß Otto
Zitat von: ChHerrm am 28 September 2020, 22:28:22
Danke schon mal für eure Hinweise!
Die App habe ich zum Laufen bekommen, auch den Token gefunden. Aber was für eine Firmware lade ich dann drauf? Das ging für mich da irgendwie nicht draus hervor, sorry:-/ Habe von hier die Neueste versucht: http://dustbuilder.xvm.mit.edu/pkg/v1/ (http://dustbuilder.xvm.mit.edu/pkg/v1/) Das brachte aber nichts, ich konnte den Token anschließend nicht auswerten. Hier also die Frage: Was für eine / von wo nehme ich eine Firmware?
Die Frage ist, willst du ihn von der Cloud befreien (originale App geht dann natürlich nicht mehr).
Dann kannst du z.B. Valetudo RE installieren.
https://github.com/rand256/valetudo/releases
Passende PKG-Datei aufs Handy laden und per App flashen.
Ich hab bisher auch immer über den Raspi mit Mirobo geflashed. Mein Bruder hat es letzte Woche erst mit einem S50 über die App gemacht, lief problemlos. Außer, dass vom Roborock immer die Ansage kam, dass der Batteriestand zu niedrig wäre. Aber auf der Ladestation hat es dann funktioniert.
Ich hab es nun wieder mit Ottos Anleitung lauffähig bekommen. Sehr schön. Ich habe letztlich nochmal ein Werksreset gemacht und dann die Schritte aus dem Tutorial durchlaufen.
Kleine Anmerkung noch zum Tutorial, Otto:
An der Stelle, an der du die Sprachumschaltung auf deutsch erklärst, ist der Aufruf nicht mehr
wget https://dustbuilder.xvm.mit.edu/pkg/voice/de.pkg
mirobo --ip $ip --token $token de.pkg
sondern
wget https://dustbuilder.xvm.mit.edu/pkg/voice-1/de.pkg
mirobo --ip $ip --token $token install-sound de.pkg
Und der Flash-Befehl brauchte von mir trotzdem eine IP und den Token.
Vielen Dank auf jeden Fall für die Anleitung, die hat mir deutlich besser geholfen als der Link!
Danke für die Info. Ich werde das irgendwie einbauen :)
Für alle die die einen einfachen Weg für das Beziehen der Xiaomi Tokens suchen, hier nun als FHEM Modul:
Zuerst fhem_pythonbinding installieren:
https://github.com/dominikkarall/fhem_pythonbinding
danach:
define xiaomi_tokens PythonModule xiaomi_tokens
set xiaomi_tokens username USERNAME@MAIL.COM
set xiaomi_tokens password PASSWORD
set xiaomi_tokens get_tokens
Danach findet man alle Xiaomi Tokens in den Readings. Username und Passwort werden nicht gespeichert, sondern nur zum Abruf der Tokens benutzt.
klingt super! wäre es nicht sinnvoll, dass direkt ins Modul von Markus mit einzubauen? Wenn der Token nicht da oder falsch ist holt er automatisch den richtigen Token...
Direkt ins Modul von Markus kann ich es nicht einbauen, da die Library dazu in Python vorliegt und nicht in Perl. Klar, man koennte das nun alles in Perl neu programmieren.
Hi,
hat jemand den s6 maxV mit FHEM laufen?
Hallo,
ich versuche gerade meinen neuen Xiaomi Mijia G1 in FHEM einzubinden
Gibt es gerade für 135 EUR bei real.de, für das Geld ein echtes Schnäppchen, auch wenn er natürlich nicht so viel kann wie teureren Modelle
- keine echte Map, er zeigt in der App nur an, wie der Raum für ihn aussieht, man kann aber keine Zonen definieren
- Navigation über Gyro und nicht über Lasersensoren, das sieht aber trotzdem recht intelligent aus und nicht mehr so chaotisch wie beim iLife V6 Vorgänger bei mir
An den Einschränkungen könnte natürlich auch mein Scheitern mit der Steuerung liegen. Ich bin leider nicht mehr allzusehr im FHEM-Thema, weil meine sonstigen Gerätschaften einfach schon seit Jahren
problemlos funktionieren. Aber vielleicht erkennt ja jemand, woran es liegt.
Zuerst mal sind FHEM und Staubsauger im selben Netz und der Staubsauger ist vom Raspi anpingbar. Ich konnte mit micloud bzw. xiaomi_tokens das Token auslesen.
Das ist zwar jetzt nicht lebenswichtig, schließlich kann ich ja auch über die App steuern, aber irgendwie ärgert es mich doch, dass ich nicht weiterkomme.
Vielleicht sieht ja ein Exporte hier gleich woran es liegt (oder ob Xiaomi bei dem Modell was geändert hat)
Internals:
DEF 192.168.178.103 aae245a09de26...
FD 50
FUUID 5f85884b-f33f-af1d-be56-6c493...
NAME staubi
NR 155
STATE ???
TYPE XiaomiDevice
hardware esp32
mac 64:90:C1:A3:...
mcu_firmware 6138
model mijia.vacuum.v2
token aae245a09de26...
wifi_firmware cef6c09-dirty
READINGS:
2020-10-13 14:15:09 device_firmware 2.0.8
2020-10-13 14:15:09 device_uptime 22.34
2020-10-13 14:45:15 error undefinedcommand
2020-10-13 14:15:09 wifi_rssi -38
helper:
ConnectionState connected
crypt AES
delay 60
dev 1400
id dd9c
ip 192.168.178.103
last_read 1602593115
packetid 20
port 54321
sequence 1602510890
token aae245a09de26...
packet:
17 get_status
18 get_status
19 get_status
Attributes:
icon Botvac_VR200
room Wohnzimmer
subType VacuumCleaner
verbose 5
Beim reconnect mit verbose 5 erhalte ich Folgendes
2020.10.13 11:49:25 3: staubi: disconnecting
2020.10.13 11:49:25 2: staubi: connecting
2020.10.13 11:49:25 3: staubi: initialized
2020.10.13 11:49:25 5: staubi: initSend
2020.10.13 11:49:25 5: staubi Send SUCCESS
2020.10.13 11:49:25 5: staubi > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.10.13 11:49:25 5: staubi < 21310020000000001400dd9c000117fbffffffffffffffffffffffffffffffff (32)
2020.10.13 11:49:29 4: staubi: write {"id":67,"method":"miIO.info","params":[""]} (44)
2020.10.13 11:49:29 5: staubi: send 21310050000000001400dd9c000117ff4ea525e237fc06203646717b93d7b05c5a5bc6de397045645ae7d01be383a65af81efca22d477054d586ba8ee88ebffb38ca6d8d94b501daa76d0b304ca65573
2020.10.13 11:49:29 5: staubi Send SUCCESS
2020.10.13 11:49:29 5: staubi > 21310050000000001400dd9c000117ff4ea525e237fc06203646717b93d7b05c5a5bc6de397045645ae7d01be383a65af81efca22d477054d586ba8ee88ebffb38ca6d8d94b501daa76d0b304ca65573
2020.10.13 11:49:29 4: staubi: write {"id":68,"method":"miIO.wifi_assoc_state","params":[""]} (56)
2020.10.13 11:49:29 5: staubi: send 21310060000000001400dd9c000117ffcc80219d7fe706e111db6986baa0e9967b7ec727dcf534c3501cba4a4e768f1fdb18e9cc304e36d7cb6393ca9da79aadc8393d5ed4f0447ecd7e0ed1975291580946a95da677ac540ae178975c7dc562
2020.10.13 11:49:29 5: staubi Send SUCCESS
2020.10.13 11:49:29 5: staubi > 21310060000000001400dd9c000117ffcc80219d7fe706e111db6986baa0e9967b7ec727dcf534c3501cba4a4e768f1fdb18e9cc304e36d7cb6393ca9da79aadc8393d5ed4f0447ecd7e0ed1975291580946a95da677ac540ae178975c7dc562
2020.10.13 11:49:29 4: staubi: write {"id":69,"method":"get_serial_number","params":[""]} (52)
2020.10.13 11:49:29 5: staubi: send 21310060000000001400dd9c000117ff83ec19820d582e707c853630c7d75e72211a3ed188e3cf4379e62c61333a9444828f5bc80e07142c3c4c310a17929e403fee89da6f2552db439f752a6e1fe4ae2a66cc04bc029e5f3e13f802d1d6cf71
2020.10.13 11:49:29 5: staubi Send SUCCESS
2020.10.13 11:49:29 5: staubi > 21310060000000001400dd9c000117ff83ec19820d582e707c853630c7d75e72211a3ed188e3cf4379e62c61333a9444828f5bc80e07142c3c4c310a17929e403fee89da6f2552db439f752a6e1fe4ae2a66cc04bc029e5f3e13f802d1d6cf71
2020.10.13 11:49:29 4: staubi: write {"id":70,"method":"get_timezone","params":[""]} (47)
2020.10.13 11:49:29 5: staubi: send 21310050000000001400dd9c000117ff0279d753313529781a1e573e5302b239c91eb4e322988ae0372b954e064899c00ce78d928fd1e758f21092a3b074a153bc730c88bbe1ac7e5d57eecbb4b7f02d
2020.10.13 11:49:29 5: staubi Send SUCCESS
2020.10.13 11:49:29 5: staubi > 21310050000000001400dd9c000117ff0279d753313529781a1e573e5302b239c91eb4e322988ae0372b954e064899c00ce78d928fd1e758f21092a3b074a153bc730c88bbe1ac7e5d57eecbb4b7f02d
2020.10.13 11:49:30 5: staubi < 213101e0000000001400dd9c00011800f71395b8c69a38e3e22577da3eb763363350afb5d1cc3a7cdd784c2278615a109995896fe4ec335f5c07aaac0783b72fe158df2b66de9d5d76752dd0671a62f0a99a7ee9f82af99618aebf5cc2b124d4650fee81e69c56549312f0ed2fa937a819b78a32d78cf07a010f854cb5853fed72e46759ce53a54b463529a30bdf1db5b5c061ef2fb4cf8de0d0d0c14f2da6d052451a1350f3dcd105eae84828d736af8f6f9217ec772242082279c7b486b66866f3a00f16a0f9ee49dffa44fb17ec9ec974150c9366fe8ba70ad7ec1b3f608295ab612416570d727dc3a6daa57119d6c05b553c575c0af55ca49086ff53274a070307d7f12aa5596f7cce836822bedf598654c97e0eed8a26ce9144758282735bbb56c5eca6101a9c0d29b3bca8e5111f982bc47802efa7dfe0822809cdec4d0a3ecbc729cf16d16c2cc072006032e01e65ce750a9e1a880f699d9a3566bf5a1551a789d09cbee03135dbefd27162f9026358ddb9dc21c95f8123eb5dc2a8b04646e679da5cfe8201bc6f5c8da942447a7728757a3052cb4a4bc011a52f9e0660087a9fdc759b38da3e43cb80affeea5f436d697e777e8559bc6fd1282f110da7e432a0e7445ee183a94051e1665d47ea46f6bc7bf5ea69a93957c253fef975 (480)
2020.10.13 11:49:30 5: staubi: decrypted
{"id":67,"result":{"life":71679,"uid":6366...,"model":"mijia.vacuum.v2","token":"aae245a09de26...","ipflag":1,"fw_ver":"2.0.8","mcu_fw_ver":"6138","miio_ver":"0.0.8","hw_ver":"esp32","mmfree":62876,"mac":"64:90:C1:A3:...","wifi_fw_ver":"cef6c09-dirty","ap":{"ssid":"nope","bssid":"98:9B:CB:21:...","rssi":-38,"primary":11},"netif":{"localIp":"192.168.178.103","mask":"255.255.255.0","gw":"192.168.178.1"}},"exe_time":70}
2020.10.13 11:49:30 5: staubi: parse id 67
$VAR1 = {
'exe_time' => 70,
'result' => {
'life' => 71679,
'wifi_fw_ver' => 'cef6c09-dirty',
'model' => 'mijia.vacuum.v2',
'mcu_fw_ver' => '6138',
'uid' => 6366...,
'mac' => '64:90:C1:A3:5F:6F',
'miio_ver' => '0.0.8',
'netif' => {
'gw' => '192.168.178.1',
'mask' => '255.255.255.0',
'localIp' => '192.168.178.103'
},
'mmfree' => 62876,
'hw_ver' => 'esp32',
'token' => 'aae245a09de26...',
'ap' => {
'primary' => 11,
'ssid' => 'nope',
'bssid' => '98:9B:CB:21:...',
'rssi' => -38
},
'fw_ver' => '2.0.8',
'ipflag' => 1
},
'id' => 67
};
2020.10.13 11:49:30 4: staubi: parse id 67 / device_info
2020.10.13 11:49:30 4: staubi: msg ref is HASH
2020.10.13 11:49:30 5: staubi < 21310070000000001400dd9c000118007252c4f2f82a21993ca68daf994db75644ebeaee5beff438fe5300a84694eb837f43bd7a71b98badd726a6eb3c7ff22d0af3e2c4103225e6d742809db83283e5b42e51f3436b829ee53012bd1ea05065e5a9ecbe1dcb14435909bedec904a20e (112)
2020.10.13 11:49:30 5: staubi: decrypted
{"id":68,"error":{"code":-9999,"message":"undefined command"},"exe_time":200}
2020.10.13 11:49:30 5: staubi: parse id 68
$VAR1 = {
'exe_time' => 200,
'id' => 68,
'error' => {
'message' => 'undefinedcommand',
'code' => -9999
}
};
2020.10.13 11:49:30 4: staubi: parse id 68 / wifi_stats
2020.10.13 11:49:30 4: staubi: msg ref is
2020.10.13 11:49:30 5: staubi < 21310070000000001400dd9c00011800597cf9a4ecb45c9221a17207486487a20b596bfb487347094bf643e6cb52a2e6865fbdbf2825734ccd9d2721d29150f2925da2bd011fd66770feadd2e1bfc044f1bb4fc025570025feaa08075a8332e8d07209c068671653eedebfc6077ca271 (112)
2020.10.13 11:49:30 5: staubi: decrypted
{"id":69,"error":{"code":-9999,"message":"undefined command"},"exe_time":370}
2020.10.13 11:49:30 5: staubi: parse id 69
$VAR1 = {
'id' => 69,
'error' => {
'message' => 'undefinedcommand',
'code' => -9999
},
'exe_time' => 370
};
2020.10.13 11:49:30 4: staubi: parse id 69 / get_serial_number
2020.10.13 11:49:30 4: staubi: msg ref is
2020.10.13 11:49:30 5: staubi < 21310070000000001400dd9c00011800d8ada65484966d05888438fbaaf3020ceb11273b075113681b6746248141ab6806d28197bc691227efd878f2794cbf69bf5bed1c3f8e2becc66005d860a43b81daeae545e5f04253c115e6f8cafc3617a2afeb0a2fb3a7e005a41cfc8f57f84c (112)
2020.10.13 11:49:30 5: staubi: decrypted
{"id":70,"error":{"code":-9999,"message":"undefined command"},"exe_time":560}
2020.10.13 11:49:30 5: staubi: parse id 70
$VAR1 = {
'exe_time' => 560,
'id' => 70,
'error' => {
'code' => -9999,
'message' => 'undefinedcommand'
}
};
2020.10.13 11:49:30 4: staubi: parse id 70 / get_timezone
2020.10.13 11:49:30 4: staubi: msg ref is
2020.10.13 11:49:32 4: staubi: write {"id":71,"method":"get_consumable","params":[""]} (49)
2020.10.13 11:49:32 5: staubi: send 21310060000000001400dd9c00011802d2a68642d4ac1c55292151a4e727899266a3ffde69f0073aa60c125e47b20666105fe9923bca88973eaf3b60900b3e775ca1b8473ce149b92cbe361cb025af94465715cce4940cfd00ec2c729d01d11a
2020.10.13 11:49:32 5: staubi Send SUCCESS
2020.10.13 11:49:32 5: staubi > 21310060000000001400dd9c00011802d2a68642d4ac1c55292151a4e727899266a3ffde69f0073aa60c125e47b20666105fe9923bca88973eaf3b60900b3e775ca1b8473ce149b92cbe361cb025af94465715cce4940cfd00ec2c729d01d11a
2020.10.13 11:49:32 4: staubi: write {"id":72,"method":"get_clean_summary","params":[""]} (52)
2020.10.13 11:49:32 5: staubi: send 21310060000000001400dd9c00011802c95dea6fe03b09feff54e24bd0132dbed99580e3a2adf7d4285e31054594c0727e731dcc04d50de6ad730162aefa7e040c71a5653fa183468102c24d8faab1a93ee17ec682c07ec00b169353253f5201
2020.10.13 11:49:32 5: staubi Send SUCCESS
2020.10.13 11:49:32 5: staubi > 21310060000000001400dd9c00011802c95dea6fe03b09feff54e24bd0132dbed99580e3a2adf7d4285e31054594c0727e731dcc04d50de6ad730162aefa7e040c71a5653fa183468102c24d8faab1a93ee17ec682c07ec00b169353253f5201
2020.10.13 11:49:32 4: staubi: write {"id":73,"method":"get_dnd_timer","params":[""]} (48)
2020.10.13 11:49:32 5: staubi: send 21310060000000001400dd9c000118024806e998b85de2ccea56fabb61267a2542ef927946b44976cc88ca5cd45cadd1d8443e991e8227f3392a0a4eada385f682209fc7a8f2ddd9a8af295ea682480cd564fdbdd617e3a14f2198ba01b90726
2020.10.13 11:49:32 5: staubi Send SUCCESS
2020.10.13 11:49:32 5: staubi > 21310060000000001400dd9c000118024806e998b85de2ccea56fabb61267a2542ef927946b44976cc88ca5cd45cadd1d8443e991e8227f3392a0a4eada385f682209fc7a8f2ddd9a8af295ea682480cd564fdbdd617e3a14f2198ba01b90726
2020.10.13 11:49:32 4: staubi: write {"id":74,"method":"get_timer","params":[""]} (44)
2020.10.13 11:49:32 5: staubi: send 21310050000000001400dd9c0001180253d77c1dc8d95d1bd3437e2cbb43ab99886e93ff638e88da9d8d5dad50410c0890a8e54f1b176943c8d99bbe61efa63fcfa89e155be41f2f043aaa7ab4da00c9
2020.10.13 11:49:32 5: staubi Send SUCCESS
2020.10.13 11:49:32 5: staubi > 21310050000000001400dd9c0001180253d77c1dc8d95d1bd3437e2cbb43ab99886e93ff638e88da9d8d5dad50410c0890a8e54f1b176943c8d99bbe61efa63fcfa89e155be41f2f043aaa7ab4da00c9
2020.10.13 11:49:32 4: staubi: write {"id":75,"method":"get_sound_volume","params":[""]} (51)
2020.10.13 11:49:32 5: staubi: send 21310060000000001400dd9c00011802b075b5c4a7eca74eeac2988276b44900b46a81e627143a916d609ed478809752e291dc69a8e09c41e398b9da647288fe3332b8de116d474081795adb54abac997712a4970f54864f170197666d58db04
2020.10.13 11:49:32 5: staubi Send SUCCESS
2020.10.13 11:49:32 5: staubi > 21310060000000001400dd9c00011802b075b5c4a7eca74eeac2988276b44900b46a81e627143a916d609ed478809752e291dc69a8e09c41e398b9da647288fe3332b8de116d474081795adb54abac997712a4970f54864f170197666d58db04
2020.10.13 11:49:32 4: staubi: write {"id":76,"method":"get_carpet_mode","params":[""]} (50)
2020.10.13 11:49:32 5: staubi: send 21310060000000001400dd9c0001180227288d60743dd08a220e161f62e634265363f522b8f02fb02aa83955f9f6171446fb2a29cac546b4005d6fb334a53d92ecf0eee5ea9b8c004e54e78e69943d2b1fc12197d6411d14e9bb10d01709bb38
2020.10.13 11:49:32 5: staubi Send SUCCESS
2020.10.13 11:49:32 5: staubi > 21310060000000001400dd9c0001180227288d60743dd08a220e161f62e634265363f522b8f02fb02aa83955f9f6171446fb2a29cac546b4005d6fb334a53d92ecf0eee5ea9b8c004e54e78e69943d2b1fc12197d6411d14e9bb10d01709bb38
2020.10.13 11:49:32 4: staubi: write {"id":77,"method":"get_fw_features","params":[""]} (50)
2020.10.13 11:49:32 5: staubi: send 21310060000000001400dd9c000118022fcd590c101a14ae0e354cb5588f3cbcf1b0d980a2e153c026ba6951086c16bf37170bc44236fc282dcd1b79c84da6fbff247d7ff77853cc0d6b12d87c183bb3ffed3b13a41cb8de98523d8bae9a9661
2020.10.13 11:49:32 5: staubi Send SUCCESS
2020.10.13 11:49:32 5: staubi > 21310060000000001400dd9c000118022fcd590c101a14ae0e354cb5588f3cbcf1b0d980a2e153c026ba6951086c16bf37170bc44236fc282dcd1b79c84da6fbff247d7ff77853cc0d6b12d87c183bb3ffed3b13a41cb8de98523d8bae9a9661
2020.10.13 11:49:32 4: staubi: write {"id":78,"method":"app_get_locale","params":[""]} (49)
2020.10.13 11:49:32 5: staubi: send 21310060000000001400dd9c00011802779c94df2ffd675e30509ac11a23ad7c45e37519c56eac5ba81ddd34ab9a77d54913cff2cec39be0c126b493cf5bc7d2a9e46266202b845011eeb1208529990f3d0f7bca068e740c7a983c541f17cb6d
2020.10.13 11:49:32 5: staubi Send SUCCESS
2020.10.13 11:49:32 5: staubi > 21310060000000001400dd9c00011802779c94df2ffd675e30509ac11a23ad7c45e37519c56eac5ba81ddd34ab9a77d54913cff2cec39be0c126b493cf5bc7d2a9e46266202b845011eeb1208529990f3d0f7bca068e740c7a983c541f17cb6d
2020.10.13 11:49:33 5: staubi < 21310070000000001400dd9c00011802ecb7b06aa72d8ca419f81e20175711d55fec9abe215b40fe5f2b29f45488c216b5e426c5a2b7313378fd88807ffc75b2811486dd1b3088fc7c570cd667f9823ff75a0fca42e7c3b1bdcddce6baafa2350dea0057b3408105b4dd7554df2bf3ce (112)
2020.10.13 11:49:33 5: staubi: decrypted
{"id":71,"error":{"code":-9999,"message":"undefined command"},"exe_time":160}
2020.10.13 11:49:33 5: staubi: parse id 71
$VAR1 = {
'error' => {
'code' => -9999,
'message' => 'undefinedcommand'
},
'id' => 71,
'exe_time' => 160
};
2020.10.13 11:49:33 4: staubi: parse id 71 / get_consumable
2020.10.13 11:49:33 4: staubi: msg ref is
2020.10.13 11:49:33 5: staubi < 21310070000000001400dd9c0001180376880112546de803724b900ca9dde804022aa23a54abfdc427ba0321a67c8aea938fd14668010f0f2c6a052a5d6c581c09e3203ae93bc3a363194218620680fe157c4cfba8875ef8f390fb021d9a9836d8b90bd710fa3bac97bd2c3a8a9410be (112)
2020.10.13 11:49:33 5: staubi: decrypted
{"id":72,"error":{"code":-9999,"message":"undefined command"},"exe_time":270}
2020.10.13 11:49:33 5: staubi: parse id 72
$VAR1 = {
'error' => {
'message' => 'undefinedcommand',
'code' => -9999
},
'id' => 72,
'exe_time' => 270
};
2020.10.13 11:49:33 4: staubi: parse id 72 / get_clean_summary
2020.10.13 11:49:33 4: staubi: msg ref is
2020.10.13 11:49:33 5: staubi < 21310070000000001400dd9c0001180379ca3e33c514431a3552c337e0ad191e831e8292a2802cd40842b825eb38f99e8f00e49904cffe889ff25856a2e99df166342431447ef9f2b8037e70ca94af5eca3a52aad660ca01a6192aff56ccb3a41ecab6b1f6af1b2bd3c420e721120cc3 (112)
2020.10.13 11:49:33 5: staubi: decrypted
{"id":73,"error":{"code":-9999,"message":"undefined command"},"exe_time":380}
2020.10.13 11:49:33 5: staubi: parse id 73
$VAR1 = {
'id' => 73,
'error' => {
'code' => -9999,
'message' => 'undefinedcommand'
},
'exe_time' => 380
};
2020.10.13 11:49:33 4: staubi: parse id 73 / get_dnd_timer
2020.10.13 11:49:33 4: staubi: msg ref is
2020.10.13 11:49:33 5: staubi < 21310070000000001400dd9c0001180365a10de2d71e239e15c22805e1654b4cbb1d6a2af8fc1bf0e47a59fcfc203ebef552a81246c6fb8289b56195ba34e6eea2d4cf4048d06f27f329db748ce844295097d3a79e005d55ba1eec68ed9060f7c802b0258e7bae392b8ea85d95f57a76 (112)
2020.10.13 11:49:33 5: staubi: decrypted
{"id":74,"error":{"code":-9999,"message":"undefined command"},"exe_time":480}
2020.10.13 11:49:33 5: staubi: parse id 74
$VAR1 = {
'id' => 74,
'error' => {
'message' => 'undefinedcommand',
'code' => -9999
},
'exe_time' => 480
};
2020.10.13 11:49:33 4: staubi: parse id 74 / get_timer
2020.10.13 11:49:33 4: staubi: msg ref is
2020.10.13 11:49:33 5: staubi < 21310070000000001400dd9c00011803cbcfb4ee3a64cca6ad7a0c92cf101084f9ba637bd627c74c04b6d5d42df395540d5f98a50f9f602f54376af5bcbc9ae232172fc7383ba28c4c5cafb4d7c85778d6a580376dc25ec469387a82ea4f155d861ec9e0595ba55e562b369d902949ac (112)
2020.10.13 11:49:33 5: staubi: decrypted
{"id":75,"error":{"code":-9999,"message":"undefined command"},"exe_time":680}
2020.10.13 11:49:33 5: staubi: parse id 75
$VAR1 = {
'exe_time' => 680,
'error' => {
'code' => -9999,
'message' => 'undefinedcommand'
},
'id' => 75
};
2020.10.13 11:49:33 4: staubi: parse id 75 / get_sound_volume
2020.10.13 11:49:33 4: staubi: msg ref is
2020.10.13 11:49:33 5: staubi < 21310070000000001400dd9c0001180329f835d80071e618fc930d382378b3436849d43f4ecf8ed0ba4e079821f820697d3fa59cde2c286ab5fabb8c7906849fa463398ab8b4f4b28b9fa5f4288e57767525d6d63782f5ab808d9c8152377ab62f84951ee774e5399aa4e3553700523a (112)
2020.10.13 11:49:33 5: staubi: decrypted
{"id":76,"error":{"code":-9999,"message":"undefined command"},"exe_time":850}
2020.10.13 11:49:33 5: staubi: parse id 76
$VAR1 = {
'exe_time' => 850,
'error' => {
'code' => -9999,
'message' => 'undefinedcommand'
},
'id' => 76
};
2020.10.13 11:49:33 4: staubi: parse id 76 / get_carpet_mode
2020.10.13 11:49:33 4: staubi: msg ref is
2020.10.13 11:49:35 4: staubi: write {"id":79,"method":"get_prop","params":["get_status"]} (53)
2020.10.13 11:49:35 5: staubi: send 21310060000000001400dd9c000118050fe5d29dfaf675725c36c3f947e6e8e627987d4193814bc7984e21475f266bc7dca3cd396a93aeefe6fc3c3a8f389d78d5ea5019ead358bf91e07aba042e1425c5651c5ef3a3fe2de077c0e1647f882c
2020.10.13 11:49:35 5: staubi Send SUCCESS
2020.10.13 11:49:35 5: staubi > 21310060000000001400dd9c000118050fe5d29dfaf675725c36c3f947e6e8e627987d4193814bc7984e21475f266bc7dca3cd396a93aeefe6fc3c3a8f389d78d5ea5019ead358bf91e07aba042e1425c5651c5ef3a3fe2de077c0e1647f882c
2020.10.13 11:49:36 5: staubi < 21310070000000001400dd9c000118055a90163ac5e9458af4d82f0c0bd3e77f81c125b030b71155d35683273fa4307025b2834892bac65efc295b3ea137736ed19a47be3b2df4054f428829ecbd67be8d0e9cad351221b201413ce755c237e20a7f49162c3012868a28b3936c51c6b2 (112)
2020.10.13 11:49:36 5: staubi: decrypted
{"id":79,"error":{"code":-9999,"message":"undefined command"},"exe_time":200}
2020.10.13 11:49:36 5: staubi: parse id 79
$VAR1 = {
'exe_time' => 200,
'id' => 79,
'error' => {
'message' => 'undefinedcommand',
'code' => -9999
}
};
2020.10.13 11:49:36 4: staubi: parse id 79 / get_status
2020.10.13 11:49:36 4: staubi: msg ref is
Edit:
Nachdem ich noch ein bisschen weiter recherchiert habe und auch mit python-miio experimentiert habe, muss man im Moment wohl festhalten, dass die Nicht-Roborock-Devices (noch) nicht unterstützt werden. Falls mir aber jemand verrät, was ich testen/mitschneiden soll, mache ich das gerne.
Hallo Zusammen,
bin auch stolzer Besitzer eine S5 Max seit einigen Tagen. Konnte ihn auch erfolgreich in fhem einbinden und habe auch schon so einiges automatisiert. Jetzt frage ich mich aber, wie man den Staubbehälterfüllstand abfragen kann, damit er automatisch zu meinem Mülleimer fährt. Könnt ihr mir verraten welche Reading das ist? Danke Euch.
Zitat von: columbine am 14 Oktober 2020, 16:14:42
Hallo Zusammen,
bin auch stolzer Besitzer eine S5 Max seit einigen Tagen. Konnte ihn auch erfolgreich in fhem einbinden und habe auch schon so einiges automatisiert. Jetzt frage ich mich aber, wie man den Staubbehälterfüllstand abfragen kann, damit er automatisch zu meinem Mülleimer fährt. Könnt ihr mir verraten welche Reading das ist? Danke Euch.
Das wuensche ich mir auch :) Leider gibt es kein Reading, nur ein Event "bin_full". Man muss also auf das Event reagieren. Ich habe aber noch keine Loesung gefunden, dass er erst NACH der Reinigung zum Muelleimer faehrt. Wenn man auf das Event reagiert, faehrt er sonst gleich zum Muelleimer.
Ein Reading beim Sauger setzen, wenn das bin_full kommt.
Bei Reinigungsende prüden, ob Reading gesetzt.
Zum Mülleimer fahren (lassen) und Reading zurücksetzen...
Hmmm, muss direkt mal sehen, ob es den Event auch beim V1 gibt...
Aktuell zähle ich die Reinigungen und schicke dann nach X Reinigungen eine Telegram Nachricht: Behälter leeren...
(X ist ein eigenes Attribut und wird/wurde "getuned" und passt ganz gut ;) )
Gruß, Joachim
Zitat von: MadMax-FHEM am 14 Oktober 2020, 18:42:18
Ein Reading beim Sauger setzen, wenn das bin_full kommt.
Bei Reinigungsende prüden, ob Reading gesetzt.
Zum Mülleimer fahren (lassen) und Reading zurücksetzen...
Hmmm, muss direkt mal sehen, ob es den Event auch beim V1 gibt...
Aktuell zähle ich die Reinigungen und schicke dann nach X Reinigungen eine Telegram Nachricht: Behälter leeren...
(X ist ein eigenes Attribut und wird/wurde "getuned" und passt ganz gut ;) )
Gruß, Joachim
Danke euch beiden erstmal.
Joachim mega Idee, kannst du evtl. uns den Code dafür zur Verfügung stellen? Oder mal auf die schnelle Deine Idee in Code umwandeln? Ich weiß ist viel verlangt aber ich wäre Dir sehr dankbar. Danke dir!
Den Code habe ich ja nicht... ;)
Aber im Prinzip doch recht einfach...
Postet doch mal das notify auf bin_full und auf "cleaning finished", dann kann ich "ergänzen"...
Aber wie geschrieben, kein Hexenwerk...
Im notify auf bin_full: setreading $NAME myBinFull yes
Und im notify auf "cleaning finished": if(ReadingsVal($NAME, "myBinFull", "n.a.") eq "yes"){fhem("set $NAME gotoMuellEimer; setreading $NAME myBinFull no")}
Evtl. müssen vor die setreading sleeps und je nachdem wo/wie eingegeben wird auch Strichpunkte verdoppelt werden (meine Vorschläge sind für eine Sub in myUtils)...
Vermutlich geht auch statt 2 notify (wobei man die beiden notify auch auf eins reduzieren kann/könnte) ein DOIF "basteln"...
Nutze aber kein DOIF, daher bin ich da raus...
EDIT: oder meintest du den Code mit eigenem Attribut? Da kommt aber einiges dazu, weil ich in der Routine vor/nach dem Reinigen noch einiges mehr prüfe. V.a. beim V2 mit Wischfunktion... ;)
Gruß, Joachim
Sehr coole Idee Joachim, irgendwie hatte ich da einen Knoten in meinen Gedanken :D
Ich habe nun folgendes versucht mit 2 DOIFs (walle = XiaomiVacuum, d_walle.emptydustbin = dummy fuer manuelles Ausleeren)
define DI_binfull DOIF ([walle:event] eq "bin_full)
(setreading walle bin_full 1)
define DI_emptybin DOIF (([walle:bin_full] eq "1" and [walle:in_cleaning] eq "no") or [d_walle.emptydustbin:"on"])
(set walle cleaning_mode quiet)
((set walle goto 30000,26400))
(setreading walle bin_full 0)
Zitat von: MadMax-FHEM am 14 Oktober 2020, 20:11:58
Den Code habe ich ja nicht... ;)
Aber im Prinzip doch recht einfach...
Postet doch mal das notify auf bin_full und auf "cleaning finished", dann kann ich "ergänzen"...
Aber wie geschrieben, kein Hexenwerk...
Im notify auf bin_full: setreading $NAME myBinFull yes
Und im notify auf "cleaning finished": if(ReadingsVal($NAME, "myBinFull", "n.a.") eq "yes"){fhem("set $NAME gotoMuellEimer; setreading $NAME myBinFull no")}
Evtl. müssen vor die setreading sleeps und je nachdem wo/wie eingegeben wird auch Strichpunkte verdoppelt werden (meine Vorschläge sind für eine Sub in myUtils)...
Vermutlich geht auch statt 2 notify (wobei man die beiden notify auch auf eins reduzieren kann/könnte) ein DOIF "basteln"...
Nutze aber kein DOIF, daher bin ich da raus...
EDIT: oder meintest du den Code mit eigenem Attribut? Da kommt aber einiges dazu, weil ich in der Routine vor/nach dem Reinigen noch einiges mehr prüfe. V.a. beim V2 mit Wischfunktion... ;)
Gruß, Joachim
Danke Joachim, ich habe noch keine notifys werde aber im laufe des Tages welche erstellen. Eine Frage habe ich aber noch. Gibt es eine Meldung sobald man den Behälter entnimmt und wieder einsetzt? Stelle mir das so vor, dass sobald ich den Behälter entleert habe fährt der Sauger dann wieder zur Dockingstation.
Danke euch ihr habt mir sehr geholfen bisher.
Habe ja noch nicht mal was vom bin_full gewusst... ;)
Habe noch keinen bin_removed/bin_installed gesehen...
Da ich mir eh eine Meldung per Telegram schicke (ich muss ja eh aktiv werden und leeren), schicke ich gleich ein "Kommando" mit.
Da klicke ich dann drauf (nachdem ich geleert habe) und setze so zurück (und könnte den Sauger auch gleich zurück schicken / allerdings hole ich den Behälter ab)...
Gruß, Joachim
Wenn man den Sauger (unserer heißt "SauBaer" :D )auf der Stelle treten läßt, z.B. so:
fhem "set SauBaer volume 0;; define tmp_time1 at +00:00:03 set SauBaer remotecontrol start;; set SauBaer remotecontrol stop";;\
erfolgt nach Entnahme des Behälters ein "Error". Den Zustand könnte man weiter auswerten, z.B. in einem notify.
Ja du hast recht, eigentlich ist es egal ob er erkennt das der Behälter geleert wurde. Man drückt einfach auf das Haus nachdem man den Behälter entleert hat und er fährt von alleine zur Dockingstation.
Zitat von: RappaSan am 15 Oktober 2020, 12:08:40
Wenn man den Sauger (unserer heißt "SauBaer" :D )auf der Stelle treten läßt, z.B. so:
fhem "set SauBaer volume 0;; define tmp_time1 at +00:00:03 set SauBaer remotecontrol start;; set SauBaer remotecontrol stop";;\
erfolgt nach Entnahme des Behälters ein "Error". Den Zustand könnte man weiter auswerten, z.B. in einem notify.
Welcher error kommt den dann?
Einfach "Error"...
Versuch macht kluch.
($EVENT eq "Error")
Ich hab folgendes notify, das auf die events reagiert:
define Notify.SauBaer notify SauBaer
{
if ($EVENT eq "disconnected")
{
fhem "set SauBaer reconnect";
}
if (($EVENT eq "Cleaning") || ($EVENT eq "Zoned Clean"))
{
fhem "set WasUsed Ja";
}
if (((Value "WasUsed") eq "Entladen") && (($EVENT eq "Charging") || ($EVENT eq "Docked")))
{
fhem "set WasUsed WaitForEntladen; set SauBaer goto Entladen; set Sonos_Wohnzimmer Speak 40 de SauBär war fleissig, bitte leeren.";
}
if (((Value "WasUsed") eq "WaitForEntladen") && ($EVENT eq "Error"))
{
fhem "set SauBaer remotecontrol stop; set WasUsed Geleert; set Sonos_Wohnzimmer Speak 40 de SauBär wechselt die Windel.";
}
if (((Value "WasUsed") eq "Geleert") && (($EVENT eq "Paused") || ($EVENT eq "Waiting")))
{
#set SauBaer stop;
fhem "set SauBaer volume 50; set WasUsed Nein; set Sonos_Wohnzimmer Speak 40 de SauBär ist jetzt müde und macht Heia.; set SauBaer charge";
}
if ((Value "WasUsed") eq "WaitForEntladen")
{
#Wait-loop, provoziert Error bei Entnahme von Staubbehälter
fhem "set SauBaer volume 0; define tmp_time1 at +00:00:03 set SauBaer remotecontrol start; set SauBaer remotecontrol stop";
}
}
Vielleicht ist das ja etwas verständlicher. :)
Zitat von: RappaSan am 15 Oktober 2020, 13:40:50
Ich hab folgendes notify, das auf die events reagiert:
define Notify.SauBaer notify SauBaer
{
if ($EVENT eq "disconnected")
{
fhem "set SauBaer reconnect";
}
if (($EVENT eq "Cleaning") || ($EVENT eq "Zoned Clean"))
{
fhem "set WasUsed Ja";
}
if (((Value "WasUsed") eq "Entladen") && (($EVENT eq "Charging") || ($EVENT eq "Docked")))
{
fhem "set WasUsed WaitForEntladen; set SauBaer goto Entladen; set Sonos_Wohnzimmer Speak 40 de SauBär war fleissig, bitte leeren.";
}
if (((Value "WasUsed") eq "WaitForEntladen") && ($EVENT eq "Error"))
{
fhem "set SauBaer remotecontrol stop; set WasUsed Geleert; set Sonos_Wohnzimmer Speak 40 de SauBär wechselt die Windel.";
}
if (((Value "WasUsed") eq "Geleert") && (($EVENT eq "Paused") || ($EVENT eq "Waiting")))
{
#set SauBaer stop;
fhem "set SauBaer volume 50; set WasUsed Nein; set Sonos_Wohnzimmer Speak 40 de SauBär ist jetzt müde und macht Heia.; set SauBaer charge";
}
if ((Value "WasUsed") eq "WaitForEntladen")
{
#Wait-loop, provoziert Error bei Entnahme von Staubbehälter
fhem "set SauBaer volume 0; define tmp_time1 at +00:00:03 set SauBaer remotecontrol start; set SauBaer remotecontrol stop";
}
}
Vielleicht ist das ja etwas verständlicher. :)
Danke dir, würde das gerne nutzten, aber was ist WasUsed?
:)
Eine dummy-variable:
define WasUsed dummy
attr WasUsed setList Ja Nein Entladen WaitForEntladen Geleert
Zitat von: RappaSan am 16 Oktober 2020, 08:45:30
:)
Eine dummy-variable:
define WasUsed dummy
attr WasUsed setList Ja Nein Entladen WaitForEntladen Geleert
Danke dir, aber welches Ereignis setzt den Status auf WasUsed Entladen?
Edit: Falls jemand es benötigt habe ich hier meine Configs:
Ich lasse mir auf Telegram verschiedene Nachrichten schicken u.a.wenn er fertig mit der Reinigung ist wie lange, wieviel m2 und wieviel Akku er verbraucht hat. Zusätzlich lasse ich mir nach jeder Reinigung einen Wartungsbericht schicken und sobald er auflädt und voll geladen ist, aber seht selbst, ich hoffe ihr könnt was damit anfangen! Mein Sauger kann ich auch mit Alexa steuern und habe das mit der HA-Bridge realisiert. Z.B: Alexa, starte Wohnzimmerreinigung. HA-Bridge sendet den Namen des Zimmers und ein start webcmd(http://192.168.1.48:8083/fhem?cmd.vacuum=setreading%20vacuum%20segment_zimmer%20Wohnzimmer und http://192.168.1.48:8083/fhem?cmd.vacuum=set%20vacuum%20segment%2017) an fhem mit dem segment welches er reinigen soll. Stoppen tue ich das ganze dann mit Alexa, beende Reinigung. Hab noch ein dummy erstellt damit nur 1 x am Tag bei Abwesenheit gesaugt wird, der um 0 Uhr zurückgesetzt wird. Gibt bestimmt bessere Lösungen, aber ich bin nur ein Laie deshalb bitte nicht aufregen oder dergleichen. Danke!
userReadings:
last_clean_time_zeit {my $hours=ReadingsNum($NAME,"last_clean_time",0); my $h=int($hours); my $m=int(($hours - $h)*60); $m="0".$m if ($m=~/^\d$/); "$h Stunden $m Minuten"},
total_clean_time_zeit {my $hours=ReadingsNum($NAME,"total_clean_time",0); my $h=int($hours); my $m=int(($hours - $h)*60); $m="0".$m if ($m=~/^\d$/); "$h Stunden $m Minuten"},
consumables_filter_verbraucht {my $zahl1=ReadingsNum($NAME,"consumables_filter",0); my $zahl2=100; $zahl2-$zahl1 . ""},
consumables_main_brush_verbraucht {my $zahl3=ReadingsNum($NAME,"consumables_main_brush",0); my $zahl4=100; $zahl4-$zahl3 . ""},
consumables_sensors_verbraucht {my $zahl5=ReadingsNum($NAME,"consumables_sensors",0); my $zahl6=100; $zahl6-$zahl5 . ""},
consumables_side_brush_verbraucht {my $zahl7=ReadingsNum($NAME,"consumables_side_brush",0); my $zahl8=100; $zahl8-$zahl7 . ""},
consumables_filter_zeit {my $zahl9=ReadingsNum($NAME,"consumables_filter",0); my $zahl10=150; $zahl9/100*$zahl10 . ""},
consumables_main_brush_zeit {my $zahl3=ReadingsNum($NAME,"consumables_main_brush",0); my $zahl4=300; $zahl4/100*$zahl3 . ""},
consumables_sensors_zeit {my $zahl5=ReadingsNum($NAME,"consumables_sensors",0); my $zahl6=30; $zahl6/100*$zahl5 . ""},
consumables_side_brush_zeit {my $zahl7=ReadingsNum($NAME,"consumables_side_brush",0); my $zahl8=200; $zahl8/100*$zahl7 . ""},
batteryPercent_verbraucht {my $zahl19=ReadingsNum($NAME,"batteryPercent_start",0); my $zahl20=ReadingsNum($NAME,"batteryPercent",0); $zahl19-$zahl20 . ""}
notify:
vacuum
{
if ($EVENT eq "Charging")
{
fhem "set teleBot msg @#SmartHome Sauger wird aufgeladen. \n\nAktueller Ladestand:\n- [vacuum:batteryPercent]%\nBatterie-Status:\n- [vacuum:batteryState]";
}
if ($EVENT eq "Docked")
{
fhem "set teleBot msg @#SmartHome Sauger ist zu [vacuum:batteryPercent]% aufgeladen.";
}
if ($EVENT eq "Paused")
{
fhem "set teleBot msg @#SmartHome Sauger macht eine Pause.";
}
if ($EVENT eq "Cleaning")
{
fhem "set teleBot msg @#SmartHome Sauger reinigt die Wohnung.";
fhem "setreading vacuum batteryPercent_start [vacuum:batteryPercent]";
}
if ($EVENT eq "Segment Clean")
{
fhem "set teleBot msg @#SmartHome Sauger reinigt [vacuum:segment_zimmer].";
fhem "setreading vacuum batteryPercent_start [vacuum:batteryPercent]";
}
if ($EVENT eq "Dock problem")
{
fhem "set teleBot msg @#SmartHome Sauger hat ein Problem an der Dockingstation.";
}
if ($EVENT eq "Device offline")
{
fhem "set teleBot msg @#SmartHome Sauger ist offline.";
}
if ($EVENT eq "Starting up")
{
fhem "set teleBot msg @#SmartHome Sauger startet.";
}
if ($EVENT eq "Sleeping")
{
fhem "set teleBot msg @#SmartHome Sauger geht schlafen.";
}
if ($EVENT eq "Waiting")
{
fhem "set teleBot msg @#SmartHome Sauger wartet auf Instruktionen.";
}
if ($EVENT eq "Remote control")
{
fhem "set teleBot msg @#SmartHome Sauger Remote.";
}
if ($EVENT eq "Returning to base")
{
fhem "set teleBot msg @#SmartHome Sauger ist fertig und fährt zurück zur Dockingstation. \n\nLetzte Reinigung:\n- [vacuum:last_clean_area] m² \n- [vacuum:last_clean_time_zeit]\n- [vacuum:batteryPercent_verbraucht]% Batterie verbraucht\n\nGesamtreinigung:\n- [vacuum:total_clean_area] m²\n- [vacuum:total_clean_time_zeit]\n- [vacuum:total_cleans] Reinigungen";
fhem "set teleBot msg @#SmartHome Sauger Wartungsbericht:\n\nFilter:\n- [vacuum:consumables_filter_verbraucht]% verbraucht\n- [vacuum:consumables_filter]% verbleibend\n- [vacuum:consumables_filter_zeit] Stunden verbleibend\n\nHauptbürste:\n- [vacuum:consumables_main_brush_verbraucht]% verbraucht\n- [vacuum:consumables_main_brush]% verbleibend\n- [vacuum:consumables_main_brush_zeit] Stunden verbleibend\n\nSeitenbürste:\n- [vacuum:consumables_side_brush_verbraucht]% verbraucht\n- [vacuum:consumables_side_brush]% verbleibend\n- [vacuum:consumables_side_brush_zeit] Stunden verbleibend\n\nSensoren:\n -[vacuum:consumables_sensors_verbraucht]% verbraucht\n -[vacuum:consumables_sensors]% verbleibend\n- [vacuum:consumables_sensors_zeit] Stunden verbleibend";
}
if ($EVENT eq "Charging problem")
{
fhem "set teleBot msg @#SmartHome Sauger wird nicht aufgeladen.";
}
if ($EVENT eq "Shutting down")
{
fhem "set teleBot msg @#SmartHome Sauger schaltet sich aus.";
}
if ($EVENT eq "Software update")
{
fhem "set teleBot msg @#SmartHome Sauger erhält ein Software Update.";
}
if ($EVENT eq "Unknown")
{
fhem "set teleBot msg @#SmartHome Sauger hat ein ubekanntes Problem.";
}
if ($EVENT eq "Manual mode")
{
fhem "set teleBot msg @#SmartHome Sauger Manual mode.";
}
if ($EVENT eq "Spot cleaning")
{
fhem "set teleBot msg @#SmartHome Sauger Spot cleaning.";
fhem "setreading vacuum batteryPercent_start [vacuum:batteryPercent]";
}
if ($EVENT eq "Malfunction")
{
fhem "set teleBot msg @#SmartHome Sauger Malfunction.";
}
if ($EVENT eq "Goto")
{
fhem "set teleBot msg @#SmartHome Sauger fährt zum angegebenen Ziel.";
}
if ($EVENT eq "Fully Charged")
{
fhem "set teleBot msg @#SmartHome Sauger ist zu [vacuum:batteryPercent]% aufgeladen.";
}
if ($EVENT eq "Error")
{
fhem "set teleBot msg @#SmartHome Sauger hat ein Problem.";
}
if ($EVENT eq "Zoned Clean")
{
fhem "set teleBot msg @#SmartHome Sauger reinigt eine Zone.";
fhem "setreading vacuum batteryPercentstart [vacuum:batteryPercent]";
}
if ((Value "consumables_filter") eq "20")
{
fhem "set teleBot msg @#SmartHome Sauger Filter muss gereinigt werden.";
}
if ((Value "consumables_main_brush") eq "20")
{
fhem "set teleBot msg @#SmartHome Sauger die Hauptbürste muss ausgetauscht werden.";
}
if ((Value "consumables_sensors") eq "20")
{
fhem "set teleBot msg @#SmartHome Sauger Sensoren müssen gereinigt werden.";
}
if ((Value "consumables_side_brush") eq "20")
{
fhem "set teleBot msg @#SmartHome Sauger die Seitenbürste muss getauscht werden.";
}
}
vacuum
{
if ((Value "error_code") eq "Laser sensor fault")
{
fhem "set teleBot msg @#SmartHome Sauger hat ein Lasersensorfehler.";
}
if ((Value "error_code") eq "Collision sensor fault")
{
fhem "set teleBot msg @#SmartHome Sauger hat ein Kollisionssensorfehler.";
}
if ((Value "error_code") eq "Wheel floating")
{
fhem "set teleBot msg @#SmartHome Die Räder beim Sauger drehen durch.";
}
if ((Value "error_code") eq "Cliff sensor fault")
{
fhem "set teleBot msg @#SmartHome Sauger hat ein Kollisionssensorfehler."
}
if ((Value "error_code") eq "Main brush blocked")
{
fhem "set teleBot msg @#SmartHome Beim Sauger ist die Hauptbürste blockiert.";
}
if ((Value "error_code") eq "Side brush blocked")
{
fhem "set teleBot msg @#SmartHome Beim Sauger ist die Seitenbürste blockiert.";
}
if ((Value "error_code") eq "Wheel blocked")
{
fhem "set teleBot msg @#SmartHome Beim Sauger sind die Räder blockiert.";
}
if ((Value "error_code") eq "Device stuck")
{
fhem "set teleBot msg @#SmartHome Sauger ist eingeklemmt oder steckt fest.";
}
if ((Value "error_code") eq "Dust bin missing")
{
fhem "set teleBot msg @#SmartHome Beim Sauger wurde der Staubbehälter entfernt oder fehlt.";
}
if ((Value "error_code") eq "Filter blocked")
{
fhem "set teleBot msg @#SmartHome Beim Sauger ist der Filter blockiert";
}
if ((Value "error_code") eq "Magnetic field detected")
{
fhem "set teleBot msg @#SmartHome Beim Sauger wurde ein Magnetfeld erkannt.";
}
if ((Value "error_code") eq "Low battery")
{
fhem "set teleBot msg @#SmartHome Sauger hat wenig Batterie.";
}
if ((Value "error_code") eq "Charging problem")
{
fhem "set teleBot msg @#SmartHome Sauger hat ein Ladeproblem.";
}
if ((Value "error_code") eq "Battery failure")
{
fhem "set teleBot msg @#SmartHome Beim Sauger fehlt die Batterie.";
}
if ((Value "error_code") eq "Wall sensor fault")
{
fhem "set teleBot msg @#SmartHome Sauger hat ein Wandsensorfehler.";
}
if ((Value "error_code") eq "Uneven surface")
{
fhem "set teleBot msg @#SmartHome Sauger hat eine unebene Oberfläche.";
}
if ((Value "error_code") eq "Spot cleaning")
{
fhem "set teleBot msg @#SmartHome Sauger Spot cleaning.";
}
if ((Value "error_code") eq "Side brush failure")
{
fhem "set teleBot msg @#SmartHome Beim Sauger fehlt die Seitenbürste.";
}
if ((Value "error_code") eq "Suction fan failure")
{
fhem "set teleBot msg @#SmartHome Sauger Ausfall des Sauggebläses."
}
if ((Value "error_code") eq "Unpowered charging station")
{
fhem "set teleBot msg @#SmartHome Sauger Ladestation ohne Stromversorgung.";
}
if ((Value "error_code") eq "Unknown")
{
fhem "set teleBot msg @#SmartHome Sauger hat ein ubekanntes Problem.";
}
if ((Value "error_code") eq "Laser pressure sensor problem")
{
fhem "set teleBot msg @#SmartHome Sauger hat ein Laserdrucksensor Problem.";
}
if ((Value "error_code") eq "Charge sensor problem")
{
fhem "set teleBot msg @#SmartHome Sauger hat Problem mit dem Ladungssensor.";
}
if ((Value "error_code") eq "Docking problem")
{
fhem "set teleBot msg @#SmartHome Sauger Docking Problem.";
}
if ((Value "error_code") eq "Exclusion zone")
{
fhem "set teleBot msg @#SmartHome Sauger Speerzone.";
}
if ((Value "error_code") eq "Bin full")
{
fhem "set teleBot msg @#SmartHome Staubbehälter vom Sauger ist voll, bitte entleeren.";
}
if ((Value "error_code") eq "Internal error")
{
fhem "set teleBot msg @#SmartHome Sauger hat einen internen Fehler.";
}
}
vacuum
{
if ((Value "error_code") eq "Device stuck")
{
fhem "set vacuum start; sleep 100; set vacuum start";
}
}
vacuum
{
if ($EVENT eq "disconnected")
{
fhem "set vacuum reconnect";
}
if (((Value "event") eq "bin_full") && ((Value "in_cleaning") eq "no"))
{
fhem "set WasUsed Entladen";
}
if (($EVENT eq "Cleaning") || ($EVENT eq "Zoned Clean") || ($EVENT eq "Segment Clean"))
{
fhem "set WasUsed Ja";
}
if (((Value "WasUsed") eq "Entladen") && (($EVENT eq "Charging") || ($EVENT eq "Docked")))
{
fhem "set WasUsed WaitForEntladen; set vacuum goto Entladen";
}
if (((Value "WasUsed") eq "WaitForEntladen") && ($EVENT eq "Error"))
{
fhem "set vacuum remotecontrol stop; set WasUsed Geleert";
}
if (((Value "WasUsed") eq "Geleert") && (($EVENT eq "Paused") || ($EVENT eq "Waiting")))
{
#set vacuum stop;
fhem "set vacuum volume 50; set WasUsed Nein; set vacuum charge";
}
if ((Value "WasUsed") eq "WaitForEntladen")
{
#Wait-loop, provoziert Error bei Entnahme von Staubbehälter
fhem "
set SaugRoboter fan_power 1;
sleep 1;
define tmp_time1 at +00:00:03 set vacuum remotecontrol start;
sleep 8;
set SaugRoboter move 0 50 5000;
sleep 6;
set SaugRoboter move 10 0 0;
sleep 6;
set SaugRoboter move 0 50 5000;
sleep 5;
set vacuum remotecontrol stop"
}
}
doif:
([Anwesenheit] eq "absent" and [vacuum_anzahl_reinigung] eq "0")
(
set vacuum start;
set vacuum_anzahl_reinigung 1
)
DOELSEIF ([Anwesenheit] eq "present" and [vacuum] eq "Cleaning")
(
set vacuum pause
)
DOELSEIF ([20:00] and [vacuum] eq "Paused" or [vacuum] eq "Waiting" or [vacuum] eq "Sleeping")
(
set vacuum charge
)
Hallo columbine.
Das macht ein weiteres notify, das auf unsere Anwesenheit reagiert, abhängig davon ob mehr als 15 m² gesaugt wurden:
define GoToEntladen notify Phone1:presence:.present|Phone2:presence:.present {\
if ((ReadingsNum("SauBaer","last_clean_area",0)) < 15) {\
fhem "set WasUsed Nein";;\
}\
\
if ((Value "WasUsed") eq "Ja") {\
fhem "set WasUsed Entladen";;\
}\
}
Der code ist nicht vollständig hier abgebildet, es gibt noch diverse notifys und einen Weekdaytimer. Er ist für unsere Bedürfnisse sehr spezifisch ausgelegt und sollte nur als Denkanstoß dienen.
Moin Markus,
ich habe heute meinen neuen Xiaomi Fan mit der Bezeichnung "ZLXHS01ZM" (Modell: zhimi.fan.fa1) ausgepackt und mit deinem Modul getestet.
Den Token habe ich ausgelesen und das Device wie folgt angelegt:
Internals:
DEF 192.168.xxx.xx xxxxxxxxxxxxxxxxxxx
FD 31
FUUID 5f901b2c-f33f-5a17-69e0-d0f495347443c8cd
NAME wz_Bodenventilator
NR 1196
STATE ???
TYPE XiaomiDevice
hardware esp8266
mac 64:90:C1:AC:55:D3
mcu_firmware 0016
model zhimi.fan.fa1
token xxxxxxxxxxxxxxxxxxx
wifi_firmware 2709610
READINGS:
2020-10-21 13:36:57 angle 90
2020-10-21 13:37:59 angle_enable off
2020-10-21 13:37:59 buzzer on
2020-10-21 13:37:12 device_firmware 2.1.0
2020-10-21 13:37:12 device_uptime 1.91
2020-10-21 13:37:59 error none
2020-10-21 13:37:59 level 3
2020-10-21 13:37:59 mode sleep
2020-10-21 13:37:59 power off
2020-10-21 13:37:59 timed_off 1
2020-10-21 13:37:12 wifi_rssi -62
helper:
ConnectionState connected
crypt AES
delay 60
dev 0e7f
id 2753
ip 192.168.xxx.xx
last_read 1603280279
packetid 36
port 54321
sequence 1603273358
token xxxxxxxxxxxxxxxxxxx
packet:
33 wifi_stats
34 power_off
35 fan_data_1C
Attributes:
DbLogExclude .*
room Ventilator
subType SmartFan1C
Ich habe div. subTypen durchprobiert, natürlich funktioniert keiner zu 100% auf anhieb.
Ich möchte gerne dabei helfen, dass das Gerät unterstützt wird.
Nun ist die Frage, hast du Lust / Zeit dein Modul zu erweitern oder soll ich mich eigenständig daran versuchen?
Folgende Funktionen unterstützt das Gerät:
- On / Off
- Level: 1-5 (per Tasten am Gerät)
- Speed adjustment: 1-100
- Mode: Standard / Natural
- Oscillating adjustment: Oscillate, Face forward, Stop
- Left-right oscilllating: Turn left, Face forward, Turn right
- Up-down oscallating: Turn up, Face forward, Turn down
- Timer: 1-8hours
- Light: On / Off
- Notification Sound: On / Off
- Parental controols: On / Off
Was bisher schon funktioniert unter dem subType "SmartFan1C":
- On / Off
- Notification Sound: On / Off
- Level: 1-3 (es fehlt die Erweiterung für Stufe 4 und 5)
get wz_Bodenventilator data
ergibt folgendes:
2020.10.21 14:00:59 4: wz_Bodenventilator: write {"id":73,"method":"get_properties","params":[{"did": "power", "siid": 2, "piid": 1}, {"did": "level", "siid": 2, "piid": 2}, {"did": "mode", "siid": 2, "piid": 7}, {"did": "led", "siid": 2, "piid": 12}, {"did": "buzzer", "siid": 2, "piid": 11}, {"did": "angle_enable", "siid": 2, "piid": 3}, {"did": "child_lock", "siid": 3, "piid": 1}, {"did": "timed_off", "siid": 2, "piid": 10}]} (382)
2020.10.21 14:00:59 5: wz_Bodenventilator: send 213101a0000000000e7f27530000206d3ada63870eab5395a7aea6ae88a566c130bcb52e4f2c6ff71298e1e9cb33e6b6e722264607d9b8d25a81f8446566e5058670dae650dcd2992515f2c4c56c2d2d5c2a4140aa74c9c2a5e4b4a97db903826f42312c72ca4cfaae10be8392d0e21961c0efe9ad5b65a3d7b960c23afce27f1824199aa206c8213bbe2069bf63d06ad3ea103e00e73e701c563c7f3137634c2f5fdd5118b27fc322a3a515f79ae64ef0938b0f1c3e485785569f879d2c05f64d3b5131c839b6c11b7ffdf06875203bd58b8f1de65a8eea720d2c609f8776704659c7acb150a3f79d57564023f54420e794cfcf11cca40e1627cbdfaada436f5df5536dd16b125d2ba2873481e8a0393fc3e7fd843a00eae1295a0dd2e88207b42fbe4f8231671086ec6dddc7c73a204527d6f414c497d3dc540489898f7292fd523e1a007fed35ef60c3a1c2418ea89bf1d99b4e225b403d0f75fc132e969a76028c8cde4c8b503082a67fbd64de1f6f89e052645e314d362b790cf4e06d7c5c03aa6f064fd57d1dfbf9c84704ef3e041584ff553ea2325a882bb7e5033764
2020.10.21 14:00:59 5: wz_Bodenventilator Send SUCCESS
2020.10.21 14:00:59 5: wz_Bodenventilator > 213101a0000000000e7f27530000206d3ada63870eab5395a7aea6ae88a566c130bcb52e4f2c6ff71298e1e9cb33e6b6e722264607d9b8d25a81f8446566e5058670dae650dcd2992515f2c4c56c2d2d5c2a4140aa74c9c2a5e4b4a97db903826f42312c72ca4cfaae10be8392d0e21961c0efe9ad5b65a3d7b960c23afce27f1824199aa206c8213bbe2069bf63d06ad3ea103e00e73e701c563c7f3137634c2f5fdd5118b27fc322a3a515f79ae64ef0938b0f1c3e485785569f879d2c05f64d3b5131c839b6c11b7ffdf06875203bd58b8f1de65a8eea720d2c609f8776704659c7acb150a3f79d57564023f54420e794cfcf11cca40e1627cbdfaada436f5df5536dd16b125d2ba2873481e8a0393fc3e7fd843a00eae1295a0dd2e88207b42fbe4f8231671086ec6dddc7c73a204527d6f414c497d3dc540489898f7292fd523e1a007fed35ef60c3a1c2418ea89bf1d99b4e225b403d0f75fc132e969a76028c8cde4c8b503082a67fbd64de1f6f89e052645e314d362b790cf4e06d7c5c03aa6f064fd57d1dfbf9c84704ef3e041584ff553ea2325a882bb7e5033764
2020.10.21 14:00:59 5: wz_Bodenventilator < 21310200000000000e7f27530000206d84971309ebc109c7224c6fd6434afbacc4b8ec4535954bd5a89d1e6ff323e3c4fd10f58fa0bf5557e9b1cb2eaa299f7f0c890971a502fecca04e96f63a808de1e84ddb9262c3597a658ea9118bca8b0b7d508fa918675d9e026ba665348dc453cb5a3efa68c29f9f8b8d82d68b9979d65e4e60d6c8dfc7357dcba8f293a13685b196b74738cda762cab78096885dcdcf76d7fcf6d8c9cd58745c33ed43a86d24767581430068216fd25235d76e9f821f0878aac3c2a8fe5c2977ad39db81818fad9a614dcfde6e68bd9a08033454a49229242761b4bf48065fce5b84a51539a6b384f925c35ea94c00ac7f6b3b9d701533a307bca2f51dd56d9fcd86c3b86ed7381be66f2bb5730554ee76aba05e16ed85fa2452715d087c0e0dee0302752eabd1ba7e4d0578150b32e2ebe98c1728fa010422cb2c35613ab543b9429225844ff0fa0e4dcc58928ed901ee20d127678423e8bf1c9cb2f8308463635700427021b91f3281d523024eabce5cebaa2bb074765832474827b5d54916b327b9995c5be9d0e24656064b2816b27143161beb505091339a9011119560cad0c48bc78885ca5a1c5287511375fee91b3d6a0f63506ed7c1c49e224caa097e43048993d724f9f4370cd9e0364b3596c2a3ee8c40f4b1736bffd649b9059040e70107520fb25fa7a61e31aa119dd99ebd1e09222ae5 (512)
2020.10.21 14:00:59 5: wz_Bodenventilator: decrypted
{"id":73,"result":[{"did":"power","siid":2,"piid":1,"code":0,"value":false},{"did":"level","siid":2,"piid":2,"code":0,"value":1},{"did":"mode","siid":2,"piid":7,"code":0,"value":1},{"did":"led","siid":2,"piid":12,"code":-4005},{"did":"buzzer","siid":2,"piid":11,"code":0,"value":true},{"did":"angle_enable","siid":2,"piid":3,"code":0,"value":false},{"did":"child_lock","siid":3,"piid":1,"code":-4005},{"did":"timed_off","siid":2,"piid":10,"code":0,"value":1}],"exe_time":130}
2020.10.21 14:00:59 5: wz_Bodenventilator: parse id 73
{
'exe_time' => 130,
'id' => 73,
'result' => [
{
'code' => 0,
'did' => 'power',
'piid' => 1,
'siid' => 2,
'value' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
},
{
'code' => 0,
'did' => 'level',
'piid' => 2,
'siid' => 2,
'value' => 1
},
{
'code' => 0,
'did' => 'mode',
'piid' => 7,
'siid' => 2,
'value' => 1
},
{
'code' => -4005,
'did' => 'led',
'piid' => 12,
'siid' => 2
},
{
'code' => 0,
'did' => 'buzzer',
'piid' => 11,
'siid' => 2,
'value' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
},
{
'code' => 0,
'did' => 'angle_enable',
'piid' => 3,
'siid' => 2,
'value' => $VAR1->{'result'}[0]{'value'}
},
{
'code' => -4005,
'did' => 'child_lock',
'piid' => 1,
'siid' => 3
},
{
'code' => 0,
'did' => 'timed_off',
'piid' => 10,
'siid' => 2,
'value' => 1
}
]
}
2020.10.21 14:00:59 4: wz_Bodenventilator: parse id 73 / fan_data_1C
2020.10.21 14:00:59 4: wz_Bodenventilator: msg ref is ARRAY
get wz_Bodenventilator device_info
ergibt folgendes:
2020.10.21 14:02:19 4: wz_Bodenventilator: write {"id":74,"method":"miIO.info","params":[""]} (44)
2020.10.21 14:02:19 5: wz_Bodenventilator: send 21310050000000000e7f2753000020bd80c157d7a3356a8aefa0ebeae85f7318868633fcd793e15f46c265768486c3798681d06ffe31d9ee8885837b5cfdfd913c5771eea8ef384b6283662bdb68f03c
2020.10.21 14:02:19 5: wz_Bodenventilator Send SUCCESS
2020.10.21 14:02:19 5: wz_Bodenventilator > 21310050000000000e7f2753000020bd80c157d7a3356a8aefa0ebeae85f7318868633fcd793e15f46c265768486c3798681d06ffe31d9ee8885837b5cfdfd913c5771eea8ef384b6283662bdb68f03c
2020.10.21 14:02:19 5: wz_Bodenventilator < 213101e0000000000e7f2753000020bd6ba29d4ffa743368ed5164e5464413a8bc1999c498a2acd9835ebc902ac9aeb4454c48bda494280be4501982a1f5939305b1b1dffffc434bb8afee0f600657608f02b8749dfab9d944509a3b1105b61906542ab33e0ed2f20b22bb34c2762225fd94ae372a31758541ddcf8fc170d02b4e1925069a6bc7c6a36162b14b7c595b2235563b0b072e3dc9d15a28fbae13e2801b4a0775a5ab0846a303683279fa0bc06a0dba4018abe5e1bb7a455cd33fd9a23c85547a059cb5feb956cf68b8f340f872e61f0f674a2004b5b59bcab0213456347724a7b261bae7375a64c135316376cf8a7240a8689ddcb3f2b306a363098f08f33ebceadc72f8107cf85e0cd1f1b43333b2bbdc91a00ce451bd7e692e683fbf60e3aeb4e899ce3686c3627f31fa2e3b3f12b0bf1f3f7e987b242b2e8ae0b44f0de5dc348eac2930c1e127ed7b096707253ae9fd3dbd1e4179f81238de8724a3140d0bed8b289cc9eec1c945410b6028ec04f2469a058c4a1b2231cff44affffc99679ad1ae7cf2ca5c96e5055db7edf5199e961326981383022d2d773bf3f10e2d9adcc04ad4137f17b3b7829a0fc05f419e1f4110234c579ce110fb1ee9760a2d13b33ee62062f9ffa758fe1a67b12b77617ea206dd96fc0699ba67bab (480)
2020.10.21 14:02:19 5: wz_Bodenventilator: decrypted
{"id":74,"result":{"life":8380,"uid":xxxxxxxxxx,"model":"zhimi.fan.fa1","token":"xxxxxxxxxxxxxxxxxxx","ipflag":1,"fw_ver":"2.1.0","mcu_fw_ver":"0016","miio_ver":"0.0.8","hw_ver":"esp8266","mmfree":23912,"mac":"64:90:C1:AC:55:D3","wifi_fw_ver":"2709610","ap":{"ssid":"xxxxx","bssid":"18:E8:29:6A:95:D4","rssi":-66,"primary":11},"netif":{"localIp":"192.168.xxx.xx","mask":"255.xxx.xxx.x","gw":"192.xxx.xxx.x"}},"exe_time":30}
2020.10.21 14:02:19 5: wz_Bodenventilator: parse id 74
{
'exe_time' => 30,
'id' => 74,
'result' => {
'ap' => {
'bssid' => '18:E8:29:6A:95:D4',
'primary' => 11,
'rssi' => -66,
'ssid' => 'xxxxx'
},
'fw_ver' => '2.1.0',
'hw_ver' => 'esp8266',
'ipflag' => 1,
'life' => 8380,
'mac' => '64:90:C1:AC:55:D3',
'mcu_fw_ver' => '0016',
'miio_ver' => '0.0.8',
'mmfree' => 23912,
'model' => 'zhimi.fan.fa1',
'netif' => {
'gw' => '192.xxx.xxx.x',
'localIp' => '192.xxx.xxx.xx',
'mask' => '255.xxx.xxx.x'
},
'token' => 'xxxxxxxxxxxxxxxxxxx',
'uid' => xxxxxxxxx,
'wifi_fw_ver' => '2709610'
}
}
2020.10.21 14:02:19 4: wz_Bodenventilator: parse id 74 / device_info
2020.10.21 14:02:19 4: wz_Bodenventilator: msg ref is HASH
Einige Informationen habe ich durch "xxxx" ersetzt.
Gruß
Mathze
Zitat von: t1me2die am 21 Oktober 2020, 14:10:36
Xiaomi Fan mit der Bezeichnung "ZLXHS01ZM" (Modell: zhimi.fan.fa1)
Folgende Funktionen unterstützt das Gerät:
- On / Off
Level: 1-5 (per Tasten am Gerät) unnötig- Speed adjustment: 1-100
- Mode: Standard / Natural
- Oscillating adjustment: Oscillate, Face forward, Stop ??
- Left-right oscilllating: Turn left, Face forward, Turn right ??
- Up-down oscallating: Turn up, Face forward, Turn down ??
- Timer: 1-8hours
- Light: On / Off
- Notification Sound: On / Off
- Parental controols: On / Off
miot ref: http://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:fan:0000A005:zhimi-fa1:1 (http://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:fan:0000A005:zhimi-fa1:1)
Mach mal Screenshots was genau man da beim Schwenken und Neigen alles setzen/einstellen kann.
Den Rest bitte mal mit der Version im Anhang ausprobieren
Moin Markus, dass ging ja mal fix.
Die neue Version probiere ich Morgen aus, ich gebe Dir Morgen Feedback.
Ich habe Dir mal Screenshots von den Einstellungsmöglichkeiten gemacht, reicht Dir das?
Bisher habe ich lediglich "Turn left", "Turn right", "Turn up" und "Turn down" ausprobiert.
Pro Klick auf die jeweilige Richtung bewegt sich der Rotor um einen kleinen Step in die jeweilige Richtung.
Bei "Oscillate" bewegt sich der Rotor wahrscheinlich eigenständig 3-Dimensional. Bei "Stop" hört er sicherlich auf zu oszillieren.
Ich vermute "Face forward" ist die Grundstellung.
Wenn du möchtest, kann ich die Einstellungen Morgen detailliert testen und beschreiben.
Gruß
Mathze
Reicht nicht ganz.
Zu viele verwirrende Buttons was die Bewegungen jenseits von horizontal und vertikal angeht.
Wenn du Android hast, probier mal bitte das Logging mit der App von hier: https://forum.fhem.de/index.php/topic,73052.msg1085312.html#msg1085312
Zitat von: Markus M. am 21 Oktober 2020, 23:41:29
Reicht nicht ganz.
Zu viele verwirrende Buttons was die Bewegungen jenseits von horizontal und vertikal angeht.
Wenn du Android hast, probier mal bitte das Logging mit der App von hier: https://forum.fhem.de/index.php/topic,73052.msg1085312.html#msg1085312
Und was ist, wenn ich kein Android, sondern leider nur iOS Geräte habe? :-\
Gruß
Mathze
Zitat von: t1me2die am 22 Oktober 2020, 12:01:22
Und was ist, wenn ich kein Android, sondern leider nur iOS Geräte habe? :-\
Mit einem miio client manuell die noch nicht eingepflegten Befehle (die mit dem chinesischen Text) aus der miot Spec durchprobieren und gucken was passiert?
Bekommst du das hin?
Zitat von: Markus M. am 22 Oktober 2020, 12:59:23
Mit einem miio client manuell die noch nicht eingepflegten Befehle (die mit dem chinesischen Text) aus der miot Spec durchprobieren und gucken was passiert?
Bekommst du das hin?
Puh, ich habe einen MEmuplay Android Emulator, ich werde nachher mal probieren die App dort drauf zu installieren / zum laufen zu bekommen.
Bzgl. des "miio client" müsste ich mich erst schlau lesen, davon habe ich bisher noch nichts gehört.
Ich gebe Dir eine Info, ob ich das hinbekomme.
Gruß
Mathze
Zitat von: Markus M. am 21 Oktober 2020, 18:13:38
miot ref: http://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:fan:0000A005:zhimi-fa1:1 (http://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:fan:0000A005:zhimi-fa1:1)
Mach mal Screenshots was genau man da beim Schwenken und Neigen alles setzen/einstellen kann.
Den Rest bitte mal mit der Version im Anhang ausprobieren
So Markus, ich habe deine neue Version vom Modul ausprobiert und ich muss sagen, RESPEKT!
Mit soviel Erfolg habe ich tatsächlich nicht gerechnet.
Ich habe die Ergebnisse zusammengetragen:
Was bereits perfekt funktioniert:
* On / Off
* Level: 1-100
* Buzzer: On / Off
* LED: On / Off
* Mode: Straight / natural
* Child_lock: On / Off
* timed_off: 1-8
Was bereits auch funktioniert, jedoch teilweise im reading nicht geupdatet wird oder "nicht der Erwartung" entspricht (dies ist meine reine subjektive Einschätzung!)
Funktionsbeschreibung:
* tilt_enable: on / off
on = schwenkt den Rotor vertikal
off = stopt das schwenken des Rotors vertikal
* tilt: 15, 30, 45, 60, 75, 90 hat nur Auswirkung, wenn "tilt_enable" = on ist.
Meine Definition von [b]Frontal[/b]:
Siehe Bild: Ausgangspunkt.JPEG
tilt: 90 = schwenkt von Frontal -> bis Frontal gegen die Decke -> sprich 90° -> reading wird auch geupdatet
tilt: 15 = schwenkt genau wie "tilt 90", reading wird nicht geupdatet
tilt: 30 = schwenkt von etwas über Frontal, gefühlt 30° nach oben und zurück -> reading wird nicht geupdatet
tilt: 45 = schwenkt genau wie "tilt 90", reading wird nicht geupdatet
tilt: 60 = schwenkt von Frontal ca. 60° Richtung Decke, im reading steht bei tilt "45"
tilt: 75 = schwenkt genau wie "tilt 90", reading wird nicht geupdatet
* angle_enable = on / off
on = schwenkt den Rotor horizontal
off = stopt das schwenken des Rotors horizontal
* angle: 15, 30, 45, 60, 75, 90, 105, 120 hat nur Auswirkungen, wenn "angle_enable" = on ist.
Meine Definition von [b]Ausgangspunkt[/b]:
Siehe Bild: Ausgangspunkt.JPEG
angle: 15 = schwenkt horizontal den kompletten Weg, reading wird auf "15" geupdatet
angle: 30 = schwenkt horizontal, beginnt ca. 5° links vom Ausgangspunkt und schwenkt ca. 15° nach rechts über den Ausgangspunkt hinaus, reading wird auf "30" geupdatet
angle: 45 = schwenkt horizontal, beginnt ca. 60° links vom Ausgangspunkt und schwenkt ca. 75° nach rechts über den Ausgangspunkt hinaus, reading wird auf "45" geupdatet
angle: 60 = schwenkt horizontal, beginnt ca. 15° links vom Ausgangspunkt und schwenkt ca. 45° nach rechts über den Ausgangspunkt hinaus, reading wird auf "60" geupdatet
angle: 75 = schwenkt horizontal, beginnt ca. 45° links vom Ausgangspunkt und schwenkt ca. 60° nach rechts über den Ausgangspunkt hinaus, reading wird auf "75" geupdatet
angle: 90 = schwenkt horizontal, beginnt ca. 45° links vom Ausgangspunkt und schwenkt ca. 45° nach rechts über den Ausgangspunkt hinaus, reading wird auf "90" geupdatet
angle:105 = schwenkt horizontal, beginnt ca. 60° links vom Ausgangspunkt und schwenkt ca. 75° nach rechts über den Ausgangspunkt hinaus, reading wird auf "105" geupdatet
angle:120 = schwenkt horizontal, beginnt ca. 75° links vom Ausgangspunkt und schwenkt ca. 75° nach rechts über den Ausgangspunkt hinaus, reading wird auf "120" geupdatet
Bis auf paar Kleinigkeiten, würde ich fast sagen, dass war ein Treffer ins Schwarze!
Ich tue mich jedoch relativ schwierig mit dem beschreiben der jeweiligen Winkel, habe mir größte Mühe gegeben.
Wenn ich in der App "Oscillating" anklicke, erscheinen endlich div. Grade und zwar genau das, was ich mit "angle" und mit "tilt" einstellen kann.
Siehe Screenshot: Oscillating.JPEG
angle = Left-right oscillating
tilt = Up-down oscillation
Bei "set Device tilt xx" wird der Wert zwar in der App korrekt geupdatet, jedoch wird das Reading in FHEM nicht immer korrekt aktualisiert.
Der Button: "Face forward" richtet das Gerät so aus, wie auf dem Bild Ausgangspunkt.JPEG und zwar unabhängig, welchen ich von den drei "Face forward" Button in der App drücke, dass Gerät geht immer wieder in diese Stellung zurück.
Wenn man also ganz pingelig ist, fehlen folgende Funktionen:
- Start Oscillate
- Stop Oscillate
- Face forward
- Turn left (horizontal)
- Turn right(horizontal)
- Turn up(vertikal)
- Turn down(vertikal)
Die "Turn" Funktionen gehen Schrittweise, d.h. 1x drücken = ein kleines Stückchen in die jeweilge RIchtung.
Bsp.:
1x Turn left = Rotor bewegt sich gefühlt 5% nach links und verhaart in dieser Position
2x Turn left = Rotor bewegt sich gefühlt 10% nach links und verhaart in dieser Position
...
Und nun ein recht herzliches DANKE für deine schnelle Anpassung!
Gruß
Mathze
PS.: Die russische Mi Home App kann ich leider nicht auf meiner Emulation installieren, eine aussagekräftige Fehlermeldung erhalte ich leider auch nicht.
Eventuell sind nicht alle Werte bei angle/tilt gültig.
Am besten du setzt jeden gültigen Wert mal mit der App und machst dann jeweils ein update im Device - dann siehst du welcher Wert intern gerade aktiv ist.
Und probier mal im Modul bzw. in der FHEM Kommandozeile
set fan json ...
mit folgenden Zeilen und notiere jeweils was passiert - das sind alle noch fehlenden Kommandos, ein paar Parameter sind allerdings geraten.
#left right return
{"id":1234,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 4, "value": true}]}
{"id":1235,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 4, "value": false}]}
#up down return
{"id":1236,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 5, "value": true}]}
{"id":1237,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 5, "value": false}]}
#l/r
{"id":1238,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 6, "value": "left"}]}
{"id":1239,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 6, "value": "right"}]}
#u/d
{"id":1240,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 7, "value": "up"}]}
{"id":1241,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 7, "value": "down"}]}
#one-key-cycle
{"id":1242,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 8, "value": true}]}
{"id":1243,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 8, "value": false}]}
#one-key-back
{"id":1244,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 9, "value": true}]}
{"id":1245,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 9, "value": false}]}
Zitat von: Markus M. am 22 Oktober 2020, 19:31:08
Eventuell sind nicht alle Werte bei angle/tilt gültig.
Am besten du setzt jeden gültigen Wert mal mit der App und machst dann jeweils ein update im Device - dann siehst du welcher Wert intern gerade aktiv ist.
Und probier mal im Modul bzw. in der FHEM Kommandozeile
set fan json ...
mit folgenden Zeilen und notiere jeweils was passiert - das sind alle noch fehlenden Kommandos, ein paar Parameter sind allerdings geraten.
#left right return
{"id":1234,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 4, "value": true}]}
{"id":1235,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 4, "value": false}]}
#up down return
{"id":1236,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 5, "value": true}]}
{"id":1237,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 5, "value": false}]}
#l/r
{"id":1238,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 6, "value": "left"}]}
{"id":1239,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 6, "value": "right"}]}
#u/d
{"id":1240,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 7, "value": "up"}]}
{"id":1241,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 7, "value": "down"}]}
#one-key-cycle
{"id":1242,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 8, "value": true}]}
{"id":1243,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 8, "value": false}]}
#one-key-back
{"id":1244,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 9, "value": true}]}
{"id":1245,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 9, "value": false}]}
Moin Markus, dass ging ja wieder einmal fix bei Dir, hier die Funktionen aufgelistet:
Passiert nichts:
{"id":1234,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 4, "value": true}]}
{"id":1235,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 4, "value": false}]}
{"id":1237,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 5, "value": false}]}
Turn left:
{"id":1238,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 6, "value": "left"}]}
Turn right:
{"id":1239,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 6, "value": "right"}]}
Turn up:
{"id":1240,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 7, "value": "up"}]}
Turn down:
{"id":1241,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 7, "value": "down"}]}
Face forward:
{"id":1236,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 5, "value": true}]}
Oscillating Start:
{"id":1242,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 8, "value": true}]}
Oscillating Stop:
{"id":1243,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 8, "value": false}]}
Nochmals danke für deine Mühe :)
Gruß
Mathze
Probier 4/5/9 + true nochmal während der Ventilator nicht in Mittelstellung ist.
Das sollten verschiedene Dinge sein.
Also z.B. 4 nur angle return, 5 nur tilt return und 9 beides.
Schau mal ob das so passt.
Zitat von: Markus M. am 22 Oktober 2020, 20:19:07
Probier 4/5/9 + true nochmal während der Ventilator nicht in Mittelstellung ist.
Das sollten verschiedene Dinge sein.
Also z.B. 4 nur angle return, 5 nur tilt return und 9 beides.
Schau mal ob das so passt.
Ich verstehe nicht so recht, was du von mir möchtest.
Folgendes konnte ich noch identifizieren:
Face forward
{"id":1234,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 4, "value": true}]}
Wobei hier der Neigungswinkel unverändert bleibt.
Folgendes konnte ich weiterhin auch in anderen Stellungen nicht identifizieren:
{"id":1235,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 4, "value": false}]}
{"id":1237,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 5, "value": false}]}
Gruß
Mathze
Zitat von: t1me2die am 22 Oktober 2020, 20:33:54
Ich verstehe nicht so recht, was du von mir möchtest.
Dass du oben scrollst und das hier probierst ;)
{"id":1244,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 9, "value": true}]}
Das sollte komplett Mittelstellung sein.
Reicht dir das im Modul, ohne die anderen Center Funktionen?
Ach das meinst du, ich habe einfach übersehen, dass da was zum scrollen war, ich war so fokussiert auf den Ventilator ;D
Mittelstellung:
{"id":1244,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 9, "value": true}]}
Passiert nichts:
{"id":1245,"method":"set_properties","params":[{"did": "tilt", "siid": 5, "piid": 9, "value": false}]}
Die Mittelstellung, also Ausgangsstellung ist super!
Die Centerstellung, sprich ohne die Neigung zu verändern finde ich auch gut, benötige ich aber nicht unbedingt.
Ich bin aktuell sowieso schon mehr als begeistert.
Wenn du natürlich noch "Oszillieren Start", "Oszillieren Stop", "Turn up", "Turn down", "Turn left", "Turn right", "Face forward Center" und "Face forward Mittelstellung" einbaust, wäre das aus meiner Sicht eine 1:1 Kopie von den Funktionen aus der App.
Mehr geht dann einfach nicht mehr, damit würde die Liste von unterstützen Geräten um eins komplett erweitert werden können und ich sage erneut recht herzlichen Dank!
Gruß
Mathze
Zitat von: t1me2die am 22 Oktober 2020, 21:00:08Wenn du natürlich noch "Oszillieren Start", "Oszillieren Stop", "Turn up", "Turn down", "Turn left", "Turn right", "Face forward Center" und "Face forward Mittelstellung" einbaust, wäre das aus meiner Sicht eine 1:1 Kopie von den Funktionen aus der App.
Mehr geht dann einfach nicht mehr, damit würde die Liste von unterstützen Geräten um eins komplett erweitert werden können und ich sage erneut recht herzlichen Dank!
Das war 3 Posts weiter oben schon drin ;)
Hier sollte jetzt aber wirklich alles drin sein.
move center: horizontal
move middle: vertikal
move reset: beides
Bitte kurz testen ob alle Readings aktualisiert werden und alle Befehle funktionieren, dann pack ich das gleich ins Update.
Zitat von: Markus M. am 22 Oktober 2020, 21:17:37
Das war 3 Posts weiter oben schon drin ;)
Hier sollte jetzt aber wirklich alles drin sein.
move center: horizontal
move middle: vertikal
move reset: beides
Bitte kurz testen ob alle Readings aktualisiert werden und alle Befehle funktionieren, dann pack ich das gleich ins Update.
Moin Markus, du bist fix.
Folgendes funktioniert leider nicht:
move left
move right
move up
move down
Folgendes funktioniert:
move center
move middle
move reset
Sobald left, right, up & down funktioniert prüfe ich die Readings ob die sich auch korrekt aktualisieren :)
Gruß
Mathze
Zitat von: t1me2die am 22 Oktober 2020, 22:05:05
Folgendes funktioniert leider nicht:
move left
move right
move up
move down
Quotes vergessen ::)
Zitat von: Markus M. am 22 Oktober 2020, 22:16:08
Quotes vergessen ::)
Moin Markus, funktioniert perfekt!
Mir ist bisher kein Fehler aufgefallen!
TOP ARBEIT!
Ich weiß nicht, ob du es möchtest, du könntest noch ein Reading "oscillate_enable" spendieren, wobei sich dieses ja aus Reading "tilt_enable" und "angle_enable" ergibt.
Aktuell habe ich es mit einem Userreading gelöst, weil ich diese Information für Homebridge haben möchte:
oscillate_enable:(angle_enable|tilt_enable):.*
{ my $angle_enable = ReadingsVal("$NAME","angle_enable","");
my $tilt_enable = ReadingsVal("$NAME","tilt_enable","");
my $v;
if ($angle_enable eq 'on' and $tilt_enable eq 'on')
{ $v = 'on';
}
else
{ $v = 'off';
}
$v;
}
Beim Homebridge Mapping kann man nämlich Oszillieren angeben, dass ist aber Geschmackssache, hier mein Beispiel-HomebridgeMapping:
clear
On:power,cmdOn=on,cmdOff=off,valueOn=on,valueOff=off
LockPhysicalControls=child_lock,values=on:CONTROL_LOCK_ENABLED;;off:CONTROL_LOCK_DISABLED,cmds=CONTROL_LOCK_ENABLED:child_lock+on;CONTROL_LOCK_DISABLED:child_lock+off
RotationSpeed=level,minValue=0,maxValue=100,cmd=level,delay=1
TargetTiltAngle=angle,minValue=30,maxValue=120,minStep=30,cmd=angle
SwingMode=oscillate_enable,values=on:SWING_ENABLED;;off:SWING_DISABLED,cmdOn=oscillate_enable+on,cmdOff=oscillate_enable+off
AudioFeedback:buzzer,cmdOn=buzzer+on,cmdOff=buzzer+off,valueOn=on,valueOff=off
NightVision:led,cmdOn=led+off,cmdOff=led+bright,valueOn=off,valueOff=bright
Mute:mode,cmdOn=mode+straight,cmdOff=mode+natural,valueOn=straight,valueOff=natural
CurrentFanState:power,values=on:BLOWING_AIR;;off:INACTIVE;;/.*/:IDLE
Ansonsten bin ich absolut wunschlos glücklich ;)
Dann kann ich ja den nächsten Ventilator von Xiaomi kaufen, der noch nicht in der Liste ist!
Gruß
Mathze
Zitat von: t1me2die am 23 Oktober 2020, 16:13:36Mir ist bisher kein Fehler aufgefallen!
Ich weiss ;) Ich war davon so überzeugt dass ich das gestern noch ins Update gepackt hab. 8)
ZitatIch weiß nicht, ob du es möchtest, du könntest noch ein Reading "oscillate_enable" spendieren, wobei sich dieses ja aus Reading "tilt_enable" und "angle_enable" ergibt.
Welche Version hast du getestet? Das sollte bereits drin sein.
Mach mal ein reguläres Update.
ZitatDann kann ich ja den nächsten Ventilator von Xiaomi kaufen, der noch nicht in der Liste ist!
Blos nicht ;D
Wie laut ist das Ding eigentlich? Hast du nen anderen zum Vergleich?
Zitat von: Markus M. am 23 Oktober 2020, 16:21:32
Ich weiss ;) Ich war davon so überzeugt dass ich das gestern noch ins Update gepackt hab. 8)
Welche Version hast du getestet? Das sollte bereits drin sein.
Mach mal ein reguläres Update.
Blos nicht ;D
Wie laut ist das Ding eigentlich? Hast du nen anderen zum Vergleich?
Hatte deine letzte Version, die du hier hochgeladen hast, von gestern um 22:16Uhr.
Ein Update per FHEM von deinem Modul hat leider das Reading auch nicht herbeigezaubert!
Das "Ding" ist bis 50% wirklich super leise und bewegt enorm viel Wind über einen extrem weiten Weg!
Alles über 50% wird deutlich lauter, jedoch nicht störend!
Im Vergleich zu einem Vornado 630 ist dieser definitiv leiser und bewegt mehr Wind auf einem weiteren Weg! (subjektiv betrachtet, weil ich keinen Vornado 630 mehr habe!).
Ich habe noch einen Smart Fan 2S, der ist definitiv viel leiser, jedoch kann man die beiden Geräte auch nicht miteinander vergleichen!
Ich benötige den "SmartFanFA1" um die kalte Klimaanlagenluft von einem Raum in den anderen zu schieben!
Der Vornado 630 hat über eine Entfernung von ca. 3-4m die Luft gut transportiert.
Der SmartFanFA1 schafft gefühlt 5-6m.
Ich persönlich finde, dass der SmartFanFA1 um Welten den Vornado's überlegen ist!
Die Steuerung, die Oszillation und die Power.
Verbrauch muss ich bei Gelegenheit messen.
Die Verarbeitung ist Xiaomi typisch sehr gut.
Der Vornado war auch gut, auch gut verarbeitet, aber für mich persönlich Meilenweit hinter dem SmartFanFA1.
Falls du noch mehr wissen möchtest, sag Bescheid!
-
Ach, den ein oder anderen Ventilator finde ich bei Xiaomi sicherlich noch.
Die sind doch alle "ähnlich", dürfte für Dich doch dann ein Klacks sein den einzubinden :P
Gruß
Mathze
Klingt nach nem coolen Ventilator
Zitat von: t1me2die am 23 Oktober 2020, 16:33:46Ein Update per FHEM von deinem Modul hat leider das Reading auch nicht herbeigezaubert!
Setz mal kurz verbose 5 und mach ein get data
Mal sehen was das Log sagt.
Zitat von: Markus M. am 23 Oktober 2020, 16:48:07
Klingt nach nem coolen Ventilator
Setz mal kurz verbose 5 und mach ein get data
Mal sehen was das Log sagt.
Also ich kann den Ventilator empfehlen. Habe ihn bei AliExpress bestellt, nicht ganz günstig, habe ca. 80€ inkl. Versand bezahlt (wollte ihn aber auch unbedingt habe, weil die erste Bestellung storniert wurde).
Ich denke mit Glück bekommt man ihm für ca. 60€.
Verbose 5:
2020.10.23 16:56:52 4: wz_Bodenventilator: write {"id":38,"method":"get_properties","params":[{"did": "power", "siid": 2, "piid": 1}, {"did": "level", "siid": 5, "piid": 10}, {"did": "mode", "siid": 2, "piid": 7}, {"did": "led", "siid": 2, "piid": 10}, {"did": "buzzer", "siid": 2, "piid": 11}, {"did": "angle_enable", "siid": 2, "piid": 3}, {"did": "tilt_enable", "siid": 2, "piid": 4}, {"did": "oscillate_enable", "siid": 5, "piid": 8}, {"did": "child_lock", "siid": 6, "piid": 1}, {"did": "timed_off", "siid": 5, "piid": 2}, {"did": "angle", "siid": 2, "piid": 5}, {"did": "tilt", "siid": 2, "piid": 6}]} (558)
2020.10.23 16:56:52 5: wz_Bodenventilator: initSend
2020.10.23 16:56:52 5: wz_Bodenventilator Send SUCCESS
2020.10.23 16:56:52 5: wz_Bodenventilator > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.10.23 16:56:52 5: wz_Bodenventilator: send 21310250000000000e7f27530001480c962c2f31f1f9c37ccf395b71213cb605bdec6b1b07e4c9d8d8318bd738fc87a08a0ea10d575feb0eedb1798f79e3021170f19cc91de924219a4c07524abb388cfa00c823b269a6fb3607868f3b871921954ebd5ffd775c621b1c209ebca1058a08effd343a1889805889a1d1b93fed87162b2491c6a33a08b1ef296e7f08e8c41250ab5af7db15f415900095fecdea422bd409e584ae7bcba94bd63c4669eeb96d3b8464a0c4e3c78cce5f99b179ce29f9d89b186dc17099cf3a75b26ca2b32b65dbdddeb1b2fe42641bfd77a4fb164d93ce323bb11bdd7b9c910a1d9cdfa4e25e7b9a74cf2cf2d7be24f893313f72773e5ba4f7c9890f3c309dc4282b55dde130daf8b94fa666025773a48d75ba941b60e9bc396dfdd44ed344e4cbb416ee2343ca0ee293cff42890df1169727a403615571cebc737803133aff7e54aeed78f73dd0d0657bd3e39144814aa6a49251689b5c75911356c6af69023575d1411d42bf671b14f0b6de1715c6646390ddd0b10da81aff7aba4d5963df47985b7566b9f2e9f3d979b126517250bab6af89fa034677363008f7fb56851271f0e74e695cf1efeb080a423619494b6d9a611f46ca75ae77b4545f63c54c4606127f7e655f05bc7b7d53decb329d27698f282c9a0b0691073e5ec13f5160ea5c0df1247521e15ab9c17052c7144d0b3038a79e6f0c973d18f4b936b2e5bc73f204771b9c424172bc7336d72a32c80559af9e1e1a6ce20bc752e3c7ba8ce885aa49bf63760af9eb424884039e533772d829a084f163e90ab59aa72ccd26c48fa564998448a
2020.10.23 16:56:52 5: wz_Bodenventilator Send SUCCESS
2020.10.23 16:56:52 5: wz_Bodenventilator > 21310250000000000e7f27530001480c962c2f31f1f9c37ccf395b71213cb605bdec6b1b07e4c9d8d8318bd738fc87a08a0ea10d575feb0eedb1798f79e3021170f19cc91de924219a4c07524abb388cfa00c823b269a6fb3607868f3b871921954ebd5ffd775c621b1c209ebca1058a08effd343a1889805889a1d1b93fed87162b2491c6a33a08b1ef296e7f08e8c41250ab5af7db15f415900095fecdea422bd409e584ae7bcba94bd63c4669eeb96d3b8464a0c4e3c78cce5f99b179ce29f9d89b186dc17099cf3a75b26ca2b32b65dbdddeb1b2fe42641bfd77a4fb164d93ce323bb11bdd7b9c910a1d9cdfa4e25e7b9a74cf2cf2d7be24f893313f72773e5ba4f7c9890f3c309dc4282b55dde130daf8b94fa666025773a48d75ba941b60e9bc396dfdd44ed344e4cbb416ee2343ca0ee293cff42890df1169727a403615571cebc737803133aff7e54aeed78f73dd0d0657bd3e39144814aa6a49251689b5c75911356c6af69023575d1411d42bf671b14f0b6de1715c6646390ddd0b10da81aff7aba4d5963df47985b7566b9f2e9f3d979b126517250bab6af89fa034677363008f7fb56851271f0e74e695cf1efeb080a423619494b6d9a611f46ca75ae77b4545f63c54c4606127f7e655f05bc7b7d53decb329d27698f282c9a0b0691073e5ec13f5160ea5c0df1247521e15ab9c17052c7144d0b3038a79e6f0c973d18f4b936b2e5bc73f204771b9c424172bc7336d72a32c80559af9e1e1a6ce20bc752e3c7ba8ce885aa49bf63760af9eb424884039e533772d829a084f163e90ab59aa72ccd26c48fa564998448a
2020.10.23 16:56:52 5: wz_Bodenventilator < 21310020000000000e7f27530001480dffffffffffffffffffffffffffffffff (32)
2020.10.23 16:56:53 5: wz_Bodenventilator < 21310300000000000e7f27530001480dc2b619efa1a65df99041cb161902caf8fc6c8809233315783fcfe269e9d96cde2ea56cf4faafc3c5bbb2ebc3fa2e5984d99c52c31b038af51a88d40bd386ae7f2cd08e0ade93dc8fe7e1cbfbbd3a7684a8c2e5e88f977e2919ef7cf2c09dfb84fd2898ddb502e58ad6cdf56960d22a4c09eda279f3f74c8ab6be64a14a86fec741132690a7dc327d00916badf1717fa5773b006a7123a1bb6871780056f61be4f8d63149ff030c56ab6022835018001717b454ba3c8ee2d5ec30cb4a30be98ec26655f9869d8507a1410c590c0d5acd7d4f48e6a2719a011323f12d8057e14518bd0cc8c5ce9936376bfb58ee0208949a8e34ee3cd2047be1af9571696244a7b64f7bccf2964563072c2353e9507c6e228f9d90c9964c4ec1c139b47b01c32809a6f527de7d280aec157f350e2a38b2bc776d5ec6a67be4386bdb103c92a22e3b881ac13dcf1bb2608127fdf93b987244105563fabe1c42d7c4242990647768ea977772dc189750293612bf90f8a9c9f3a9df7c03671fac5707829db5a0722b3222e7a77f7dd1422967036e4a2b091132de4348b5c8341b14078af1b3f06003dfe7eedc60a0259fc86a6f1ab34609b01757982b8a5fd71052c7ec0bd53bad2e7ec2b52d4e3728bd299bb9135dd70f176ad5df6e362a2a947709d2be9aab5a8be25a1b94b377a2fb9179881e0805f9d159c29e36ba1ba36f190c7a4222ed74129cd1c3dd22d176e2b223ff5a94f0c5c95d67c6c2c20feee9e191edaf58c94e705bf1b7c724a237b4454da940448f5128f106558e1517479d21e0ad8d72a14ca85561f9764fa79c65e0616f27d35ca61afd91746da77c7f7fddb337284d5cab0eef4532073412441800e8924eb962ff1db217dd8b65b83c5b68ab796ccec70a3ecda60e8cd22326671b81ec892763601fba6f7dd3b95d907ce07b634ef1a76a85ff0cda82f1a99331eb773ff8d6db801e539e68229794b856eb42b3a25f72563757fb018ecf26306e0014c6c9d93cda9142f1b8a28322ad16f37f16b958f75299a561ea6cbbf3d6da5c1e344e945d867d8 (768)
2020.10.23 16:56:53 5: wz_Bodenventilator: decrypted
{"id":38,"result":[{"did":"power","siid":2,"piid":1,"code":0,"value":false},{"did":"level","siid":5,"piid":10,"code":0,"value":58},{"did":"mode","siid":2,"piid":7,"code":0,"value":1},{"did":"led","siid":2,"piid":10,"code":0,"value":1},{"did":"buzzer","siid":2,"piid":11,"code":0,"value":true},{"did":"angle_enable","siid":2,"piid":3,"code":0,"value":false},{"did":"tilt_enable","siid":2,"piid":4,"code":0,"value":false},{"did":"oscillate_enable","siid":5,"piid":8,"code":-4005},{"did":"child_lock","siid":6,"piid":1,"code":0,"value":false},{"did":"timed_off","siid":5,"piid":2,"code":0,"value":0},{"did":"angle","siid":2,"piid":5,"code":0,"value":105},{"did":"tilt","siid":2,"piid":6,"code":0,"value":60}],"exe_time":130}
2020.10.23 16:56:53 5: wz_Bodenventilator: parse id 38
{
'exe_time' => 130,
'id' => 38,
'result' => [
{
'code' => 0,
'did' => 'power',
'piid' => 1,
'siid' => 2,
'value' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
},
{
'code' => 0,
'did' => 'level',
'piid' => 10,
'siid' => 5,
'value' => 58
},
{
'code' => 0,
'did' => 'mode',
'piid' => 7,
'siid' => 2,
'value' => 1
},
{
'code' => 0,
'did' => 'led',
'piid' => 10,
'siid' => 2,
'value' => 1
},
{
'code' => 0,
'did' => 'buzzer',
'piid' => 11,
'siid' => 2,
'value' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
},
{
'code' => 0,
'did' => 'angle_enable',
'piid' => 3,
'siid' => 2,
'value' => $VAR1->{'result'}[0]{'value'}
},
{
'code' => 0,
'did' => 'tilt_enable',
'piid' => 4,
'siid' => 2,
'value' => $VAR1->{'result'}[0]{'value'}
},
{
'code' => -4005,
'did' => 'oscillate_enable',
'piid' => 8,
'siid' => 5
},
{
'code' => 0,
'did' => 'child_lock',
'piid' => 1,
'siid' => 6,
'value' => $VAR1->{'result'}[0]{'value'}
},
{
'code' => 0,
'did' => 'timed_off',
'piid' => 2,
'siid' => 5,
'value' => 0
},
{
'code' => 0,
'did' => 'angle',
'piid' => 5,
'siid' => 2,
'value' => 105
},
{
'code' => 0,
'did' => 'tilt',
'piid' => 6,
'siid' => 2,
'value' => 60
}
]
}
2020.10.23 16:56:53 4: wz_Bodenventilator: parse id 38 / fan_data_FA1
2020.10.23 16:56:53 4: wz_Bodenventilator: msg ref is ARRAY
Gruß
Zitat von: t1me2die am 23 Oktober 2020, 16:59:44
'code' => -4005,
'did' => 'oscillate_enable',
'piid' => 8,
'siid' => 5
Write-only lesen funktioniert dummerweise nicht...
Hab's jetzt umgebaut auf
angle_enable && tilt_enable - machen die in der App vermutlich auch so.
Zitat von: Markus M. am 23 Oktober 2020, 17:11:43
Write-only lesen funktioniert dummerweise nicht...
Hab's jetzt umgebaut auf angle_enable && tilt_enable - machen die in der App vermutlich auch so.
Moin Markus, leider auch mit der Version keine Änderung vom Reading.
Was für Informationen helfen Dir bei der Analyse weiter?
Verbose 5 wieder?
Zitat von: t1me2die am 23 Oktober 2020, 21:54:34
Was für Informationen helfen Dir bei der Analyse weiter?
Verbose 5 wieder?
Ja bitte
Zitat von: Markus M. am 24 Oktober 2020, 12:36:07
Ja bitte
Moin Markus, leider noch immer nicht so richtig.
Ich habe verbose auf 5 gesetzt, danach ein oscillate_enable on gesetzt und danach auf off gesetzt.
Bei "on" hat das Reading "oscillate_enable" einen neuen Timestamp bekommen.
Bei "off" blieb das Reading leider weiterhin auf "on" stehen.
Anbei der Log.
Benötigst du noch ein List zwischen beiden Aktionen?
2020.10.24 20:55:30 4: wz_Bodenventilator: write {"id":458,"method":"set_properties","params":[{"did": "oscillate_enable", "siid": 5, "piid": 8, "value": true}]} (112)
2020.10.24 20:55:30 5: wz_Bodenventilator: send 213100a0000000000e7f2753000075e66c7d3f0070677fc92702155d087f62029223f1ff3839ceb3219b844b6c7f58609f1e0f83884e7e6a691c78a23a8729e43adf96c7773e6ad5e9df966367de223470417d15f770a895341b034d63709da32fb59c0bc649c2dde4fe61c46cb1039a1478112cbc74973e42ed1d5e6f11d2ddf139d712d4480be1dd9525c2fc479bfa51717bd2322080e36890c5016d9ca86f
2020.10.24 20:55:30 5: wz_Bodenventilator Send SUCCESS
2020.10.24 20:55:30 5: wz_Bodenventilator > 213100a0000000000e7f2753000075e66c7d3f0070677fc92702155d087f62029223f1ff3839ceb3219b844b6c7f58609f1e0f83884e7e6a691c78a23a8729e43adf96c7773e6ad5e9df966367de223470417d15f770a895341b034d63709da32fb59c0bc649c2dde4fe61c46cb1039a1478112cbc74973e42ed1d5e6f11d2ddf139d712d4480be1dd9525c2fc479bfa51717bd2322080e36890c5016d9ca86f
2020.10.24 20:55:30 5: wz_Bodenventilator < 21310080000000000e7f2753000075e67f88514ec2221fdc8f96d66f63c16825b1f0a000e600e5dc73733468ec4ac613df82af6ba1a00538b18f1d5752b595df342e92bec37456041800508e7135eece5ea1237ff915a5ee99c9c367f49e73e69d09e44458fcdf26eae1182c120078a455d0b868bc8908648f97d69ddda862da (128)
2020.10.24 20:55:30 5: wz_Bodenventilator: decrypted
{"id":458,"result":[{"did":"oscillate_enable","siid":5,"piid":8,"code":0}],"exe_time":200}
2020.10.24 20:55:30 5: wz_Bodenventilator: parse id 458
{
'exe_time' => 200,
'id' => 458,
'result' => [
{
'code' => 0,
'did' => 'oscillate_enable',
'piid' => 8,
'siid' => 5
}
]
}
2020.10.24 20:55:30 4: wz_Bodenventilator: parse id 458 / set_oscillate_enable
2020.10.24 20:55:30 4: wz_Bodenventilator: msg ref is ARRAY
2020.10.24 20:55:30 5: wz_Bodenventilator: parse result for 458 is ARRAY(0x5654d8ece3d8)
2020.10.24 20:55:32 4: wz_Bodenventilator: write {"id":459,"method":"get_properties","params":[{"did": "power", "siid": 2, "piid": 1}, {"did": "level", "siid": 5, "piid": 10}, {"did": "mode", "siid": 2, "piid": 7}, {"did": "led", "siid": 2, "piid": 10}, {"did": "buzzer", "siid": 2, "piid": 11}, {"did": "angle_enable", "siid": 2, "piid": 3}, {"did": "tilt_enable", "siid": 2, "piid": 4}, {"did": "child_lock", "siid": 6, "piid": 1}, {"did": "timed_off", "siid": 5, "piid": 2}, {"did": "angle", "siid": 2, "piid": 5}, {"did": "tilt", "siid": 2, "piid": 6}]} (508)
2020.10.24 20:55:32 5: wz_Bodenventilator: send 21310220000000000e7f2753000075e88109ce9b64e630601edf972db7df5747ef4638b02a5a971e35a6820aa76639d43cb48f9476dc387f2cd7ee5bc4952a5cea20f415d244338b432f7f7227d92f6a1da561233a6ddff7647b8908be00a7ab9e3d4d9e0b9487c15ec989dfbc90330e2b6ce9bbc9e89c87d11fbd5679aef7b0a46d7d32fb89bb86ee2d40ca22fc7ff32617842a31acf1d4faaac7acf05850f48f0ce35efdd7a960390306fa2952fc1fc8e9576107c336e148fe7250af7044d0f1a3e77f8b4f622e508681a705c05c15a940061158332f507504277cc055d7c83a14b702a5adc4b093c0722ddfca2a1fe91e37d7eb959e46d502fb1c75b285945f4a00aa4df48345756ff9ba633301203230f14cde4e18111d4a3134043c4750cd25eea618e68ce66ae3ab388504588afca25f5e39a54b78acdfdd550a9904f5db7672c0d2df2bc163ff6edfc723854da4f7a062d5a4334e105f59a5b1420146485d61db151db2470691f48949557cdd3019f46dbe6bcf1369227d60d739ac66711ae31b82dadd8b40a54f54ee8f58b1ff11dc4915cfad334a64f482dfd7af9e357c62e4423d84435fdb5fb007dd13c6beb890431f1ca67812739e1a144054f7f0818744e8f3d2e655236a20ac9d1eafd2bd37246bd9af1b8878f9a191c28526bd32fa31aa0de84380e7eb52c16bf56d04737f8d1f2e06a9655ef0866e0154447831767da51943ca71953d15e1a87d6f63ac046f09dd37a06caf1af7d3f19c31
2020.10.24 20:55:32 5: wz_Bodenventilator Send SUCCESS
2020.10.24 20:55:32 5: wz_Bodenventilator > 21310220000000000e7f2753000075e88109ce9b64e630601edf972db7df5747ef4638b02a5a971e35a6820aa76639d43cb48f9476dc387f2cd7ee5bc4952a5cea20f415d244338b432f7f7227d92f6a1da561233a6ddff7647b8908be00a7ab9e3d4d9e0b9487c15ec989dfbc90330e2b6ce9bbc9e89c87d11fbd5679aef7b0a46d7d32fb89bb86ee2d40ca22fc7ff32617842a31acf1d4faaac7acf05850f48f0ce35efdd7a960390306fa2952fc1fc8e9576107c336e148fe7250af7044d0f1a3e77f8b4f622e508681a705c05c15a940061158332f507504277cc055d7c83a14b702a5adc4b093c0722ddfca2a1fe91e37d7eb959e46d502fb1c75b285945f4a00aa4df48345756ff9ba633301203230f14cde4e18111d4a3134043c4750cd25eea618e68ce66ae3ab388504588afca25f5e39a54b78acdfdd550a9904f5db7672c0d2df2bc163ff6edfc723854da4f7a062d5a4334e105f59a5b1420146485d61db151db2470691f48949557cdd3019f46dbe6bcf1369227d60d739ac66711ae31b82dadd8b40a54f54ee8f58b1ff11dc4915cfad334a64f482dfd7af9e357c62e4423d84435fdb5fb007dd13c6beb890431f1ca67812739e1a144054f7f0818744e8f3d2e655236a20ac9d1eafd2bd37246bd9af1b8878f9a191c28526bd32fa31aa0de84380e7eb52c16bf56d04737f8d1f2e06a9655ef0866e0154447831767da51943ca71953d15e1a87d6f63ac046f09dd37a06caf1af7d3f19c31
2020.10.24 20:55:32 5: wz_Bodenventilator < 213102c0000000000e7f2753000075e8169e6d3639952b6a925c79786bc1bdbccd47b175ee3027c7109dfb0951ecc13e352a5374373700819a3b1614e851c2a02a3371203f6ec59c5ad0ba68fe76429dcd41d02536ca03620ef510faeb9ef48c11fb3401f0f6c39150ea4a9af5ceaebd9511dad67ba4b77ceae7a38cad8dafdba151b4d20db36eb787fd974e8189ec46791b122bb5cb5982a11f9b86e75387d5489f677a816b1787dd98f95c042ca79ae3e73873e15aaf209c6b6bfe84da74a30d18e590e6cd480173ad912fe95b59348182f86a1280e2fda4752052581b60d79057d25a7b17034e2d7c363b777c2a0e12c69306187f61f220d1a2777b5fe8d70b19b8c6244d7a25a60da794e42cbf1b21d07bbe99b345e141d8f051083977f820783a224774bf9cf58a3a148688f7afb580863a20b66b0c713d2c02902e01e4fb722a9487f96e6b490791326a6e60151c1399fb9700441383b0b5597e5abdb2e4139c68abe65c73339e2b0fbd5f35322d56be67ab97effc425d587653f66b4b93110ca2fda1c43e8fdf820782103f96cda0a6fb8ba12e188cafaf980546153987302a823f547ffe24bb56d1f8b429a61dccbd4a1578e93464e9e2abc483d0aeaa290a2f88930f67f2ffcc1e636c6c868ba978da19917e66f3bc770233bd2c77cc1f7072f0c8c26e6a281f3923ffebb2cce4be3978fde7cbdfca1276fe08f18b68e1f21a17e3ec29efc124916799c25495ae2e13ad48fa6345fcbe6d5b19553c41c5e6c951d323818a214c5c4fef8b8fbd3d63f23daaaa8841ae5881151dc0e893a1c5a904c9d6cb3fe4fe5143812ffb8704e94cf4e2e6ba741f9708e7dc5d3cd20ff370bbd3477ba7357aeaa8a938e1392e7004c88863200981addc82d77dae7a3368a369da2487dce830bb3eefe5993d6b5c5e52580814bd58f12747a4241899080f4ed71c274b7a22390b0e86d8589347686133c73844dbc7d3ab9f5a98c1 (704)
2020.10.24 20:55:32 5: wz_Bodenventilator: decrypted
{"id":459,"result":[{"did":"power","siid":2,"piid":1,"code":0,"value":true},{"did":"level","siid":5,"piid":10,"code":0,"value":2},{"did":"mode","siid":2,"piid":7,"code":0,"value":1},{"did":"led","siid":2,"piid":10,"code":0,"value":1},{"did":"buzzer","siid":2,"piid":11,"code":0,"value":true},{"did":"angle_enable","siid":2,"piid":3,"code":0,"value":true},{"did":"tilt_enable","siid":2,"piid":4,"code":0,"value":true},{"did":"child_lock","siid":6,"piid":1,"code":0,"value":false},{"did":"timed_off","siid":5,"piid":2,"code":0,"value":0},{"did":"angle","siid":2,"piid":5,"code":0,"value":105},{"did":"tilt","siid":2,"piid":6,"code":0,"value":60}],"exe_time":190}
2020.10.24 20:55:32 5: wz_Bodenventilator: parse id 459
{
'exe_time' => 190,
'id' => 459,
'result' => [
{
'code' => 0,
'did' => 'power',
'piid' => 1,
'siid' => 2,
'value' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
},
{
'code' => 0,
'did' => 'level',
'piid' => 10,
'siid' => 5,
'value' => 2
},
{
'code' => 0,
'did' => 'mode',
'piid' => 7,
'siid' => 2,
'value' => 1
},
{
'code' => 0,
'did' => 'led',
'piid' => 10,
'siid' => 2,
'value' => 1
},
{
'code' => 0,
'did' => 'buzzer',
'piid' => 11,
'siid' => 2,
'value' => $VAR1->{'result'}[0]{'value'}
},
{
'code' => 0,
'did' => 'angle_enable',
'piid' => 3,
'siid' => 2,
'value' => $VAR1->{'result'}[0]{'value'}
},
{
'code' => 0,
'did' => 'tilt_enable',
'piid' => 4,
'siid' => 2,
'value' => $VAR1->{'result'}[0]{'value'}
},
{
'code' => 0,
'did' => 'child_lock',
'piid' => 1,
'siid' => 6,
'value' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
},
{
'code' => 0,
'did' => 'timed_off',
'piid' => 2,
'siid' => 5,
'value' => 0
},
{
'code' => 0,
'did' => 'angle',
'piid' => 5,
'siid' => 2,
'value' => 105
},
{
'code' => 0,
'did' => 'tilt',
'piid' => 6,
'siid' => 2,
'value' => 60
}
]
}
2020.10.24 20:55:32 4: wz_Bodenventilator: parse id 459 / fan_data_FA1
2020.10.24 20:55:32 4: wz_Bodenventilator: msg ref is ARRAY
2020.10.24 20:55:41 4: wz_Bodenventilator: write {"id":460,"method":"set_properties","params":[{"did": "oscillate_enable", "siid": 5, "piid": 8, "value": false}]} (113)
2020.10.24 20:55:41 5: wz_Bodenventilator: send 213100a0000000000e7f2753000075f1945ef6e0fd56617da3bcc26c1809ce32d2608fe3cea4e2ee14ecb46bfab959e5fcd4c55694c7ea77ec61fabf035956f682176de93c618f76ac3d8016d8f32533498f26224b036680911b9f7382386ceafd64910e5d358f85af465d7c499e8165c8b7db7a2abf5a2c9c1eb6ce481fb8d3df93f8ebe3bf517497a7c04477f1db742c486db909608cb710a6d4c8553530c4
2020.10.24 20:55:41 5: wz_Bodenventilator Send SUCCESS
2020.10.24 20:55:41 5: wz_Bodenventilator > 213100a0000000000e7f2753000075f1945ef6e0fd56617da3bcc26c1809ce32d2608fe3cea4e2ee14ecb46bfab959e5fcd4c55694c7ea77ec61fabf035956f682176de93c618f76ac3d8016d8f32533498f26224b036680911b9f7382386ceafd64910e5d358f85af465d7c499e8165c8b7db7a2abf5a2c9c1eb6ce481fb8d3df93f8ebe3bf517497a7c04477f1db742c486db909608cb710a6d4c8553530c4
2020.10.24 20:55:41 5: wz_Bodenventilator < 21310080000000000e7f2753000075f16631cdebfea30b40bc2a292e95cd00eb1cde78253ad97c6188bcfb04e98f67282bb8b65f3b7504789a4f3b83c4655651d9687873d183969acbe578d19d41b045a34b7797ed04142fee8c2246d61ddb95a796ddd08bfd4f920aaa21f12bb2cad591ee0a07053bb2b9742fa87c471135b1 (128)
2020.10.24 20:55:41 5: wz_Bodenventilator: decrypted
{"id":460,"result":[{"did":"oscillate_enable","siid":5,"piid":8,"code":0}],"exe_time":130}
2020.10.24 20:55:41 5: wz_Bodenventilator: parse id 460
{
'exe_time' => 130,
'id' => 460,
'result' => [
{
'code' => 0,
'did' => 'oscillate_enable',
'piid' => 8,
'siid' => 5
}
]
}
2020.10.24 20:55:41 4: wz_Bodenventilator: parse id 460 / set_oscillate_enable
2020.10.24 20:55:41 4: wz_Bodenventilator: msg ref is ARRAY
2020.10.24 20:55:41 5: wz_Bodenventilator: parse result for 460 is ARRAY(0x5654dccb35d0)
2020.10.24 20:55:43 4: wz_Bodenventilator: write {"id":461,"method":"get_properties","params":[{"did": "power", "siid": 2, "piid": 1}, {"did": "level", "siid": 5, "piid": 10}, {"did": "mode", "siid": 2, "piid": 7}, {"did": "led", "siid": 2, "piid": 10}, {"did": "buzzer", "siid": 2, "piid": 11}, {"did": "angle_enable", "siid": 2, "piid": 3}, {"did": "tilt_enable", "siid": 2, "piid": 4}, {"did": "child_lock", "siid": 6, "piid": 1}, {"did": "timed_off", "siid": 5, "piid": 2}, {"did": "angle", "siid": 2, "piid": 5}, {"did": "tilt", "siid": 2, "piid": 6}]} (508)
2020.10.24 20:55:43 5: wz_Bodenventilator: send 21310220000000000e7f2753000075f32550b5402d0083537059d8b227408fe1e37e8c30bab4db7f54cce335ae968cf2f9622e724284c1f06d2e16df11797f7871ca2aa40dafebebecc360bda21924da61f7fbad1158e5dd0462ea828e7861be4b4fd0773c27e1a973b4e9890cbdd14bfb25b9860ba05bca92dfd4af0ebda1830d92318011c4909ebe701276d6c4445defbfb3a7b56179b85d858b5e8785cc4045d639668094d37d5635c1fda13cea2866312775180725d81a56216b64d4259f823d55a269dc180cb9a47b9537e26601f3e3db618c4b6de1e7a324cd4047906014d9604bf6d9ff289e873b3fdc4645bb56e8683b280243ed24d20a6e566ae8a63f1281a1696ec6151cf062872ed9bc2d7f66fff1191f112534ca3b3187f9c5d1b9c44a5beaefa9adaf582c19e7f1a2c40718ec2cc35c1c3a2dc111d2c3c54c30ac8fc2172cde3f6e6116d5c012e613b865043ee9abec0957b13cb6953563e7f75198d4faffe4c8cc8898a5d86df09f9ce8797a593aed5803a768efe4e0878d544fc384f8464ed58352666597d548af85fd83c6ac63b257db10c15dde5145604637ad2b6c1f9075828a6219759caf993be683bbdea606cdbcdb2eb6dca7be76e217af48e961a849a9059e60dcb0641845f3c02cd6896429500e88136fe78bec4b8bab3ce621a2c1e2b7c88bd9c3e8c1ea33ba30b4614102641377ebbc9fc0476c730bc1ab2587be49732f360c917e0cc435fd77721978a1069c52c6caa2494ca2
2020.10.24 20:55:43 5: wz_Bodenventilator Send SUCCESS
2020.10.24 20:55:43 5: wz_Bodenventilator > 21310220000000000e7f2753000075f32550b5402d0083537059d8b227408fe1e37e8c30bab4db7f54cce335ae968cf2f9622e724284c1f06d2e16df11797f7871ca2aa40dafebebecc360bda21924da61f7fbad1158e5dd0462ea828e7861be4b4fd0773c27e1a973b4e9890cbdd14bfb25b9860ba05bca92dfd4af0ebda1830d92318011c4909ebe701276d6c4445defbfb3a7b56179b85d858b5e8785cc4045d639668094d37d5635c1fda13cea2866312775180725d81a56216b64d4259f823d55a269dc180cb9a47b9537e26601f3e3db618c4b6de1e7a324cd4047906014d9604bf6d9ff289e873b3fdc4645bb56e8683b280243ed24d20a6e566ae8a63f1281a1696ec6151cf062872ed9bc2d7f66fff1191f112534ca3b3187f9c5d1b9c44a5beaefa9adaf582c19e7f1a2c40718ec2cc35c1c3a2dc111d2c3c54c30ac8fc2172cde3f6e6116d5c012e613b865043ee9abec0957b13cb6953563e7f75198d4faffe4c8cc8898a5d86df09f9ce8797a593aed5803a768efe4e0878d544fc384f8464ed58352666597d548af85fd83c6ac63b257db10c15dde5145604637ad2b6c1f9075828a6219759caf993be683bbdea606cdbcdb2eb6dca7be76e217af48e961a849a9059e60dcb0641845f3c02cd6896429500e88136fe78bec4b8bab3ce621a2c1e2b7c88bd9c3e8c1ea33ba30b4614102641377ebbc9fc0476c730bc1ab2587be49732f360c917e0cc435fd77721978a1069c52c6caa2494ca2
2020.10.24 20:55:44 5: wz_Bodenventilator < 213102c0000000000e7f2753000075f4bceb429a180da9d3a052a17dbf5e4c779a502a242a19d2709b7bba13bde3841aca9e8e70faf139487eab75c973bfec9ea3fc1423cc6966d9536b4f55bc2c0459f1587e12059bd6b5bfed4af5f6a5e618cc5e068fd2cd0ba09842415d2d650cbeeeba2a07be5cf21cb33ccce2570ff9fb51cb84886da47ae4884ee94622b6008a3fbe40d59a820f7943b6f5c60cd403fbf80d0fce3f50e5a061cb9ea108215c01d7c89a8b6b74592fcf0ace4aa6286b6e6ed230a71037add2ca47ad25ce1418729b23e03c9999a11a7d19d856f755cf142fba84d5db7a9462a8d8d563c555648c70688ab922eadda4468b3c2f14c693399158eba615c99dee2737bff01fbb0ba163ecf67aa0a27ca616ec906d2570e15936277d0a2ae8a6fcb6f39b07a6a1e6ae5099a7f6bfa978c241995adae70859e572121867a52414aa996c6f9c5c519774891989e928d7c4056be66a3a69336bc0c91803f534faaa053104cb1ebbcc948a2520ecdaa2fedf5634fc42dc48828a87c1371d4f223d3753b282d01975cd0959b547a1509853a031ab841752004255e125885049abb76b0025f3416e8d5ce4c990c37e4bb3676b1ae7bb3ab73dad9b9a0db93cfb87854c51b2dfe039ed64b079aa29db1e8e41faba7f32f9eb20fa5c58d1dc1ed88da6ca96d2f999dba7d9902ce7d15d7a00b52b2202fc02b1aa6705f0482cad0f34a186e05881e08bf869063f93cae31a8437be46874aaf18075c8edfd27f54a0656b9b8349491d283dcb161d945b34f0a2739c70c8340215b88d3dd49353e020549e460dc4e4c6476d4ac6859176c70a3e8165a47f2faf1f7ad84884dbc408db35f253dbf14d9cd6dd50f69a34830e6eaf4c82d1bf8313212a7ad62ded39ac8f295068efe79133cefcd759842baff19aa5046ccaf9149020f661e870db4b0c044c7e12e3d417328f94768a23764145c084db7475e7c8b69d515a8c7b (704)
2020.10.24 20:55:44 5: wz_Bodenventilator: decrypted
{"id":461,"result":[{"did":"power","siid":2,"piid":1,"code":0,"value":true},{"did":"level","siid":5,"piid":10,"code":0,"value":2},{"did":"mode","siid":2,"piid":7,"code":0,"value":1},{"did":"led","siid":2,"piid":10,"code":0,"value":1},{"did":"buzzer","siid":2,"piid":11,"code":0,"value":true},{"did":"angle_enable","siid":2,"piid":3,"code":0,"value":false},{"did":"tilt_enable","siid":2,"piid":4,"code":0,"value":false},{"did":"child_lock","siid":6,"piid":1,"code":0,"value":false},{"did":"timed_off","siid":5,"piid":2,"code":0,"value":0},{"did":"angle","siid":2,"piid":5,"code":0,"value":105},{"did":"tilt","siid":2,"piid":6,"code":0,"value":60}],"exe_time":190}
2020.10.24 20:55:44 5: wz_Bodenventilator: parse id 461
{
'exe_time' => 190,
'id' => 461,
'result' => [
{
'code' => 0,
'did' => 'power',
'piid' => 1,
'siid' => 2,
'value' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' )
},
{
'code' => 0,
'did' => 'level',
'piid' => 10,
'siid' => 5,
'value' => 2
},
{
'code' => 0,
'did' => 'mode',
'piid' => 7,
'siid' => 2,
'value' => 1
},
{
'code' => 0,
'did' => 'led',
'piid' => 10,
'siid' => 2,
'value' => 1
},
{
'code' => 0,
'did' => 'buzzer',
'piid' => 11,
'siid' => 2,
'value' => $VAR1->{'result'}[0]{'value'}
},
{
'code' => 0,
'did' => 'angle_enable',
'piid' => 3,
'siid' => 2,
'value' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
},
{
'code' => 0,
'did' => 'tilt_enable',
'piid' => 4,
'siid' => 2,
'value' => $VAR1->{'result'}[5]{'value'}
},
{
'code' => 0,
'did' => 'child_lock',
'piid' => 1,
'siid' => 6,
'value' => $VAR1->{'result'}[5]{'value'}
},
{
'code' => 0,
'did' => 'timed_off',
'piid' => 2,
'siid' => 5,
'value' => 0
},
{
'code' => 0,
'did' => 'angle',
'piid' => 5,
'siid' => 2,
'value' => 105
},
{
'code' => 0,
'did' => 'tilt',
'piid' => 6,
'siid' => 2,
'value' => 60
}
]
}
2020.10.24 20:55:44 4: wz_Bodenventilator: parse id 461 / fan_data_FA1
2020.10.24 20:55:44 4: wz_Bodenventilator: msg ref is ARRAY
Gruß
Mathze
Hmm, ich bin gerade etwas ratlos - zumindest falls das hier jetzt auch nicht funktionieren sollte
Zitat von: Markus M. am 24 Oktober 2020, 23:14:47
Hmm, ich bin gerade etwas ratlos - zumindest falls das hier jetzt auch nicht funktionieren sollte
Moin Markus, funktioniert!
Habe jetzt noch einmal die Funktionen und die Readings durchgetestet.
Funktioniert einwandfrei!
Danke und einen schönen Sonntag :)
Gruß
Mathze
PS.: Viel mehr Xiaomi (Mijia) Ventilatoren gibt es aktuell nicht auf dem Markt ::)
Hi,
ich hab mein s6 maxV mit dem Modul verbunden. Allerdings würde ich gerne die Roborock App benutzen anstatt der mi home App. Wenn ich allerdings die Roborock App nutze muss ich den Staubsauger wieder neu verbinden,dann geht eben mein Token flöten. Gibt es eine Möglichkeit die Roborock App zu nutzen und gleichzeitig aber auch mit Fhem verbunden?
Vermutlich erzeugt die Roborock App ebenfalls einen Token?
Läuft das dann auch über eine Cloudverbindung?
Wenn du Root hast, probier doch mal das Auslesen über die Datenbank auf dem Telefon.
Tokens kannst du ganz einfach über deinen Mi Account auslesen:
fhem_pythonbinding installieren: https://github.com/dominikkarall/fhem_pythonbinding
Device erstellen: https://github.com/dominikkarall/fhem_pythonbinding/blob/master/FHEM/bindings/python/lib/xiaomi_tokens/README.md
und schon hast du alle Tokens in deinen FHEM Readings. Somit ist auch ein WLAN Wechsel kein Problem mehr, weil du da schnell die Tokens wieder beziehen kannst.
oo das klingt interessant,aber da werde ich wohl etwas Hilfe brauchen. Aber der erste Schritt wäre das ich erst einmal den Fhem python bindung von dir installiere und das dan in Fhem einbinde.
Aber ich kann mich in der Roborock App nicht mit meinem Mi account anmelden. Da musste ich mir ein neues Account erstellen. Da weis ich nicht ob dein Modul hier helfen würde. So wie ich das verstehe ist die Roborock App unabhängig von der mi home App
Ah, du verwendest die Roborock App, sorry, das hatte ich überlesen. In dem Fall hilft es dir wahrscheinlich nicht.
Ja genau. mit der mi home App funktioniert Fhem auch. Allerdings gibt es bei der Roborock App ein paar coole featers die es in der mi home App nicht gibt. Vieleicht kommt das noch,aber Roborock wird auch schneller mit updates gefüttert. Aber wie Markus schon sagte,irgend ein Token wird es ja geben,nur wie kommt man dran. Ich hab leider kein root handy. :-\
kann es sein,dass die Flole App nicht mehr funktioniert? ich kann mich mit meinem mi account nicht in der app anmelden. Alternativ wäre es manuel einzurichten,aber da brauch ich DID Nummer,vermutlich die Device ID,wie bekomme ich die herraus?
Kurzes Update zu unseren Tests mit dem S6:
Die Nutzung von FHEM in Kombination mit der Roborock App scheint leider nicht möglich zu sein.
In der App Kommunikation findet sich zwar ein localKey, der Staubsauger reagiert aber nicht auf die lokale MiIO Kommunikation, wenn er nicht mit MiHome verbunden ist :(
Auch die Cloud Kommunikation der Roborock App zur Steuerung läuft nicht über HTTPS oder irgendwas, was ich im Proxy sehen kann.
Hi,
laut der Gebrauchsanleitung meines Saugroboter ist ein Reinigungsmittel nicht empfohlen. Allerdings gibt es im Internet Spezial Reiniger für Sauroboter. Hat jemand Erfahrung mit Haushaltsüblichen Reinigungsmittel. Oder sind diese Spezialreiniger Unsinn?
Ich nehme ganz normalen Bodenreiniger. Seit Jahren mit dem S50, null Probleme.
@Markus M
Ich verzweifel da auch schon länger dran leider. Es scheint mit der roborock App keinen Weg zu geben :(
Hallo
ich habe mich die letzten zwei Tage noch mal ein bisschen mit meinem Xiaomi Mjija G1 (mijia.vacuum.v2) beschäftigt und kann ihn momentan per python-miio mit einem, aus dem Modul für den dreame.vacuum abgeleiteten Modul steuern und Stati auslesen.
miiocli g1vacuum --ip ip --token token status
Running command status
G1Status(battery=68, chargestatus=1, error=0, status=5, mopstate=0, waterlevel=2, vacuummode=1, filter_life_level=70, brush_life_level=85, brush_life_level2=69, clean_area=6, clean_time=1, fanlevel=1, direction_key=None, total_clean_count=36, total_clean_area=137639, dnd_enabled=False)
D.h. also, dass der Staubsauger auch ein MIOT Gerät ist wie z.B diverse Ventilatoren und nur mal wieder ganz andere Mappings hat.
Was bei mir noch nicht funktioniert, ist das setzen des fan_levels und der Wassermenge beim Wischen. Schön wäre auch noch ein manuelles Fahren, was eigentlich auch möglich sein müsste (das aber nur am Rande)
Leider bin ich weder Perl-Experte, noch kenne ich mich im Detail mit FHEM-Plugins aus, aber vielleicht helfen ja diese Pseudomappings, die meine Quelle für die Umsetzung waren, irgendwem weiter (Ich teste auch gerne ;) )
get_commands = {
1:'{"method":"get_properties","params":[{"siid":2,"piid":1}]}', #command_get_status
2:'{"method":"get_properties","params":[{"siid":2,"piid":2}]}', #command_get_error
3:'{"method":"get_properties","params":[{"siid":2,"piid":4}]}', #command_get_mode
4:'{"method":"get_properties","params":[{"siid":2,"piid":5}]}', #command_get_water_mode
5:'{"method":"get_properties","params":[{"siid":2,"piid":6}]}', #command_get_fan_mode
6:'{"method":"get_properties","params":[{"siid":3,"piid":2}]}', #command_get_charge_state
7:'{"method":"get_properties","params":[{"siid":16,"piid":1}]}', #command_get_mop_status
8:'{"method":"get_properties","params":[{"siid":3,"piid":1}]}', #command_get_battery_level
9:'{"method":"get_properties","params":[{"siid":14,"piid":1}]}', #command_get_main_brush_life_level_percent
10:'{"method":"get_properties","params":[{"siid":14,"piid":2}]}', #command_get_main_brush_life_level_minutes
11:'{"method":"get_properties","params":[{"siid":15,"piid":1}]}', #command_get_side_brush_life_level_percent
12:'{"method":"get_properties","params":[{"siid":15,"piid":2}]}', #command_get_side_brush_life_level_minutes
13:'{"method":"get_properties","params":[{"siid":11,"piid":1}]}', #command_get_filter_life_level_percent
14:'{"method":"get_properties","params":[{"siid":11,"piid":2}]}', #command_get_filter_brush_life_level_minutes
15:'{"method":"get_properties","params":[{"siid":9,"piid":1}]}', #command_get_clean-area # responce value always 0
16:'{"method":"get_properties","params":[{"siid":9,"piid":2}]}', #command_get_clean-time # responce value always 0
17:'{"method":"get_properties","params":[{"siid":9,"piid":3}]}', #command_get_total_clean-area # responce value always 0
18:'{"method":"get_properties","params":[{"siid":9,"piid":4}]}', #command_get_total_clean-time # responce value always 0
19:'{"method":"get_properties","params":[{"siid":9,"piid":5}]}', #command_get_total_clean-count # responce value always 0
20:'{"method":"get_properties","params":[{"siid":12,"piid":1}]}', #command_get_speech_language
21:'{"method":"get_properties","params":[{"siid":12,"piid":1}]}'} #command_get_DND_status
action_commands = {
1:'{"method":"action","params":{"siid":2,"aiid":1}}', #command_start_sweep
2:'{"method":"action","params":{"siid":2,"aiid":2}}', #command_stop_sweep
3:'{"method":"action","params":{"siid":2,"aiid":3}}', #command_go_charge
4:'{"method":"action","params":{"siid":6,"aiid":1}}', #command_find_vacuum
5:'{"method":"action","params":{"siid":13,"aiid":1}}', #command_start_charge
6:'{"method":"action","params":{"siid":13,"aiid":2}}'} #command_stop_charge
set_commands = {
1:'{"method":"set_properties","params":[{"siid":2,"piid":4,"value":', #command_set_work_mode
2:'{"method":"set_properties","params":[{"siid":2,"piid":5,"value":', #command_set_water_mode
3:'{"method":"set_properties","params":[{"siid":2,"piid":6,"value":', #command_set_fan_mode
4:'{"method":"set_properties","params":[{"siid":12,"piid":1,"value":', #command_set_speech_language
5:'{"method":"set_properties","params":[{"siid":12,"piid":2,"value":'} #command_set_DND_status
In Python sehen die Stati dann z.B. so aus:
class G1Status:
_max_properties = 14
battery: int = field(metadata={"siid": 3, "piid": 1, "access": ["read", "notify"]})
chargestatus: int = field(metadata={"siid": 3, "piid": 2, "access": ["read", "notify"], "enum": ChargeStatus,})
error: int = field(metadata={"siid": 2, "piid": 2, "access": ["read", "notify"], "enum": Error})
status: int = field(metadata={"siid": 2,"piid": 1, "access": ["read", "notify"], "enum": VacuumStatus,})
mopstate: int = field(metadata={"siid": 16,"piid": 1, "access": ["read", "notify"], "enum": MopState,})
waterlevel: int = field(metadata={"siid": 2,"piid": 5, "access": ["read", "write"], "enum": Target_Water_Level,})
vacuummode: int = field(metadata={"siid": 2,"piid": 4, "access": ["read", "write"], "enum": VacuumMode,})
filter_life_level: int = field(metadata={"siid": 11, "piid": 1, "access": ["read", "notify"]})
#filter_left_time: int = field(metadata={"siid": 11, "piid": 2, "access": ["read", "notify"]})
brush_life_level: int = field(metadata={"siid": 14, "piid": 1, "access": ["read", "notify"]})
#brush_left_time: int = field(metadata={"siid": 14, "piid": 2, "access": ["read", "notify"]})
brush_life_level2: int = field(metadata={"siid": 15, "piid": 1, "access": ["read", "notify"]} )
#brush_left_time2: int = field(metadata={"siid": 15, "piid": 2, "access": ["read", "notify"]})
clean_area: int = field(metadata={"siid": 9, "piid": 1, "access": ["read", "notify"]})
clean_time: int = field(metadata={"siid": 9, "piid": 2, "access": ["read", "notify"]})
fanlevel: int = field(metadata={"siid": 2, "piid": 6, "access": ["read", "write"], "enum": Fan_Level,})
direction_key: int = field(metadata={"siid": 8, "piid": 1, "access": ["read", "write"], "enum": ArrowKeys,})
total_clean_count: int = field(metadata={"siid": 9, "piid": 5, "access": ["read", "notify"]})
total_clean_area: int = field(metadata={"siid": 9, "piid": 3, "access": ["read", "notify"]})
dnd_enabled: int = field(metadata={"siid": 12, "piid": 2, "access": ["read", "write"]} )
# audio_volume: int = field(metadata={"siid": 4, "piid": 2, "access": ["read", "write", "notify"]} )
Zitat von: neyzen am 30 Oktober 2020, 21:22:02laut der Gebrauchsanleitung meines Saugroboter ist ein Reinigungsmittel nicht empfohlen. Allerdings gibt es im Internet Spezial Reiniger für Sauroboter. Hat jemand Erfahrung mit Haushaltsüblichen Reinigungsmittel. Oder sind diese Spezialreiniger Unsinn?
Solange du nichts reinkippst was verseifen kann, ist alles ok.
Handelsübliche flüssige Reinigungsmittel sollten also problemlos funktionieren.
Zitat von: neturmel am 13 November 2020, 13:53:55
ich habe mich die letzten zwei Tage noch mal ein bisschen mit meinem Xiaomi Mjija G1 (mijia.vacuum.v2) beschäftigt und kann ihn momentan per python-miio mit einem, aus dem Modul für den dreame.vacuum abgeleiteten Modul steuern und Stati auslesen.
Leider bin ich weder Perl-Experte, noch kenne ich mich im Detail mit FHEM-Plugins aus, aber vielleicht helfen ja diese Pseudomappings, die meine Quelle für die Umsetzung waren, irgendwem weiter (Ich teste auch gerne ;) )
Hast du Android? Dann könntest du mal mit der russischen App die Befehle loggen.
Die miot-spec.org Adresse wäre auch ganz interessant.
Zitat von: Markus M. am 13 November 2020, 14:15:43
Hast du Android? Dann könntest du mal mit der russischen App die Befehle loggen.
Die miot-spec.org Adresse wäre auch ganz interessant.
Kein Android...
Das was beim mir noch nicht funktioniert liegt im Moment eher dran, dass ich einen Pull-Request von python-miio verwende,
in dem die MIOT-API im Umbau ist und sich ein paar Sachen geändert haben und nicht mehr so funktionieren wie vorher.
Alles was an das Gerät an Properties und Actions vorsteht, sollte soweit oben drin sein, hier aber noch die miot-spec:
https://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:vacuum:0000A006:mijia-v1:1
Halllo!
Auch ich habe nun einen S5max. Der musste natürlich gleich in FHEM integriert werden ;) Tolles Modul! Danke!
Kleiner Tipp um den Token schnell zu bekommen:
https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/
Ich musste die Windows-Version verwenden. Finde ich noch angenehmer als eine Russische App. Das Python script ist wohl für eine neuere Python-Version geschrieben.
Vielleicht kann ja ein Profi das mit ins Modul integrieren...also quasi eine Token Abfrage direkt in FHEM? :)
Vielleicht kann man da noch mehr bekommen...z.B. die Raumnamen? Das wäre der Kracher!
Da es ja recht einfach möglich ist die IDs der Räume auszutesten (Bei mir startet das ab 16) kann ich nun den Bot einfach mit
set <device> segment Wohnzimmer
starten. Prima.
Hat das schon jemand in Alexa integriert? Wie kann ich das machen?
Können auch mehrere Räume gleichzeitig gewählt werden? Wie könnte man das in Alexa umsetzen?
Gruß
Bismosa
Das mit Alexa putz mein Wohnzimmer,hab ich noch vor.
Ich hab bis jetzt immer die dummy Methode mit reading dim genommen, dann in der Alexa App eine Routine erstellt bei der ich den dim Wert entsprechend schalte. Und dann mit einen DOIF die Befehle loslasse wenn der dim ein entsprechender Wert bekommt. So würde ich das mal bei mir machen. Komme aber gerade nicht dazu. Vielleicht gibts auch bessere Möglichkeiten.
Zitat von: bismosa am 18 November 2020, 19:57:50
Halllo!
Auch ich habe nun einen S5max. Der musste natürlich gleich in FHEM integriert werden ;) Tolles Modul! Danke!
Kleiner Tipp um den Token schnell zu bekommen:
https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/
Ich musste die Windows-Version verwenden. Finde ich noch angenehmer als eine Russische App. Das Python script ist wohl für eine neuere Python-Version geschrieben.
Vielleicht kann ja ein Profi das mit ins Modul integrieren...also quasi eine Token Abfrage direkt in FHEM? :)
Vielleicht kann man da noch mehr bekommen...z.B. die Raumnamen? Das wäre der Kracher!
Da es ja recht einfach möglich ist die IDs der Räume auszutesten (Bei mir startet das ab 16) kann ich nun den Bot einfach mit
set <device> segment Wohnzimmer
starten. Prima.
Hat das schon jemand in Alexa integriert? Wie kann ich das machen?
Können auch mehrere Räume gleichzeitig gewählt werden? Wie könnte man das in Alexa umsetzen?
Gruß
Bismosa
[/quote
Zitat von: dominik am 11 Oktober 2020, 15:37:49
Für alle die die einen einfachen Weg für das Beziehen der Xiaomi Tokens suchen, hier nun als FHEM Modul:
Zuerst fhem_pythonbinding installieren:
https://github.com/dominikkarall/fhem_pythonbinding
danach:
define xiaomi_tokens PythonModule xiaomi_tokens
set xiaomi_tokens username USERNAME@MAIL.COM
set xiaomi_tokens password PASSWORD
set xiaomi_tokens get_tokens
Danach findet man alle Xiaomi Tokens in den Readings. Username und Passwort werden nicht gespeichert, sondern nur zum Abruf der Tokens benutzt.
Hallo zusammen, kl. Probleme mit dem Air Purifier 3C, also das 3C Model.
Liefert Werte, aber remote Bedienung klappt nicht.
z.B on / off , Mode , state use.
Angeblicher Unterschied zum 3H, Leistung der Filterung 320 zu 380 beim H
und kein OLED Display.
Der SubType : AirPurifier3H liefert immerhin Werte.
@Markus siehst Du eine Chance den 3C einzubinden?
Liefere gerne Werte / Logs etc.
Im Log steht :
AirPurifier3c error: methodnotfound
2020.12.02 17:35:50 5: AirPurifier3c: parse id 150
{
'error' => {
'code' => -5000,
'message' => 'methodnotfound'
},
'exe_time' => 130,
'id' => 150
}
Internals:
DEF 192.xxx.xxx.xxx d7c0b9a108584151f4b1cf4be8d05b2d
FD 44
FUUID 5fc7b759-f33f-0190-b4fa-b065c66e3252deeb
NAME AirPurifier3c
NR 2070
STATE ???
TYPE XiaomiDevice
hardware esp32
mac 64:90:C1:90:A6:DD
mcu_firmware 0006
model zhimi.airpurifier.mb4
token d7c0b9a108584151f4b1cf4be8d05b2d
wifi_firmware cef6c09-dirty
READINGS:
2020-12-02 16:54:30 child_lock on
2020-12-02 16:54:26 device_firmware 2.0.8
2020-12-02 16:54:26 device_uptime 0.22
2020-12-02 16:56:36 error none
2020-12-02 16:56:29 filter_life 0
2020-12-02 16:54:30 led dim
2020-12-02 16:56:29 level 0
2020-12-02 16:53:17 mode auto
2020-12-02 16:56:36 power on
2020-12-02 16:54:26 wifi_rssi -51
helper:
ConnectionState connected
crypt AES
delay 60
dev 13ee
id 250a
ip 192.xxx.xxx.xxx
last_read 1606924596
packetid 47
port 54321
sequence 1606923658
token d7c0k5a108456781f4b1cf4be8d05b3c
packet:
44 power_on
45 air_data_3H
46 air_status_3H
Attributes:
room Xiaomi-Devices
subType AirPurifier3H
jsonList2
{
"Arg":"AirPurifier3c",
"Results": [
{
"Name":"AirPurifier3c",
"PossibleSets":"reconnect:noArg wifi_setup on:noArg off:noArg mode:auto,fan,silent,favorite favorite:slider,0,1,14 level:slider,0,1,3 buzzer:on,off led:bright,dim,off child_lock:on,off",
"PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 subType:AirPurifier,AirPurifier3H,Humidifier,EvpHumidifier,HumidifierMJJSQ,VacuumCleaner,SmartFan,SmartFan1X,SmartFan1C,SmartFanFA1,TowerFanP9,SmartLamp,EyeCare,WaterPurifier,Camera,RiceCooker,PowerPlug intervalData intervalSettings preset disable:0,1 zone_names point_names map_names segment_names event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DbLogExclude DbLogInclude DbLogValueFn:textField-long alexaName alexaProactiveEvents:1,0 alexaRoom cmdIcon devStateIcon devStateIcon:textField-long devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long msgContactAudio msgContactLight msgContactMail msgContactPush msgContactScreen msgParams msgPriority msgRecipient msgRecipientAudio msgRecipientLight msgRecipientMail msgRecipientPush msgRecipientScreen msgRecipientText msgTitle msgTitleShrt msgType:text,push,mail,screen,light,audio,queue siriName sortby webCmd webCmdLabel:textField-long widgetOverride userattr",
"Internals": {
"DEF": "192.xxx.xxx.xx d7c0k5a108456781f4b1cf4be8d05b3c",
"FD": "44",
"FUUID": "5fc7b759-f33f-0190-b4fa-b065c66e3252deeb",
"NAME": "AirPurifier3c",
"NR": "2070",
"STATE": "???",
"TYPE": "XiaomiDevice",
"hardware": "esp32",
"mac": "64:90:C1:90:A6:DD",
"mcu_firmware": "0006",
"model": "zhimi.airpurifier.mb4",
"token": "d7c0k5a108456781f4b1cf4be8d05b3c",
"wifi_firmware": "cef6c09-dirty"
},
"Readings": {
"child_lock": { "Value":"on", "Time":"2020-12-02 19:35:21" },
"device_firmware": { "Value":"2.0.8", "Time":"2020-12-02 18:20:42" },
"device_uptime": { "Value":"0.54", "Time":"2020-12-02 18:20:42" },
"error": { "Value":"none", "Time":"2020-12-02 20:00:37" },
"filter_life": { "Value":"3", "Time":"2020-12-02 20:00:37" },
"led": { "Value":"dim", "Time":"2020-12-02 19:35:21" },
"level": { "Value":"2", "Time":"2020-12-02 20:00:37" },
"mode": { "Value":"auto", "Time":"2020-12-02 17:45:13" },
"power": { "Value":"on", "Time":"2020-12-02 20:00:37" },
"wifi_rssi": { "Value":"-67", "Time":"2020-12-02 18:20:42" }
},
"Attributes": {
"room": "Xiaomi-Devices",
"subType": "AirPurifier3H"
}
} ],
"totalResultsReturned":1
}
Zitat von: cortmen am 02 Dezember 2020, 17:00:21
Hallo zusammen, kl. Probleme mit dem Air Purifier 3C, also das 3C Model.
Liefert Werte, aber remote Bedienung klappt nicht.
z.B on / off , Mode , state use.
Funktioniert on/off bei irgendeinem anderen Device in subtype?
Ansonsten müsstest du das mal mit der Android App mitschneiden.
https://translate.google.com/translate?sl=auto&tl=en&u=https%3A%2F%2Fwww.kapiba.ru%2F2017%2F11%2Fmi-home.html (https://translate.google.com/translate?sl=auto&tl=en&u=https%3A%2F%2Fwww.kapiba.ru%2F2017%2F11%2Fmi-home.html)
:(Leider nein, kein anderer Subtype ändert etwas.
Von den set Befehlen, geht nur :
set AirPurifier3c level 1 u. 2
NightMode =1 | Manual Mode = 2
Alle get Befehlen funktionieren.
Hast du Android? Dann log mal mit der modifizierten MiHome App, siehe 1. Seite, 3. Post
neuste Version der App geladen.
Altes Android 6 Gerät.
Logs sind erstellt worden. :)
Zitat von: cortmen am 04 Dezember 2020, 21:54:28
neuste Version der App geladen.
Altes Android 6 Gerät.
Logs sind erstellt worden. :)
War nicht viel: power, mode, pm25 (?), buzzer, led
Brauche noch die Logs aus der Bedienung, einfach in der App alles mal durchklicken.
Die miot-spec URL würde auch helfen.
:)Super, vielen Dank
power, mode, buzzer, led funktionieren
Das Reading pm25 ist jetzt auch da.
Was nicht gehtr aus den zur Verfügung stehenden Settings:
level 0 - 3, child_lock
bei get, die wifi_stats
Internals:
DEF x.x.x.x. 5454ztrhtghgju6z76546
FD 31
FUUID 5fc7b759-f33f-0190-b4fa-b065c66e3252deeb
FVERSION 72_XiaomiDevice.pm:0.230210/2020-10-25
NAME AirPurifier3c
NR 356
STATE connected
TYPE XiaomiDevice
hardware esp32
mac 64:90:C1:56:A6:DD
mcu_firmware 0006
model zhimi.airpurifier.mb4
token
wifi_firmware cef6c09-dirty
READINGS:
2020-12-05 20:48:09 buzzer on
2020-12-05 20:32:02 child_lock on
2020-12-05 20:32:36 device_firmware 2.0.8
2020-12-05 20:32:36 device_uptime 74.74
2020-12-05 20:48:09 error none
2020-12-05 20:32:14 filter_life 74
2020-12-05 20:48:09 led off
2020-12-05 20:32:14 level 2
2020-12-05 20:48:09 mode favorite
2020-12-05 20:48:09 pm25 1
2020-12-05 20:48:09 power on
2020-12-05 11:22:13 state connected
2020-12-05 20:32:36 wifi_rssi -69
helper:
ConnectionState connected
crypt AES
delay 60
dev 13ee
id 250a
ip 192.000.000.000
last_read 1607197689
packetid 128
port 54321
sequence 1606927697
token
packet:
125 led_off
126 air_data_3C
127 air_data_3C
Attributes:
room Xiaomi-Devices
subType AirPurifier3C
Damit sollte AirPurifier3C komplett sein.
Kann man den aktuelle Level tatsächlich nicht direkt verstellen, nur über Favorite?
In welchen Schritten funktioniert das in der App?
:)bin am testen,
wifi_stats - > error methodnotfound
Na da kann man aber leben ;D
"set level 0 -3" ist raus.
Dafür hat "set Favorite" jetzt Werte von 300 - 2200
Verändere ich die Werte, verändert sich der Schieberegler in Mi Home App nicht.
Am Gerät verändert sich aber der Luftdurchsatz sofort. :D
Ich sage mal, den Airpurifier 3C kann man im Modul-Update aufnehmen.
Finde keine direkten Fehler mehr.
@Markus, vielen Dank für Deine sehr schnelle und gezielte Unterstützung für Airpurifier 3C
Hallo,
Ich besitze seit neusten mit dem Dreame F9 meinen ersten intelligenten Saugroboter.
Da dieser auch zum Xiaomi Ökosystem gehört ist es evtl auch bei diesem möglich ihn in Fhem zu integrieren? Und wenn ja wie? Es gibt ja scheinbar viele verschiedene Arten den sogenannten Token auszulesen.
Danke und Gruß, Sven
Eventuell auch mal da https://forum.fhem.de/index.php/topic,115427.msg1096835.html#msg1096835 schauen, ob es damit (einfacher) geht...
Soll hier aber nicht "Abwerben" für ein "Konkurenz-Modul" sein!!
Gruß, Joachim
Hallo zusammen,
ich habe meinen Roborock S5 in FHEM eingebunden, funktioniert prinzipiell auch super, vielen Dank dafür :)
Ich habe allerdings ein Problem mit dem
move-Befehl, mit dem ich den Roboter 'ausparken' möchte. Bei mir startet der Roboter bei jedem move eine Lokalisierung und dreht sich im Kreis, bewegt sich aber ansonsten nicht. Das Thema gab es auch schon früher in diesem Forum, z.B. hier:
Zitat von: M@ik am 28 Februar 2018, 17:43:38
Meiner parkt auch unter einem Schrank, ich fahre ihn hiermit 30cm nach vorne:
my $fanpower = ReadingsVal("vacuum","fan_power",77);
fhem"set vacuum fan_power 1;set vacuum remotecontrol start;sleep 8;set vacuum move 0 50 2000;sleep 2;set vacuum remotecontrol stop;sleep 5;set vacuum fan_power $fanpower;set vacuum locate";
....
Leider funktioniert das bei mir nicht sondern führt nur zu oben beschriebener Lokalisierung. Kann es sein, dass sich das Interface zum Roboter geändert hat oder hat jemand eine Idee, woran das liegen kann?
Zitat von: Screambear am 06 Dezember 2020, 12:06:53
Ich besitze seit neusten mit dem Dreame F9 meinen ersten intelligenten Saugroboter.
Da dieser auch zum Xiaomi Ökosystem gehört ist es evtl auch bei diesem möglich ihn in Fhem zu integrieren? Und wenn ja wie?
Modifizierte Android App aus dem 3. Post installieren, sämtliche möglichen Befehle loggen und hier posten.
Zitat von: kamuxo am 06 Dezember 2020, 14:44:14Ich habe allerdings ein Problem mit dem move-Befehl, mit dem ich den Roboter 'ausparken' möchte. Bei mir startet der Roboter bei jedem move eine Lokalisierung und dreht sich im Kreis, bewegt sich aber ansonsten nicht. Das Thema gab es auch schon früher in diesem Forum, z.B. hier:
Leider funktioniert das bei mir nicht sondern führt nur zu oben beschriebener Lokalisierung.
Nimm die selbe App, aktivier das Logging und mach dann mit der App mal das was du haben möchtest (Ausparken).
Dann können wir die Befehle vergleichen.
Neue Version für den AirPurifier3C
:)Top, siehst gut aus.
Zitat von: Markus M. am 06 Dezember 2020, 15:22:30
Modifizierte Android App aus dem 3. Post installieren, sämtliche möglichen Befehle loggen und hier posten.
Danke für die Rückmeldung. Welche App genau meinst du? Diese russische? Das andere ist doch nur um den Token auszulesen oder? Sollte ich das ganze dann zur Sicherheit in einem Android emulator laufen lassen?
Guten Abend,
Wird dieses Gerät unterstützt?
In Fhem wird mir als model viomi.vacuum.v8 angezeigt mit Firmware 3.5.3_0017.
Status ist auch connected aber ich kann den saugroboter nicht steuern.
Gruß
Max
@MadMax
Ich hatte das selbe Problem mit meinen Xioami Vaccum mop pro. Selbe Typenbezeichnung und Firmware.
Bin mir nicht ganz sichere aber ich glaube hier gelesen zu haben das der noch nicht voll unterstützt wird.
Mit
https://github.com/dominikkarall/fhem_pythonbinding
Ist unser Model aber ohne schwierigkeiten in FHEM eingebunden. Es sind da zwar auch einige Sachen die noch nicht funktionieren, so wie das gezielte Reinigen von einen Raum.
Aber sonst funktioniert es.
Gruß
Stephan
Hallo Stephan,
Ok, danke für die Info.
Mal sehen ob ich mir das am Wochenende mal anschaue.
Bei mir sieht es genauso aus hier mal ein list
Internals:
DEF 192.168.178.59 304e4b576a7453785564544b66396579
FUUID 5fce5233-f33f-134a-ac51-e1aca3d41d05f9ee
NAME Mi_Vacuum
NR 453
STATE connected
TYPE XiaomiDevice
READINGS:
2020-12-07 17:14:01 device_firmware 3.5.3_0017
2020-12-07 17:14:01 device_uptime 2.36
2020-12-07 17:14:01 error none
2020-12-07 17:05:32 state connected
2020-12-07 17:05:32 wifi_auth_fail_count 0
2020-12-07 17:05:32 wifi_conn_fail_count 0
2020-12-07 17:05:32 wifi_conn_success_count 1
2020-12-07 17:05:32 wifi_dhcp_fail_count 0
2020-12-07 17:05:32 wifi_state online
helper:
crypt AES
delay 60
ip 192.168.178.59
packetid 1
port 54321
token 304e4b576a7453785564544b66396579
Attributes:
disable 0
room Test
stateFormat state
subType VacuumCleaner
Steht auf connected nimmt aber keine Befehle an. Leider
Gruß
Stephan
Wäre mal interessant wie man den Sauger in dieses Modul integriert
Ich habe mal versucht ein paar Komandos per app aus Post nr. 3 mitzuschneiden. Bin mir aber nicht sicher ob das die Richtige Log daten ist die miio2.db konnte ich nicht finden.
Diese kommen aus dem MiPushLog Vieleicht kann man mit denen ja was machen.
action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 19:49:32 nachm. com.xiaomi.smarthome [Tid:303] receiving an empty message, drop
2020-12-07 19:55:46 nachm. com.xiaomi.smarthome [Tid:346] ASSEMBLE_PUSH : assemble push register
2020-12-07 19:55:46 nachm. com.xiaomi.smarthome [Tid:346] ASSEMBLE_PUSH : HW user switch : true HW online switch : true HW isSupport : false
2020-12-07 19:55:46 nachm. com.xiaomi.smarthome [Tid:346] ASSEMBLE_PUSH : COS user switch : true COS online switch : true COS isSupport : false
2020-12-07 19:55:46 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 19:55:46 nachm. com.xiaomi.smarthome [Tid:346] receiving an empty message, drop
2020-12-07 20:01:51 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:01:51 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:01:51 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:01:51 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:01:51 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00113607367710711Ab, jobkey=sfm00113607367710711Ab
2020-12-07 20:01:51 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:04:52 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:04:52 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:04:52 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:04:52 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:04:52 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00137607367891873hN, jobkey=sfm00137607367891873hN
2020-12-07 20:04:52 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:15:03 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:15:03 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:15:03 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:15:03 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:15:03 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00133607368503160qe, jobkey=sfm00133607368503160qe
2020-12-07 20:15:03 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
Fernbedienung Vorwärts
2020-12-07 20:17:46 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:17:46 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:17:46 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:17:46 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:17:46 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00153607368666251sM, jobkey=sfm00153607368666251sM
2020-12-07 20:17:46 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:18:18 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:18:18 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:18:18 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:18:18 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:18:18 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00159607368698525Su, jobkey=sfm00159607368698525Su
2020-12-07 20:18:18 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
Reinigung starten
2020-12-07 20:22:38 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:22:38 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:22:38 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:22:38 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:22:38 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm002326073689589412S, jobkey=sfm002326073689589412S
2020-12-07 20:22:38 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:22:43 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:22:43 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:22:43 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:22:43 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:22:43 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm001546073689638782e, jobkey=sfm001546073689638782e
2020-12-07 20:22:43 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
Pause
2020-12-07 20:23:51 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:23:51 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:23:51 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:23:51 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:23:51 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00213607369031803YM, jobkey=sfm00213607369031803YM
2020-12-07 20:23:51 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
Fernbedienung rechts
2020-12-07 20:24:51 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:24:51 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:24:51 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:24:51 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:24:51 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm002116073690915827m, jobkey=sfm002116073690915827m
2020-12-07 20:24:51 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:24:53 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:24:53 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:24:53 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:24:53 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:24:53 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00117607369093799aA, jobkey=sfm00117607369093799aA
2020-12-07 20:24:53 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
Rückkehr zur Ladestation
2020-12-07 20:26:14 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:26:14 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:26:14 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:26:14 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:26:14 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00123607369175301Vn, jobkey=sfm00123607369175301Vn
2020-12-07 20:26:14 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:26:18 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:26:18 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:26:18 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:26:18 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:26:18 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00296607369178653HS, jobkey=sfm00296607369178653HS
2020-12-07 20:26:18 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
Reinigung starten leise
2020-12-07 20:28:15 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:28:15 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:28:15 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:28:15 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:28:15 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00274607369295989MQ, jobkey=sfm00274607369295989MQ
2020-12-07 20:28:15 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:28:28 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:28:28 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:28:28 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:28:28 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:28:28 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00220607369308477A9, jobkey=sfm00220607369308477A9
2020-12-07 20:28:28 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
Staubsaugen wird vortgesetzt
2020-12-07 20:30:10 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:30:10 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:30:10 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:30:10 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:30:10 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00217607369410681nQ, jobkey=sfm00217607369410681nQ
2020-12-07 20:30:10 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
Reinigung abbrechen
2020-12-07 20:32:41 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:32:41 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:32:41 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:32:41 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:32:41 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm001856073695617917X, jobkey=sfm001856073695617917X
2020-12-07 20:32:41 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:32:43 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:32:43 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:32:43 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:32:43 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:32:43 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00177607369563939Lh, jobkey=sfm00177607369563939Lh
2020-12-07 20:32:43 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
Rückkehr zur Ladestation
2020-12-07 20:34:03 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:34:03 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:34:03 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:34:03 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:34:03 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00106607369644374ap, jobkey=sfm00106607369644374ap
2020-12-07 20:34:03 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:34:11 nachm. com.xiaomi.smarthome [Tid:346] receive an intent from server, action=com.xiaomi.mipush.RECEIVE_MESSAGE
2020-12-07 20:34:11 nachm. com.xiaomi.smarthome [Tid:1] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:34:11 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
2020-12-07 20:34:11 nachm. com.xiaomi.smarthome [Tid:346] processing a message, action=SendMessage
2020-12-07 20:34:11 nachm. com.xiaomi.smarthome [Tid:346] receive a message, msgid=sfm00115607369652378Un, jobkey=sfm00115607369652378Un
2020-12-07 20:34:11 nachm. com.xiaomi.smarthome [Tid:346] loadClass fail hasContext= false, errMsg = miui.os.Build
Gruß
Stephan
Hey Cool,
Mal sehen ob das was bringt, ich kann eventuell am Wochenende auch noch logs beisteuern.
Hallo,
ich würde gerne mit verschiedenen Befehlen den Staubsauger in verschiedenen Stockwerken saugen lassen.
Mit set Staubsauger segment 16-20 kann ich einzelne Räume
ansteuern. Aber wie wähle ich die verschiedenen Stockwerke aus?
Hi Markus,
Ich habe den smartmi air humidifier 2, dieser wird anscheinend noch nicht vom Modul unterstützt.
https://www.smartmi.com.cn/products_pureHum2/
Wie kann ich die Daten / Logs für eine Integration bereitstellen?
Gruß
Lars
Hi,
Habe seit langem den ersten Xiaomi Saugroboter im Einsatz und hatte diesen auch von Anfang an in FHEM eingebunden.
Nun habe ich mein WLAN auf komplett neue Hardware gewechselt und auch die SSID meines WLANs habe ich anfang Dez. geändert.
Mir ist nun heute aufgefallen, dass ich den Saugroboter noch garnicht im neuen WLAN habe und habe das WLAN resettet und den Saugroboter ins neue WLAN eingebunden.
Direkt noch ein Firmwareupdate gemacht (nun auf 3.5.8_004018), aber nun connected der Saugroboter nicht mehr mit FHEM.
Woran kann das liegen? Außer das Update und die neue SSID hat sich nichts geändert. IP ist gleich, MAC ist auch korrekt.
Woran kann das liegen?
Hier das Device:
DEF 192.168.2.43 4a75747a4f665367474773435a363573
FD 58
FUUID 5c4f7c8f-f33f-7a20-1a82-223b0da735cd6889
NAME EG_Robi
NR 23
STATE disconnected
TYPE XiaomiDevice
hardware Linux
mac 7C:49:EB:9F:89:47
model rockrobo.vacuum.v1
token 4a75747a4f665367474773435a363573
token ?
Der ändert sich beim Wlan neu einbinden :)
Gerade auch gesehen. Na klasse. >:(
Kommt man da noch ran? Ich finde überall nur, dass das nicht mehr funktioniert...
In Post 3 steht was von einer db in der es steht, die finde ich bei mir nicht.
GIbt es noch eine chance?
"Rooten" und gut is...
Ist das erste was ich mache/gemacht habe, wenn ich einen meiner Sauger eingebunden hab...
Gruß, Joachim
Das klappt noch? Hast du da eine aktuelle Anleitung zu?
Hat sich nichts geändert...
FW mit ssh "generieren" und dann Sauger resetten und aufspielen...
Ich kann dann mal nach Links suchen...
EDIT: hier schon mal ein "Einstieg" https://forum.fhem.de/index.php/topic,86535.msg789573.html#msg789573
Hab einen PI und mittlerweilen eine Ubuntu VM mit USB-WLAN-Stick...
Gruß, Joachim
Oder Token hiermit extrahieren:
https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor
Siehe auch hier (https://forum.fhem.de/index.php/topic,73052.msg1102368.html#msg1102368).
Ich hab das letzte Mal mit dieser App den Token ausgelesen und auch das Package installiert.
https://forum.xda-developers.com/t/app-android-4-4-ios-8-0-xvacuum-firmware-xiaomi-vacuum-roborock-v1-v2-v3.3896526/
Zitat von: neyzen am 09 Dezember 2020, 10:44:52
Hallo,
ich würde gerne mit verschiedenen Befehlen den Staubsauger in verschiedenen Stockwerken saugen lassen.
Mit set Staubsauger segment 16-20 kann ich einzelne Räume
ansteuern. Aber wie wähle ich die verschiedenen Stockwerke aus?
Ich wollt nochmal nachfragen. Hat den niemand ein mehrstöckiges Haus?
Hallo Markus,
anbei ein Patch zur Unterstützung eines weiteren Gadgets:
Xiaomi Xiaowan Pet Water Dispenser (https://c.mi.com/thread-2111710-1-0.html)
model mmgg.pet_waterer.s1
Set-Befehle:
led on/off
mode common (always on)/smart (toggle every 10 minutes)
on
off
Get-Befehle:
data
settings
Readings:
filter_cotton_left_time_days
filter_left_time_days
no_water_time_minutes
pump_blocked
remain_clean_time_days
water_level
Dokumentation ist auch im Modul ergänzt.
Was noch fehlt sind die set-Befehle:
reset_filter-life
reset_cotton_life
reset_clean_time
reset_device
Dafür bräuchte ich eine kurze Infos von Dir, wie das geht.
Ein Versuch für "reset_filter_life" ist auskommentiert im Patch vorhanden.
Zu Grunde liegende Infos kommen von hier:
https://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:pet-drinking-fountain:0000A067:mmgg-s1:1
https://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:pet-drinking-fountain:0000A067:mmgg-s1:2
Wäre nett, wann Du 'mal drüberschaust und bei Gefallen in das Modul integrierst.
Vielen Dank und Grüße,
Andreas
Edit 24.12.2020: Weitere Ergänzungen und neueste Version des Patches hier (https://forum.fhem.de/index.php/topic,73052.msg1113942.html#msg1113942).
Hi zusammen,
gestern war die Welt noch in Ordnung, aber heute brauche ich den ein oder anderen Hinweis, um meinen 3H ans Laufen zu bekommen.Ich komme nicht an den token. :'(
Als Cloud- u. Monopolisten-Hasser habe ich kein Mobile der Monopolisten(tw. arbeite ich mit Memuplayer als Emulator) u. gehe immer sehr vorsichtig vor ein neues device anzubinden. So auch mit dem airpurifier. Relativ schnell bekam ich heraus, dass der mit einem ESP werkelt u. einen offenen AP öffnet, mit dem ich mich auf 192.168.4.1 verbinden kann. Einen "Webserver" konnte ich nicht entdecken. Ich hab mich dann gequält meinem Wifi des Rpi den AP beizubringen und eines der zahlreichen und manchmal gar nicht mehr aktuellen js/python tools zu installieren. miio. Ein discover bringt rein gar nichts. :'( Dann hab ich das device in FHEM angelegt und siehe da, klasse, Verbindung, token wird gelesen und gespeichert, alle Befehle funktionieren einwandfrei.(Danke Markus, ein tolles Modul).
Nun ist der Rest ein Kinderspiel(dachte ich). WiFi_setup ausprobiert u. dem 3H mein lokales Netz bekannt gemacht. Mit miio wurde der 3H nun auch unter der lokalen IP erkannt, allerdings mit token=????????. Offensichtlich wurde mit dem WiFi_setup ein neuer token vergeben, der nun in der weiten Welt rumgeistert, aber mir unbekannt ist. Folglich funktioniert nun das device nicht mehr, da der 3H nun nicht mehr so gesprächig ist(liest man ja auch allerorten und nun versteht man, was gemeint ist).
In der Fritte ist der Netzzugang gesperrt u. ich hab die 3 Domains, die der 3H anfunken will blacklisted. Das führt dazu, dass der 3H permanent broadcastmessages über port 54321 per UDP versendet und scheinbar mit einem token. Dieser ändert sich aber leider permanent. Ich sehe das mit Wireshark. Hier mal die Daten einer message, die ja 32byte lang ist und die magic-bytes enthält.
2131 0020 ffffffffffffffff 0000 0298 17836099364b1bdb6f5d5c7a6e111c67
I I I I
I I I 32-character token ???? encrypted ???
I I counter
I length bytes
magic bytes
Muss der nun noch entschlüsselt werden ? Bleibt der evtl. dauerhafter gültig, auch wenn ein neuer vom 3H "emitted" wurde ? Kann ich damit was anfangen ? Bringt es evtl. mehr, wenn ich den traffic der Fritte per tcpdump aufzeichne ? Denn wenn ich die Domains zulasse(whitelisted in pi-hole), verstummt Wireshark. :'( Da soll also irgendwie der token "committed" werden.
@Markus: Modul hab ich natürlich auch schon studiert. Was macht denn das stop.diag_mode nach dem WiFi_setup konkret ?
An die, die etwas mehr über das token wissen. Ich lese, es würde nicht mehr in der App gespeichert. Wo denn dann, um die Kommunikation über die Verschlüsselung MIT dem token zu authorisieren ? In der Cloud kann es ja auch nicht sein, da ich von dkreutz die Info erhielt, dass man das Inet getrost "abklemmen" kann, wenn man den token hat.
Zusammengefasst meine eigentlich einzige Frage: Wie kommt man per Traffic sniffen an das gültige Token oder wie lässt sich ein token evtl. committen ? Ich könnte ggfs. auch den Traffic im Memuplayer mitschneiden. Hab mich noch nicht getraut die App über Memuplayer im Zustand nach WLAN-Wechsel zu benutzen. :-[
Danke&Grüße
Markus
::)Auf Seite 1 ist ja der Hinweis auf die Mi Home App (*Special Version)
* eventuell "altes" Android Handy 6.0 dazu nutzen, inkl. Kennwortänderung auf den Mi Account.
Dort wird in der App, unter "Erweitert" des jeweiligen Devices der aktuelle Token angezeigt)
Natürlich muss man das Device dazu leider 1x in der Cloud gesetzt haben.
Ich habe damit und natürlich Markus seine Hilfe meine AirPurifier 3C sehr schön integriert und ans "laufen" bekommen.
Die *Special Mi Home App leg noch Logs der einzelnen Steuerbefehle und ne Menge technische Infos zum Chip an.
Zitat von: scooty am 13 Dezember 2020, 22:52:17
Oder Token hiermit extrahieren:
https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor
Siehe auch hier (https://forum.fhem.de/index.php/topic,73052.msg1102368.html#msg1102368).
Wunderbar, einwandfrei. Danke.
Zitat von: scooty am 20 Dezember 2020, 20:02:42
Hallo Markus,
anbei ein Patch zur Unterstützung eines weiteren Gadgets:
Xiaomi Xiaowan Pet Water Dispenser (https://c.mi.com/thread-2111710-1-0.html)
model mmgg.pet_waterer.s1
... siehe auch dieser Beitrag (https://forum.fhem.de/index.php/topic,73052.msg1112607.html#msg1112607)
Zitat von: scooty am 20 Dezember 2020, 20:02:42
Was noch fehlt sind die set-Befehle:
reset_filter_life
reset_cotton_life
reset_clean_time
reset_device
Sind jetzt auch drin, allerdings unter den Bezeichnungen:
reset_cotton_filter_days (*)
reset_filter_days (*)
reset_clean_days
(*): einen Unterschied zwischen den beiden Readings/Befehlen habe ich bis jetzt nicht feststellen könne, beide Readings zeigen das gleiche an und beim (bisher
einmal mehrfach, mal reset_cotton_filter_days, mal reset_filter_days, durchgeführten) reset eines Filters wurde auch der andere Filter zurückgesetzt.
Auf Implementierung von "reset_device" habe ich verzichtet, der Befehl mach mEn keinen Sinn.
Im Patch ist auch eine Korrektur beim <set mode>-Befehl für dieses Gerät mit aufgenommen.
Doku ist ebenso angepasst/ergänzt.
Anbei also die neueste Version des Patches.
Wie gesagt, wäre nett, wann Du 'mal drüberschaust und bei Gefallen in das Modul integrierst.
Schöne Weihnachten,
Andreas
Moin Leute,
Bei mir ist Zuwachs über Weihnachten dazu gekommen...
https://valetudo.cloud/pages/knowledge_base/supported-dreame-devices.html (https://valetudo.cloud/pages/knowledge_base/supported-dreame-devices.html)
Nachdem es ne Weile gbraucht hat das Ding überhaupt mit der MI APP zum Fliegen zu bringen, wozu braucht APP den Zugriff auf das Adressbuch, Standortdaten, usw., das Teil soll im Haus saugen und wischen und nicht weiter zu allen Kontakten im Adressbuch rattern. ;D
Wie nun rankommen an den Token aus der Cloud, wenn man wie ich zu blöde ist mangels alten Androiden die beschriebenen Wege zu nutzen?
Ganz einfach, die Kollegen von IO-Broker haben ein Device, dass das für einen macht.
https://www.smarthomejetzt.de/roborock-s50-s55-s60-einbinden-und-iobroker-token-auslesen/ (https://www.smarthomejetzt.de/roborock-s50-s55-s60-einbinden-und-iobroker-token-auslesen/)
Einfach ne Linux VM mit IOBroker aufsetzen und Adapter gemäß Anleitung auf setzen. ;-)
Natürlich kommt der Adapter von denen mit dem Mi Robot Vacuum Mop überhaupt nicht klar, aber immerhin 72_XiaomiDevice kann einige Daten auslesen
2020.12.28 08:41:58 2: Fliewatuet: connecting
2020.12.28 08:41:58 3: Fliewatuet: initialized
2020.12.28 08:41:58 5: Fliewatuet: initSend
2020.12.28 08:41:58 5: Fliewatuet Send SUCCESS
2020.12.28 08:41:58 5: Fliewatuet > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2020.12.28 08:41:58 5: Fliewatuet < 213100200000000016d0afa95fe98c46ffffffffffffffffffffffffffffffff (32)
2020.12.28 08:42:02 4: Fliewatuet: write {"id":3821,"method":"miIO.info","params":[""]} (46)
2020.12.28 08:42:02 5: Fliewatuet: send 213100500000000016d0afa95fe98c4a0ceb8714f3f33e122531b2952b45d9b8ff9b3ffcace454855759be2c31fa1f82055899faace31b8e97139d6b4d00ac049c229460b598486eea5fc2e3d5ac24f4
2020.12.28 08:42:02 5: Fliewatuet Send SUCCESS
2020.12.28 08:42:02 5: Fliewatuet > 213100500000000016d0afa95fe98c4a0ceb8714f3f33e122531b2952b45d9b8ff9b3ffcace454855759be2c31fa1f82055899faace31b8e97139d6b4d00ac049c229460b598486eea5fc2e3d5ac24f4
2020.12.28 08:42:02 4: Fliewatuet: write {"id":3822,"method":"miIO.wifi_assoc_state","params":[""]} (58)
2020.12.28 08:42:02 5: Fliewatuet: send 213100600000000016d0afa95fe98c4a6f7c7358e5614a7d380ceec0d5e27c687ebc441b5b32c364849a9ed06916bcd9ff7e04aa4564806a2958ae8cc0cc90efc9a40e0cb864d594c90918d2247769d77f3efbf374729a0d8a8b283f227ca73e
2020.12.28 08:42:02 5: Fliewatuet Send SUCCESS
2020.12.28 08:42:02 5: Fliewatuet > 213100600000000016d0afa95fe98c4a6f7c7358e5614a7d380ceec0d5e27c687ebc441b5b32c364849a9ed06916bcd9ff7e04aa4564806a2958ae8cc0cc90efc9a40e0cb864d594c90918d2247769d77f3efbf374729a0d8a8b283f227ca73e
2020.12.28 08:42:02 4: Fliewatuet: write {"id":3823,"method":"get_serial_number","params":[""]} (54)
2020.12.28 08:42:02 5: Fliewatuet: send 213100600000000016d0afa95fe98c4ad0fcdafd05737c9da460f5894ddb4e53f19d9695cebf3d86919427aa0481bcf1ae595ad2b932110dea2b994d728aa137950ce6f51444dbe53e00818416974b7fbd4b361ece89b853db2abe1a370d2ab7
2020.12.28 08:42:02 5: Fliewatuet Send SUCCESS
2020.12.28 08:42:02 5: Fliewatuet > 213100600000000016d0afa95fe98c4ad0fcdafd05737c9da460f5894ddb4e53f19d9695cebf3d86919427aa0481bcf1ae595ad2b932110dea2b994d728aa137950ce6f51444dbe53e00818416974b7fbd4b361ece89b853db2abe1a370d2ab7
2020.12.28 08:42:02 4: Fliewatuet: write {"id":3824,"method":"get_timezone","params":[""]} (49)
2020.12.28 08:42:02 5: Fliewatuet: send 213100600000000016d0afa95fe98c4a1a664d03538ad06bd50eaf391d54c4b2032d40291e3f2cbcac616676ac15a2d1402452b4c3b9bdf483db6c46c7b04d6aebcd0db6b88783e38e392c9b07d5149cf0e6ee96ba331578e99e8b4b60fd0c20
2020.12.28 08:42:02 5: Fliewatuet Send SUCCESS
2020.12.28 08:42:02 5: Fliewatuet > 213100600000000016d0afa95fe98c4a1a664d03538ad06bd50eaf391d54c4b2032d40291e3f2cbcac616676ac15a2d1402452b4c3b9bdf483db6c46c7b04d6aebcd0db6b88783e38e392c9b07d5149cf0e6ee96ba331578e99e8b4b60fd0c20
2020.12.28 08:42:02 5: Fliewatuet < 213101b00000000016d0afa95fe98c4ad09773091a4c911920310951005a57fc401250f3cca7cadeb146486c6d621058c961c99837ce3fe937d264e0e8edeed3812c7980b8b2ae23dc87e1ca32b6c6b4dfeaf492de7bf2a0f0f2b90136a2a5e9bd7adc6efc72f6035e5701bd81e8e6b9abfa07446606b8e8db313bd45c7cb6968fb5a3cd3591e3ca4bd40d7e6e9a5d5ee06a547182433157968270d5289726829abe015d02857924e780552b8edf4177f807cc7ccad4c73d8ab61640e0c56b8f98c95f389dbc4ba63485afde95eac28af3b137ee6d4d3d3335a7d83337e2512170aef5fa53911a34dbc6ffc0ea7cf77cb3104c3d0e36484699713d283ea8e9810e34f900f03e75e7a4b4a3e468aa093df9f1b0ed2a63886ae7840a89da92b8dc4751d81c61e1fec0be8ec70fd1d45ea6c1a8fd3532fd040e80494d97b14e80eefe66751202541dbcdab4d7503835a718556a4e6e832b926de08de866fa5b027da59eacd196e349500c3d2756369f07bb7323b5b818a47be1104f7662313030d3addc921534fb7318105c465a59d4d10847215efa0e281085fd0bee8e405f79b060e49e7b2c1275bb14f3ba6397418c44 (432)
2020.12.28 08:42:02 5: Fliewatuet: decrypted
{"partner_id":"","id":3821,"code":0,"message":"ok","result":{"hw_ver":"Linux","fw_ver":"3.5.8_1059","ap":{"ssid":"wlan","bssid":"ne mac","rssi":-37},"netif":{"localIp":"xxx.yyy.zzz.67","mask":"255.255.255.0","gw":"xxx.yyy.zzz.253"},"miio_ver":"miio-client 3.5.8","model":"dreame.vacuum.mc1808","mac":"Fliwatüt mac","token":"xxxx354448436e79315842366c69xxxx","life":415574}}
2020.12.28 08:42:02 5: Fliewatuet: parse id 3821
$VAR1 = {
'code' => 0,
'partner_id' => '',
'id' => 3821,
'result' => {
'ap' => {
'ssid' => 'wlan',
'rssi' => -37,
'bssid' => 'ne mac'
},
'hw_ver' => 'Linux',
'token' => 'xxxx354448436e79315842366c69xxxx',
'model' => 'dreame.vacuum.mc1808',
'mac' => 'Fliewatüt mac',
'fw_ver' => '3.5.8_1059',
'miio_ver' => 'miio-client3.5.8',
'life' => 415574,
'netif' => {
'mask' => '255.255.255.0',
'localIp' => 'xxx.yyy.zzz.67',
'gw' => 'xxx.yyy.zzz.253'
}
},
'message' => 'ok'
};
2020.12.28 08:42:02 4: Fliewatuet: parse id 3821 / device_info
2020.12.28 08:42:02 4: Fliewatuet: msg ref is HASH
2020.12.28 08:42:02 5: Fliewatuet < 213100c00000000016d0afa95fe98c4aeff07cb2881356216b33d291f5be0387143f76620a74cabb594e6fab39f7516fee6b0615b1be238ff7098cfe285c96dd820a5b8ab6a3bbf91893d4dd4785898e6de7a09be100a84387cd0ac3372029e06440f8e4da0d85c2dcc3f63456610bb078ccc82ff37ea634fb4d2d21bab3d54234c68c2cc16683d91c28d1ecbf089519d795a20b4588e734630e98899631ebeaebe22ec75db996921530d82a4ea0018269bbe09b34335c45c6e31a9241d213f6 (192)
2020.12.28 08:42:02 5: Fliewatuet: decrypted
{"id":3822,"code":0,"message":"ok","result":{"state":"ONLINE","auth_fail_count":0,"conn_success_count":1,"conn_fail_count":0,"dhcp_fail_count":0}}
2020.12.28 08:42:02 5: Fliewatuet: parse id 3822
$VAR1 = {
'id' => 3822,
'result' => {
'conn_success_count' => 1,
'auth_fail_count' => 0,
'dhcp_fail_count' => 0,
'conn_fail_count' => 0,
'state' => 'ONLINE'
},
'message' => 'ok',
'code' => 0
};
2020.12.28 08:42:02 4: Fliewatuet: parse id 3822 / wifi_stats
2020.12.28 08:42:02 4: Fliewatuet: msg ref is HASH
2020.12.28 08:42:05 4: Fliewatuet: write {"id":3825,"method":"get_consumable","params":[""]} (51)
2020.12.28 08:42:05 5: Fliewatuet: send 213100600000000016d0afa95fe98c4d4143c755a1f4f4e05538cc981b9598c094573d2629940469513e2fcd6fa47007e8ff4008cc1cb5731dcb449b61aef13d2cccd328fc7e3132955e17e165711f31985cd0a71e1c891a183f5de1b0dc5582
2020.12.28 08:42:05 5: Fliewatuet Send SUCCESS
2020.12.28 08:42:05 5: Fliewatuet > 213100600000000016d0afa95fe98c4d4143c755a1f4f4e05538cc981b9598c094573d2629940469513e2fcd6fa47007e8ff4008cc1cb5731dcb449b61aef13d2cccd328fc7e3132955e17e165711f31985cd0a71e1c891a183f5de1b0dc5582
2020.12.28 08:42:05 4: Fliewatuet: write {"id":3826,"method":"get_clean_summary","params":[""]} (54)
2020.12.28 08:42:05 5: Fliewatuet: send 213100600000000016d0afa95fe98c4d252b4e87006b78249f2432e3ed0422980a4b5c3e63b7082175c5d939a4af206d0a3b3da79611ed3b4f0cd6ac319bac83fb021d6c532f4d12fd900a84008fc49af028e2fddf936edcc8495e01505c4fe4
2020.12.28 08:42:05 5: Fliewatuet Send SUCCESS
2020.12.28 08:42:05 5: Fliewatuet > 213100600000000016d0afa95fe98c4d252b4e87006b78249f2432e3ed0422980a4b5c3e63b7082175c5d939a4af206d0a3b3da79611ed3b4f0cd6ac319bac83fb021d6c532f4d12fd900a84008fc49af028e2fddf936edcc8495e01505c4fe4
2020.12.28 08:42:05 4: Fliewatuet: write {"id":3827,"method":"get_dnd_timer","params":[""]} (50)
2020.12.28 08:42:05 5: Fliewatuet: send 213100600000000016d0afa95fe98c4d37957ed0bfe5de285bdb991534cf248099d8d90219236270b38a749b9b133d1029bae41beabcae1e6edd8d452f21a0427a5000e2448e4461e875bec68e571ec5351c60c84bd9f7e41006fa5c9bd55018
2020.12.28 08:42:05 5: Fliewatuet Send SUCCESS
2020.12.28 08:42:05 5: Fliewatuet > 213100600000000016d0afa95fe98c4d37957ed0bfe5de285bdb991534cf248099d8d90219236270b38a749b9b133d1029bae41beabcae1e6edd8d452f21a0427a5000e2448e4461e875bec68e571ec5351c60c84bd9f7e41006fa5c9bd55018
2020.12.28 08:42:05 4: Fliewatuet: write {"id":3828,"method":"get_timer","params":[""]} (46)
2020.12.28 08:42:05 5: Fliewatuet: send 213100500000000016d0afa95fe98c4de04e7e85bb1725b5cff5c37d42158eeca4a1f0904fcd6599b6038b3c76d3648d09cb0735b1704fd63b9125fb993a0d98be0866a5a4b4b2a975bfac22be8f6490
2020.12.28 08:42:05 5: Fliewatuet Send SUCCESS
2020.12.28 08:42:05 5: Fliewatuet > 213100500000000016d0afa95fe98c4de04e7e85bb1725b5cff5c37d42158eeca4a1f0904fcd6599b6038b3c76d3648d09cb0735b1704fd63b9125fb993a0d98be0866a5a4b4b2a975bfac22be8f6490
2020.12.28 08:42:05 4: Fliewatuet: write {"id":3829,"method":"get_sound_volume","params":[""]} (53)
2020.12.28 08:42:05 5: Fliewatuet: send 213100600000000016d0afa95fe98c4dfb21bf7c07e0dea339d7c30349d31ebaf1babfd15b66a1fa3ec957dd5c7fe4ad330bc482c5b9641333ad4a4d6ba09259498fa282095e25832a04c32e82a8b26d6727b0301c73b2a18effebee8dbba68e
2020.12.28 08:42:05 5: Fliewatuet Send SUCCESS
2020.12.28 08:42:05 5: Fliewatuet > 213100600000000016d0afa95fe98c4dfb21bf7c07e0dea339d7c30349d31ebaf1babfd15b66a1fa3ec957dd5c7fe4ad330bc482c5b9641333ad4a4d6ba09259498fa282095e25832a04c32e82a8b26d6727b0301c73b2a18effebee8dbba68e
2020.12.28 08:42:05 4: Fliewatuet: write {"id":3830,"method":"get_carpet_mode","params":[""]} (52)
2020.12.28 08:42:05 5: Fliewatuet: send 213100600000000016d0afa95fe98c4ded86a7a2e027b5450ab5b8db873882dc591d449a4f9dbe85731a43fd9d5d5572a094725c3bfa9ac46401bf1c1c113f0bcfc7cf5066ae8d8ec388db6bd2f60d898d814db4fd15818206bcf9b793d6c8b0
2020.12.28 08:42:05 5: Fliewatuet Send SUCCESS
2020.12.28 08:42:05 5: Fliewatuet > 213100600000000016d0afa95fe98c4ded86a7a2e027b5450ab5b8db873882dc591d449a4f9dbe85731a43fd9d5d5572a094725c3bfa9ac46401bf1c1c113f0bcfc7cf5066ae8d8ec388db6bd2f60d898d814db4fd15818206bcf9b793d6c8b0
2020.12.28 08:42:05 4: Fliewatuet: write {"id":3831,"method":"get_fw_features","params":[""]} (52)
2020.12.28 08:42:05 5: Fliewatuet: send 213100600000000016d0afa95fe98c4deaa0af0d4fbc33b1a392710bf11d35e88f97ff11db9699c2c172aae6fc65a096b9297a54c238c3f3e3c48c9fde9a383e74e5aab1b036fa147595103eb0b7f15d71ac9d03349540291b094c21dbd19b15
2020.12.28 08:42:05 5: Fliewatuet Send SUCCESS
2020.12.28 08:42:05 5: Fliewatuet > 213100600000000016d0afa95fe98c4deaa0af0d4fbc33b1a392710bf11d35e88f97ff11db9699c2c172aae6fc65a096b9297a54c238c3f3e3c48c9fde9a383e74e5aab1b036fa147595103eb0b7f15d71ac9d03349540291b094c21dbd19b15
2020.12.28 08:42:05 4: Fliewatuet: write {"id":3832,"method":"app_get_locale","params":[""]} (51)
2020.12.28 08:42:05 5: Fliewatuet: send 213100600000000016d0afa95fe98c4d2a2406b69683bf20b1ace3fb285308c397bc9d5579f85c2a5da0859e17df529fe5b6d4c714d43086114f9963b0dee04e479f8fecdc65a910d24032f5446cc79fb4b0d47023f105729b17989e71299378
2020.12.28 08:42:05 5: Fliewatuet Send SUCCESS
2020.12.28 08:42:05 5: Fliewatuet > 213100600000000016d0afa95fe98c4d2a2406b69683bf20b1ace3fb285308c397bc9d5579f85c2a5da0859e17df529fe5b6d4c714d43086114f9963b0dee04e479f8fecdc65a910d24032f5446cc79fb4b0d47023f105729b17989e71299378
2020.12.28 08:42:08 4: Fliewatuet: write {"id":3833,"method":"get_prop","params":["get_status"]} (55)
2020.12.28 08:42:08 5: Fliewatuet: send 213100600000000016d0afa95fe98c5093da5b17eee5431c7b96ce69b1fb9ed20599455b57f333fb0bcc7932db175172692669cc845cef084483b110f3e176440aeb325f73fdb547db19fe6c43e6429b9fb068600045fed3f5e2bd3f7100188d
2020.12.28 08:42:08 5: Fliewatuet Send SUCCESS
2020.12.28 08:42:08 5: Fliewatuet > 213100600000000016d0afa95fe98c5093da5b17eee5431c7b96ce69b1fb9ed20599455b57f333fb0bcc7932db175172692669cc845cef084483b110f3e176440aeb325f73fdb547db19fe6c43e6429b9fb068600045fed3f5e2bd3f7100188d
Steuern geht aber nicht. :'(
Ok, die Kollegen von openHAB scheinen das gleiche Problem zu haben.
https://community.openhab.org/t/problem-with-miio-binding-for-vacuum-1c-stytj01zhm-dreame-vacuum-mc1808/102631 (https://community.openhab.org/t/problem-with-miio-binding-for-vacuum-1c-stytj01zhm-dreame-vacuum-mc1808/102631)
Aber immerhin gibt es da eine Beschreibung für die json Datei für das Fliewatüt
https://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:vacuum:0000A006:dreame-mc1808:1 (https://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:vacuum:0000A006:dreame-mc1808:1)
Mal schauen in welche Richtung die weiteren Experimente gehen....
Aber ggf. wäre es schön, wenn 72_XiaomiDevice auch dreame-mc1808 unterstützen könnte. :)
Und Tschüß
Voller
Zitatwozu braucht APP den Zugriff auf das Adressbuch, Standortdaten, usw., das Teil soll im Haus saugen und wischen und nicht weiter zu allen Kontakten im Adressbuch rattern. ;D
Standortdaten schon. :o !!!!! Sonst genauso wenig wie
Zitat","ap":{"ssid":"wlan","bssid":"ne mac","rssi":-37},"netif":{"localIp":"xxx.yyy.zzz.67","mask":"255.255.255.0","gw":"xxx.yyy.zzz.253"},"
Uns hast Du die Daten verborgen(gut so), aber leider sind sie nun für immer in China. Tschuldigung nicht für immer. Nur bis Du Dein WLAN-Passwort änderst. Dann geht es von vorne los. Der Chinamann will halt sicher gehen, dass die WLAN-Zugangsdaten auch aktuell sind u. Du nicht evtl. umgezogen bist, wenn er vor der Tür steht u. Dein lokales Netzwerk nach z.B. Banking-Daten ausspioniert.
BSSID ist übrigens die MAC des Routers über die sich per geo location u.U. auch der Standort des WLANs finden lässt(wenn es eben nicht schon die App getan hat :o)
Meine bisherigen gedanklichen Ansätze(mein 3H durfte immer noch nicht nach China telefonieren ;D), wenn das device sich nicht rooten lässt u. es dem Chinamann zu erschweren:
- App nur im Emulator wie z.B. MeMu mit fake-Daten
- Erstinitialisierung(provisioning) an einem ausgedienten FREMDrouter u. anderem Adressraum(eben wg. BSSID; ich teste gerade einen zusätzlichen AP mit hoffentlich derselben Wirkung) u. korrekter SSID/passphrase
- danach Inetzugriff blockieren; App nu ja löschen
- Löschen des devices im MI-Account(hab noch keine Erfahrung, ob u. wie das geht. Auch mit App im Emulator ?)
Grüße Markus
Moin Markus,
Da ich über mehr als eine SID im WLAN und unterschliche VLANs an unterschliedlichen APs, die per Firewall gegeneinander abgeschottet sind, verfüge, darf der Chinamann gerne vorbeikommen und seinen Staubi alias Fliewatüt übernehmen. ;)
Also kommen die unbekannten ET-Geräte (nach Hause telefonieren) erstmal in das Quarantäne-WLAN/VLAN um die Funktionen und deren Geschwätzigkeit abzuchecken ;D
Grüße
Voller
Hallo Voller,
Du zumindest scheinst zu wissen, was Du tust. 8) Leider ist das ja nicht bei jedem FHEMler der Fall. Die wenigsten werden a) das Risiko einschätzen u. b) ein
ZitatQuarantäne-WLAN/VLAN um die Funktionen und deren Geschwätzigkeit abzuchecken ;D
haben oder einrichten können.
Grüße Markus
Ein kurzer Nachtrag zu meinem Post zum
move-Befehl, vielleicht ist das für den ein oder anderen auch interessant.
Zitat von: kamuxo am 06 Dezember 2020, 14:44:14
Ich habe allerdings ein Problem mit dem move-Befehl, mit dem ich den Roboter 'ausparken' möchte. Bei mir startet der Roboter bei jedem move eine Lokalisierung und dreht sich im Kreis, bewegt sich aber ansonsten nicht.:
Ich habe inzwischen herausgefunden, dass dieses Problem nichts mit FHEM zu tun hat, sondern der Roborock move-befehle nur dann ausführt, wenn er lokalisiert ist. In nicht lokalisiertem Zustand führt er statt der Bewegung nur die Lokalisierung aus.
Hallo zusammen,
weiß jemand von euch ob der dreame.vacuum.mc1808 bzw. der Xiaomi Mi Robot 1C in Zukunft mit eingebunden wird?
Ich hab nun meine beiden Roombas 980 durch die 1C ersetzt da diese deutlich zuverlässiger zurück zur Station finden und auch wischen können ;)
Bin zwar kein Programmierer aber kann anderweitig gerne unterstützen.
Schöne Grüße Flo
Hallo
ich habe eine philips.light.sread1 Lampe welche ich gar nicht Ansteuern kann.
Fehler: error useracktimeout
2021.01.16 18:53:47 5: KZ_Tischlampe < 213100700000000007300333002547278002d6d4cdcd624872afc1c3f7932f3344a4701d8bef9acdcfede5e5b6eb744e5563b1d06e45db22df5291c5e615a6a34b9501c4965fc5f5250893b74bae7c81ea8f84bd8790766e135098b5188f68e26b749aa9402a73e35cb2e9d16e77e627 (112)
2021.01.16 18:53:47 5: KZ_Tischlampe: decrypted
{"id":5,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4010}
2021.01.16 18:53:47 5: KZ_Tischlampe: parse id 5
$VAR1 = {
'exe_time' => 4010,
'id' => 5,
'error' => {
'code' => -9999,
'message' => 'useracktimeout'
}
};
2021.01.16 18:53:47 4: KZ_Tischlampe: parse id 5 / power_on
2021.01.16 18:53:47 4: KZ_Tischlampe: msg ref is
2021.01.16 18:53:47 5: Starting notify loop for KZ_Tischlampe, 1 event(s), first is error: useracktimeout
2021.01.16 18:53:47 5: End notify loop for KZ_Tischlampe
2021.01.16 18:53:47 5: Starting notify loop for KZ_Tischlampe, 1 event(s), first is power: on
2021.01.16 18:53:47 5: End notify loop for KZ_Tischlampe
2021.01.16 18:53:47 4: Connection closed for WEB_192.168.178.52_52179: EOF
2021.01.16 18:53:47 5: GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2021-01.log HTTP/1.1
Kann mir da jemand Helfen woran das liegt
Folgender Status wird gelesen
device_firmware
device_uptime
state
wifi_rssi
Ansteuern kann ich nichts kann das eventuell an der zu neuen Firmware liegen ?
Vielen Dank
MFG
Denny
Die Diskussion um das Sauger-Wischer-Modell viomi.vacuum.v8 wurde aus Gründen der Übersichtlichkeit abgetrennt und wird hier fortgeführt: https://forum.fhem.de/index.php/topic,118170.0.html (https://forum.fhem.de/index.php/topic,118170.0.html)
Beantragt hatte die Abtrennung und Verschiebung @curt in Absprache mit @Markus M. und @MadMax.
Moin moin,
ich habe ein Problem bei der Anbindung eines "Xiaomi Mi Smart Antibacterial Humidifier".
Es wäre mein zweites Xiaomi Gerät, welches ich in FHEM anbinde. Erfolgreich konnte ich einen Mi Robot Gen1 rooten, flashen und anbinden.
Was ich schon probiert habe:
1. Token über mehrere Möglichkeiten ausgelesen (funktionierte soweit einwandfrei)
2. mehrmals resettet und neu aufgenommen (verschiedenen Mi Home Versionen getestet)
3. das "attr SubType" mit allen "Humidifier" durchprobiert
Wie der jetzige Stand ist:
1. Gerät eingerichtet mit "define Luftbefeuchter XiaomiDevice <IP> <Token>
2. FHEM aktuell
3. FHEM und der Luftbefeuchter befinden sich im selben Subnetz
4. per ping erreichbar
5. Verbose auf 5 gesetzt
6. Benötigte Abhängigkeiten sind installiert
Jetzt bekomme ich im Logfile folgenden Meldung sobald ich einen Befehl absetzen möchte:
2021.02.10 21:50:03 4: Luftbefeuchter: write {"id":7,"method":"Set_OnOff","params":[1]} (42)
2021.02.10 21:50:03 5: Luftbefeuchter: initSend
2021.02.10 21:50:03 5: Luftbefeuchter Send SUCCESS
2021.02.10 21:50:03 5: Luftbefeuchter > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.02.10 21:50:03 1: Luftbefeuchter: internal error, values missing
Das hier ist die Ausgabe von einem Reconnect:
2021.02.10 21:49:09 3: Luftbefeuchter: disconnecting
2021.02.10 21:49:09 2: Luftbefeuchter: connecting
2021.02.10 21:49:09 3: Luftbefeuchter: initialized
2021.02.10 21:49:09 5: Luftbefeuchter: initSend
2021.02.10 21:49:09 5: Luftbefeuchter Send SUCCESS
2021.02.10 21:49:09 5: Luftbefeuchter > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Hat von euch vielleicht einer eine Idee oder einen Tipp für mich?
Gruß pet0rrr
Hi,
ich hab seit einiger Zeit in der Mi Home App keine Möglichkeit mehr zwischen den verschiedenen Stockwerken zu wechseln.
Kennt das jemand? Oder bin ich der einzige mit dem Problem?
Moin zusammen,
ich habe heute neu den Roborock S5 Max Gen. 2020 bekommen.
Direkt mit FHEM verbunden. (Token habe ich schon ausgelesen)
Ich bekomme immer den State: Disconnected und leider lässt sich dieser auch nicht ändern.
Ich habe bereits den ganzen Thread durchgeschaut aber keine Lösung dazu gefunden.
Folgendes sagt der Log:
2021.02.16 23:02:32 3: vacuum: disconnecting
2021.02.16 23:02:32 2: vacuum: connecting
2021.02.16 23:02:32 3: vacuum: initialized
2021.02.16 23:02:32 5: vacuum: initSend
2021.02.16 23:02:32 5: vacuum Send SUCCESS
2021.02.16 23:02:32 5: vacuum > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.02.16 23:02:32 5: vacuum < 213100200000000013209bc1602c40f8ffffffffffffffffffffffffffffffff (32)
2021.02.16 23:02:36 4: vacuum: write {"id":121,"method":"miIO.info","params":[""]} (45)
2021.02.16 23:02:36 5: vacuum: send 213100500000000013209bc1602c40fcc1e745a4f705bc7d819acf6f779b525894a503e6a2b84c22674ac7501a2dfd8d5c2b445e6e5a96ed2715523651b3ab6b8163fa8553e3869a6dc354704f446f3e
2021.02.16 23:02:36 5: vacuum Send SUCCESS
2021.02.16 23:02:36 5: vacuum > 213100500000000013209bc1602c40fcc1e745a4f705bc7d819acf6f779b525894a503e6a2b84c22674ac7501a2dfd8d5c2b445e6e5a96ed2715523651b3ab6b8163fa8553e3869a6dc354704f446f3e
2021.02.16 23:02:36 4: vacuum: write {"id":122,"method":"miIO.wifi_assoc_state","params":[""]} (57)
2021.02.16 23:02:36 5: vacuum: send 213100600000000013209bc1602c40fce9b64171f89c8ada582b4c6b43eb7046c909a21bddfa9c54bb6c78f89bfe1a1fc6411aa58158f52a154e5e0694baab18f10ff5bb14b9bf23c50c95e43b53909e79fd9b868fe0f58454acadff20f91800
2021.02.16 23:02:36 5: vacuum Send SUCCESS
2021.02.16 23:02:36 5: vacuum > 213100600000000013209bc1602c40fce9b64171f89c8ada582b4c6b43eb7046c909a21bddfa9c54bb6c78f89bfe1a1fc6411aa58158f52a154e5e0694baab18f10ff5bb14b9bf23c50c95e43b53909e79fd9b868fe0f58454acadff20f91800
2021.02.16 23:02:39 4: vacuum: write {"id":123,"method":"get_consumable","params":[""]} (50)
2021.02.16 23:02:39 5: vacuum: send 213100600000000013209bc1602c40ffc09ad0074350a7b69a3b14f6d6f50ee5add0bb65f4a176ebe4e22ee2d8800a226a1c4d1b8fffe4d404e60a962e3ff51109146e045536fe5f68f1fe31efc90ef16ef58cc68db7ba3405b8f12dfc96d900
2021.02.16 23:02:39 5: vacuum Send SUCCESS
2021.02.16 23:02:39 5: vacuum > 213100600000000013209bc1602c40ffc09ad0074350a7b69a3b14f6d6f50ee5add0bb65f4a176ebe4e22ee2d8800a226a1c4d1b8fffe4d404e60a962e3ff51109146e045536fe5f68f1fe31efc90ef16ef58cc68db7ba3405b8f12dfc96d900
2021.02.16 23:02:39 4: vacuum: write {"id":124,"method":"get_clean_summary","params":[""]} (53)
2021.02.16 23:02:39 5: vacuum: send 213100600000000013209bc1602c40ff6bba8f34d610aafbe9188c7369c159146c0e1dca238fc163ae66312a2bd5df9438fda73de32ffb049c336a5e0ea85655a7efbd9c62762419880f2b1f2bd114eb674fad12e599824e578e93dd8efa7995
2021.02.16 23:02:39 5: vacuum Send SUCCESS
2021.02.16 23:02:39 5: vacuum > 213100600000000013209bc1602c40ff6bba8f34d610aafbe9188c7369c159146c0e1dca238fc163ae66312a2bd5df9438fda73de32ffb049c336a5e0ea85655a7efbd9c62762419880f2b1f2bd114eb674fad12e599824e578e93dd8efa7995
2021.02.16 23:02:39 4: vacuum: write {"id":125,"method":"get_dnd_timer","params":[""]} (49)
2021.02.16 23:02:39 5: vacuum: send 213100600000000013209bc1602c40ffb7be27f2eb10a02aa6a861d0f8388563fecd22de44bf257ca9a7bb05416dd119016eb915e42abe3fb44f09e587f5f26e1d9ea64e251855e3e67b5e6991d39da2b9796102a75b23aca59114ffe28c459b
2021.02.16 23:02:39 5: vacuum Send SUCCESS
2021.02.16 23:02:39 5: vacuum > 213100600000000013209bc1602c40ffb7be27f2eb10a02aa6a861d0f8388563fecd22de44bf257ca9a7bb05416dd119016eb915e42abe3fb44f09e587f5f26e1d9ea64e251855e3e67b5e6991d39da2b9796102a75b23aca59114ffe28c459b
2021.02.16 23:02:39 4: vacuum: write {"id":126,"method":"get_timer","params":[""]} (45)
2021.02.16 23:02:39 5: vacuum: send 213100500000000013209bc1602c40ffaefb1933edae3f0d591cb41856e489f32e150e7a6d8c08b0caedf8699377c84c52e5e7e10f1eed410e863f75f35d465d52dd6ee9f26e5f8c41819c69b149f9c0
2021.02.16 23:02:39 5: vacuum Send SUCCESS
2021.02.16 23:02:39 5: vacuum > 213100500000000013209bc1602c40ffaefb1933edae3f0d591cb41856e489f32e150e7a6d8c08b0caedf8699377c84c52e5e7e10f1eed410e863f75f35d465d52dd6ee9f26e5f8c41819c69b149f9c0
2021.02.16 23:02:39 4: vacuum: write {"id":127,"method":"get_sound_volume","params":[""]} (52)
2021.02.16 23:02:39 5: vacuum: send 213100600000000013209bc1602c40ff561c672a4a45fc2632f0d284d1ee3ad48a2cf84010c43b0d13c5899890999ef25a080252680efc94a2ab28f9a8eafe6e03732df425e114c1c7d464e128b63a35c52297df930c95439c77703d74862c80
2021.02.16 23:02:39 5: vacuum Send SUCCESS
2021.02.16 23:02:39 5: vacuum > 213100600000000013209bc1602c40ff561c672a4a45fc2632f0d284d1ee3ad48a2cf84010c43b0d13c5899890999ef25a080252680efc94a2ab28f9a8eafe6e03732df425e114c1c7d464e128b63a35c52297df930c95439c77703d74862c80
2021.02.16 23:02:39 4: vacuum: write {"id":128,"method":"get_carpet_mode","params":[""]} (51)
2021.02.16 23:02:39 5: vacuum: send 213100600000000013209bc1602c40ff4000aeb026c03cbcea3a4a622ee946d371167fd5d271b11ecbf7d045f283f56699fa2160b648e8a296dd2b70b7bfdf5cf6e96f0a874f23678d5b0b79fc07e46690ce81b764753f24ea678ffa858dcf32
2021.02.16 23:02:39 5: vacuum Send SUCCESS
2021.02.16 23:02:39 5: vacuum > 213100600000000013209bc1602c40ff4000aeb026c03cbcea3a4a622ee946d371167fd5d271b11ecbf7d045f283f56699fa2160b648e8a296dd2b70b7bfdf5cf6e96f0a874f23678d5b0b79fc07e46690ce81b764753f24ea678ffa858dcf32
2021.02.16 23:02:39 4: vacuum: write {"id":129,"method":"get_fw_features","params":[""]} (51)
2021.02.16 23:02:39 5: vacuum: send 213100600000000013209bc1602c40ff007d0626115bee4814ba659b6bf625956b8a1d2306195dbcc362a15799eaa4bbe69cc23ca09ec3642b26ec4563766e9e75ea32af81aab0c4b28a8daec602fce0d81ecf072b3a0ba3900f6a1b239e0c99
2021.02.16 23:02:39 5: vacuum Send SUCCESS
2021.02.16 23:02:39 5: vacuum > 213100600000000013209bc1602c40ff007d0626115bee4814ba659b6bf625956b8a1d2306195dbcc362a15799eaa4bbe69cc23ca09ec3642b26ec4563766e9e75ea32af81aab0c4b28a8daec602fce0d81ecf072b3a0ba3900f6a1b239e0c99
2021.02.16 23:02:39 4: vacuum: write {"id":130,"method":"app_get_locale","params":[""]} (50)
2021.02.16 23:02:39 5: vacuum: send 213100600000000013209bc1602c40ff6ba88ccceeeb9f96a8b1218d8649a267b4d386bdfa70ba40570e69a9ef39ea1d44045347c66d20c84d74f55eec0e0b576b3b3a6bae9d5ce15f4f3019280be497dc1a2c73acb2d7df46bf66e69cf0e73a
2021.02.16 23:02:39 5: vacuum Send SUCCESS
2021.02.16 23:02:39 5: vacuum > 213100600000000013209bc1602c40ff6ba88ccceeeb9f96a8b1218d8649a267b4d386bdfa70ba40570e69a9ef39ea1d44045347c66d20c84d74f55eec0e0b576b3b3a6bae9d5ce15f4f3019280be497dc1a2c73acb2d7df46bf66e69cf0e73a
2021.02.16 23:02:42 4: vacuum: write {"id":131,"method":"get_prop","params":["get_status"]} (54)
2021.02.16 23:02:42 5: vacuum: send 213100600000000013209bc1602c410222b6c7b54d632c6030d06c1dec6c1374e127d59712ae4e434ccd23dcb3b59c4b7e287070369b13691915785934157ef6f5ebf306fd6514ce2d158fe1fd6c4dcc0d3c4f5b1a6355604a9c7e49c5bd0eff
2021.02.16 23:02:42 5: vacuum Send SUCCESS
2021.02.16 23:02:42 5: vacuum > 213100600000000013209bc1602c410222b6c7b54d632c6030d06c1dec6c1374e127d59712ae4e434ccd23dcb3b59c4b7e287070369b13691915785934157ef6f5ebf306fd6514ce2d158fe1fd6c4dcc0d3c4f5b1a6355604a9c7e49c5bd0eff
2021.02.16 23:03:21 3: vacuum: connection timeout
Über eine Hilfe würd ich mich freuen.
Vielen dank im Vorraus
Fabian
Hallo,
was und wie bewirkt das attribut "map_names"
Kann man damit eventuell zwischen den Karten wechseln?
Hi,
ich habe meinen Airpurifier 3H seit einigen Wochen laufen, klappte wie es soll, seit dem 16.2.21 jedoch klappt es nicht mehr, er meldet im Log das Daten fehlen.
Die Daten haben alle den Stand von 2021-02-16 19:08:48
Vielleicht hat jemand eine Idee ? Danke Ronny
Im Log sehe ich nur folgendes (verbose 5 kam erst am Ende dann)
2021.02.21 09:10:18 3: airpurifier: initialized, using AES
2021.02.21 09:10:28 3: airpurifier: disconnecting
2021.02.21 09:10:28 2: airpurifier: connecting
2021.02.21 09:10:28 3: airpurifier: initialized
2021.02.21 09:26:21 1: airpurifier: internal error, values missing
2021.02.21 09:26:47 1: airpurifier: internal error, values missing
2021.02.21 09:31:30 3: airpurifier: initialized, using AES
2021.02.21 09:31:40 3: airpurifier: disconnecting
2021.02.21 09:31:40 2: airpurifier: connecting
2021.02.21 09:31:40 3: airpurifier: initialized
2021.02.21 09:31:40 5: airpurifier: initSend
2021.02.21 09:31:40 5: airpurifier Send SUCCESS
2021.02.21 09:31:40 5: airpurifier > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.02.21 09:43:52 4: airpurifier: write {"id":1,"method":"set_properties","params":[{"did": "power", "siid": 2, "piid": 2, "value": false}]} (100)
2021.02.21 09:43:52 5: airpurifier: initSend
2021.02.21 09:43:52 5: airpurifier Send SUCCESS
2021.02.21 09:43:52 5: airpurifier > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.02.21 09:43:52 1: airpurifier: internal error, values missing
2021.02.21 09:43:53 4: airpurifier: write {"id":2,"method":"set_properties","params":[{"did": "power", "siid": 2, "piid": 2, "value": true}]} (99)
2021.02.21 09:43:53 5: airpurifier: initSend
2021.02.21 09:43:53 5: airpurifier Send SUCCESS
2021.02.21 09:43:53 5: airpurifier > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.02.21 09:43:53 1: airpurifier: internal error, values missing
2021.02.21 09:43:54 4: airpurifier: write {"id":3,"method":"set_properties","params":[{"did": "power", "siid": 2, "piid": 2, "value": true}]} (99)
2021.02.21 09:43:54 5: airpurifier: initSend
2021.02.21 09:43:54 5: airpurifier Send SUCCESS
2021.02.21 09:43:54 5: airpurifier > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.02.21 09:43:54 1: airpurifier: internal error, values missing
List vom Device:
Internals:
DEF 10.0.6.94 <geheim>
FD 52
FUUID 6007267e-f33f-e150-d039-0aefd63b289715b1
NAME airpurifier
NR 271
STATE PM25: 1 µg/m³ (Avg: 2 µg/m³)<br>
T: 20.6 H: 43 % <br>
Speed: 389 Mode:auto (Level:1) <br>
Filter: 80 % | Wifi:-40
TYPE XiaomiDevice
READINGS:
2021-02-16 19:08:45 app_extra 0
2021-02-16 19:08:45 buzzer on
2021-02-16 19:08:45 child_lock on
2021-02-16 19:08:42 device_firmware 2.0.8
2021-02-16 19:08:42 device_uptime 453.88
2021-02-16 19:08:48 error none
2021-02-16 19:08:48 favorite 14
2021-02-16 19:08:48 favorite_rpm 2150
2021-02-16 19:08:48 filter_life 80
2021-02-16 19:08:45 filter_rfid_product_id 0:0:31:31
2021-02-16 19:08:45 filter_rfid_tag 81:6c:4b:9a:c1:57:4
2021-02-16 19:08:48 filter_used 673
2021-02-16 19:08:48 filter_volume 24860
2021-02-16 19:08:48 humidity 43
2021-02-16 19:08:45 led dim
2021-02-16 19:08:48 level 1
2021-02-16 19:08:48 mode auto
2021-02-16 19:08:48 pm25 1
2021-02-16 19:08:48 pm25_average 2
2021-02-16 19:08:48 power on
2021-02-16 19:08:48 speed 389
2021-02-16 19:13:48 state disconnected
2021-02-16 19:08:48 temperature 20.6
2021-02-16 19:08:48 usage 673.3
2021-02-16 19:08:42 wifi_rssi -40
helper:
ConnectionState initialized
crypt AES
delay 60
ip 10.0.6.94
packetid 1
port 54321
token <geheim>
Attributes:
room diverses2
stateFormat PM25: pm25 µg/m³ (Avg: pm25_average µg/m³)<br>
T: temperature H: humidity % <br>
Speed: speed Mode:mode (Level:level) <br>
Filter: filter_life % | Wifi:wifi_rssi
subType AirPurifier3H
verbose 5
hier auch
2021.02.24 11:30:48 4 : AirPurifier3H: write {"id":4,"method":"set_properties","params":[{"did": "fan_level", "siid": 2, "piid": 4, "value": 1}]} (100)
2021.02.24 11:30:48 5 : AirPurifier3H: initSend
2021.02.24 11:30:48 5 : AirPurifier3H Send SUCCESS
2021.02.24 11:30:48 5 : AirPurifier3H > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.02.24 11:30:48 1 : AirPurifier3H: internal error, values missing
Hallo,
ich nutze schon sehr lange das Modul. Es funktioniert Einwandfrei mit dem Staubsauger Roboter, Luftfilter und dem Ventielator.
Heute wollte ich den Wasserfilter und den Reiskocher implementieren. Leider bekomme ich bei beiden Geräten Fehler. Beim Wasserfilter bei den Readings und beim Reiskocher einen Json Fehler, siehe Screenshots. Im Anhang sind auch die Logs zu finden.
Bitte um Hilfe, danke im Voraus.
Gruß Christoph
Moin,
ich mal wieder. Diesmal scheint es einen Json Fehler zu geben bei dem Airpurifier H2. Wie kann ich hier optimieren? Danke.
2021.03.11 11:10:55 4: buero_Mi_Air_Purifier_2H: write {"id":30,"method":"get_prop","params":["power","mode","motor1_speed","favorite_level","motor2_speed"]} (102)
2021.03.11 11:10:55 5: buero_Mi_Air_Purifier_2H: send 213100900000000012c9f544000112799e8f8be7e8492346bdecacc4ff5d23a7ae708b920fcb3eda4203a6c01706426818d6ce97ad2f9f6d54fc88591f813572df126ed9b8a6a1d3901a090a8dcbcc7aa637cbe90e1b40857d61b24a0b658de8d6a419f056240641fd79b5bb810e7ad4429a2b548c8cdf35580eb402ea8465ed8b2dbcf78a3419361d23978f0b8d6651
2021.03.11 11:10:55 5: buero_Mi_Air_Purifier_2H Send SUCCESS
2021.03.11 11:10:55 5: buero_Mi_Air_Purifier_2H > 213100900000000012c9f544000112799e8f8be7e8492346bdecacc4ff5d23a7ae708b920fcb3eda4203a6c01706426818d6ce97ad2f9f6d54fc88591f813572df126ed9b8a6a1d3901a090a8dcbcc7aa637cbe90e1b40857d61b24a0b658de8d6a419f056240641fd79b5bb810e7ad4429a2b548c8cdf35580eb402ea8465ed8b2dbcf78a3419361d23978f0b8d6651
2021.03.11 11:10:55 5: buero_Mi_Air_Purifier_2H < 213100900000000012c9f54400011279ffffffffffffffffffffffffffffffff (144)
2021.03.11 11:10:55 5: buero_Mi_Air_Purifier_2H: decrypted
2021.03.11 11:10:55 2: buero_Mi_Air_Purifier_2H: invalid JSON:
defmod buero_Mi_Air_Purifier_2H XiaomiDevice 192.168.178.35 d81604a918235a646d22f945a1120a39
attr buero_Mi_Air_Purifier_2H subType AirPurifier
attr buero_Mi_Air_Purifier_2H verbose 5
HAllo Zusammne,
wollte meinen Roborock S6 einbinden mit diesem Modul. Jedoch bekomme ich bei dem define Befehl folgenden Fehler:
"Cannot load module XiaomiDevice"
Der komplette befehl sieht so aus:
define vacuum XiaomiDevice 192.168.178.123 12345678901234567890123456789012 (natürlich mit richtiger IP und Token)
Geht das Modul nicht mehr oder mache ich etwas falsch?
Gruß
Ather
Im Log steht bestimmt WARUM das Modul nicht GELADEN (nicht: nicht gefunden! ;) ) wurde!
Vermutung: es fehlen Perl-Libs...
"Anleitung" bzw. "Voraussetzungen" gelesen und auch durchgeführt!!?
Gruß, Joachim
reload: Error:Modul 72_XiaomiDevice deactivated: Can't locate Crypt/CBC.pm in @INC (you may need to install the Crypt::CBC module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base ./FHEM/lib) at ./FHEM/72_XiaomiDevice.pm line 176. BEGIN failed--compilation aborted at ./FHEM/72_XiaomiDevice.pm line 176.
2021.03.15 13:12:09 0 : Can't locate Crypt/CBC.pm in @INC (you may need to install the Crypt::CBC module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base ./FHEM/lib) at ./FHEM/72_XiaomiDevice.pm line 176. BEGIN failed--compilation aborted at ./FHEM/72_XiaomiDevice.pm line 176
stimmt hast recht. Es fehlt wohl cbc.pm crypt
Hat schon mal jemand den Roborock S6 in Fhem integriert?
Gruß
Ich habe meinen Luftbefeuchter eingebunden.
Er reagiert aber nicht auf on/off. Über die App geht das.
Muss ich noch was anpassen?
Internals:
CFGFN
DEF 192.168.178.93 d6b87376axxxxxxxxxx876e8baba74
FD 9
FUUID 60546606-f33f-23c4-4197-0989002dd1cb2484
NAME Luftbefeuchter
NR 1332
STATE ???
TYPE XiaomiDevice
hardware esp8266
mac gelöscht
mcu_firmware 0113
model deerma.humidifier.jsq
token gelöscht
wifi_firmware 2709610
OLDREADINGS:
READINGS:
2021-03-19 10:43:34 buzzer error
2021-03-19 10:43:31 device_firmware 2.0.7
2021-03-19 10:43:31 device_uptime 0.27
2021-03-19 10:43:37 error none
2021-03-19 10:43:37 power error
2021-03-19 10:43:31 wifi_rssi -61
helper:
ConnectionState connected
cleanrecord 0
crypt AES
delay 60
dev 0ea8
historydays 0
id e6aa
ip 192.168.178.93
last_read 1616147017
packetid 42
port 54321
sequence 1616146025
token d6b87376a7113e22086ab876e8baba74
packet:
39 wifi_stats
40 hum_settings
41 hum_data
Attributes:
room Test
subType Humidifier
Edit: 05.04.2021
Da es leider keinen Tip gab, habe ich mich nochmal per Suche durch dieses Thema gearbeitet.
Mit subType HumidifierMJJSQ scheint es zu funktioneren.
Hallo,
nachdem Katze/Hund wohl nun über Fhem mit Wasser versorgt werden können...
Zitat von: scooty am 20 Dezember 2020, 20:02:42
Hallo Markus,
anbei ein Patch zur Unterstützung eines weiteren Gadgets:
Xiaomi Xiaowan Pet Water Dispenser (https://c.mi.com/thread-2111710-1-0.html)
model mmgg.pet_waterer.s1
... meine Frage: Funktioniert der Futterautomat auch?
https://de.aliexpress.com/item/4001114692210.htmlDanke
Hallos,
zwei Fragen zu dem Modul, und zwar habe ich den Airpurifier 3H und auch den 3C.
Da der 3C nicht mit dem per default installiertem Modul funtioniert hat, habe ich das für den 3C angepasste Modul von diesem Thread runtergeladen und ins entsprechende Verzeichnis kopiert, und damit funktioniert er auch.
Heute habe ich allerdings fhem upgedated und dann hat der 3C nicht mehr funktioniert, im Quelltext vom upgedateten Modul ist auch der 3C nicht erwähnt. Ist da im Update etwas verloren gegangen?
Nach dem wieder reinkopieren des alten Modules war mit dem 3C wieder alles ok.
Und der 3H hat (vermutlich auch nach einem Update) die Eigenheit, beim Bewegen des Sliders in einen mode "fan" statt "favorite" zu springen und aus dem kommt man auch nur schwer wieder raus.
Ist da ein Bug im Modul oder habe ich irgendwas falsch eingestellt?
Danke für jeglichen Tipp dazu
LG GatuRatz
ZitatHeute habe ich allerdings fhem upgedated und dann hat der 3C nicht mehr funktioniert, im Quelltext vom upgedateten Modul ist auch der 3C nicht erwähnt. Ist da im Update etwas verloren gegangen?
Wenn die angepasste Version (deshalb ja angepasst) nicht im automatischen Update ist, dann überschreibt jedes Update die angepasste Version.
Du mußt deshalb dieses Modul aus dem automatischen Updaten ausschließen.
Wie? Das solltest Du im Forum finden.
Stichwort "attr global exclude_from_update" :)
@KölnSolar,
ich habe eine kurze Frage bzgl. der Änderungen für den Xiaomi Mop Pro von hier https://forum.fhem.de/index.php/topic,118170.0.html
Ist es richtig, dass diese Änderungen noch nicht im aktuellen Modul gemerged sind? Habt Ihr einen Plan das zu tun?
Zur Zeit habe ich das automatische update für das Modul noch deaktiviert - würde das aber natürlich gerne aktivieren falls der Mop Pro support drin ist.
Danke,
Michael
Ich wollte nur kurz Feedback geben:
Da das auf den Airpurifier3C angepasste Modul ein Problem mit dem Airpurifier3H hat (siehe mein Beitrag weiter oben), habe ich das 3C-Modul einfach mit einem anderen Namen geclont und lasse nur die beiden Airpurifier3C damit laufen. Die Airpurifier2 und 3H sowie der Roborock S5 laufen mit dem Originalmodul, das dann auch regelmäßig upgedated werden kann.
LG GatuRatz
Könnte das senden von Befehlen an den Reiskocher integriert werden.
Hier werden auch schon Programme gelistet. Wäre super wenn ich den Reiskocher so starten könnte und nicht die App dafür brauche.
https://raw.githubusercontent.com/rytilahti/python-miio/5730f535d4691e0c2b4260cd7835b7a43ddc8ab0/miio/data/cooker_profiles.json (https://raw.githubusercontent.com/rytilahti/python-miio/5730f535d4691e0c2b4260cd7835b7a43ddc8ab0/miio/data/cooker_profiles.json)
Ein Start/Stop/Auswahl eines Programms über FHEM wäre super. Würde dann für die Standartprogramme nicht immer die App benötigen.
Hi, gibt es nen Plan den Mi Air Purifier 3C in die normale Version aufzunehmen. Möchte ungern ein Update-Exclude...
Schöne Grüße
PS: läuft bei euch der Rotor beim 3C auf niedrigerer manueller Stufe etwas unrund/etwas eiernd im Vergleich zum 3H?
Hallo Markus,
Hallo Community,
ich bin seit einigen Tagen stolzer Besitzer eines SmartMi Air Purifiers (zhimi.airpurifier.za1).
Dabei handelt es sich um das runde Gerät, dass neben einer Gestensteuerung auch noch über einen TVOC Sensor verfügt.
Natürlich habe ich mich direkt an eine Einbindung in FHEM gemacht und festgestellt, dass es noch kein passendes Modul bzw. noch keine Unterstützung im XiaomiDevice Modul gibt. Also habe ich 154 Seiten Thread gelesen bzw. überflogen und mich selbst ans Werk gemacht.
Da es sich um das miio Protokoll handelt, ist das Gerät zum Glück sehr ähnlich zum 3H verwendet aber teils unterschiedliche IDs und hat halt etwas andere features.
Nach vielen Versuchen das Protokoll zu dechiffrieren und die relevanten Informationen zu extrahieren bin ich mit dem Ergebnis inzwischen sehr zufrieden.
Ich habe einen neuen SubType "AirPurifierSmartMi" angelegt.
Die Readings habe ich namentlich vom 3H übernommen und lediglich die Kommunikationslogik auf die neuen IDs angepasst.
Neu dazu gekommen sind ein Reading "tvoc" welches den TVOC Wert enthält (Total Volatile Organic Compounds), wobei ich leider keine Idee habe welche Einheit dem ganzen zu Grunde liegt.
Auch habe ich ein Reading und eine zugehörige set Funktion für den gesture_mode hinzugefügt um diesen Ein und Aus zu schalten.
Die neuen Commands habe ich auch in die Dokumentation übernommen.
Würde mich freuen wenn es noch jemandem hilft.
Anbei die angepasste Version des Moduls und eine Patch um die Änderungen in das eigentliche Modul zu übernehmen.
Gruß,
Matthias
Danke strategy,
das selbe Gerät ist seit zwei Wochen bei mir, ich habe es bis neulich auch versucht allerdings ohne Erfolg.
Reicht es die pm-Datei in das Verzeichnis FHEM zu kopieren oder muss die patch-Datei mit hinzu ?
Zitat von: Kiter1988 am 29 April 2021, 16:11:08
Danke strategy,
das selbe Gerät ist seit zwei Wochen bei mir, ich habe es bis neulich auch versucht allerdings ohne Erfolg.
Reicht es die pm-Datei in das Verzeichnis FHEM zu kopieren oder muss die patch-Datei mit hinzu ?
.pm Datei reicht. Das patch ist lediglich für den Entwickler...
Zitat von: strategy am 29 April 2021, 17:39:00
.pm Datei reicht. Das patch ist lediglich für den Entwickler...
Ich bekomme ein commanderror. Hier die list
Internals:
DEF 192.168.178.67 Token
FD 12
FUUID 608ac0ec-f33f-8489-97b3-e0e1194e6d1cf8d0
NAME Lufti
NR 125
STATE ???
TYPE XiaomiDevice
hardware esp32
mac 54:48:E6:C9:24:11
mcu_firmware 0021
model zhimi.airpurifier.za1
token Token
wifi_firmware cef6c09-dirty
READINGS:
2021-04-29 17:47:48 device_firmware 2.0.8
2021-04-29 17:47:48 device_uptime 92.14
2021-04-29 17:47:54 error commanderror
2021-04-29 16:22:50 led bright
2021-04-29 16:22:40 turbo on
2021-04-29 17:47:48 wifi_rssi -52
helper:
ConnectionState connected
crypt AES
delay 60
dev 176e
id cd2e
ip 192.168.178.67
last_read 1619711274
packetid 5
port 54321
sequence 1619379559
token token
packet:
1 device_info
2 wifi_stats
3 air_settings
4 air_data
Attributes:
icon Ventilator_fett
subType AirPurifier
Setz mal den Subtype auf AirPurifierSmartMi und versuch es nochmal...
Der Subtype wird nicht aufgelistet, habs auch händisch mit attr versucht.
Ich bin wie folgt vorgegangen.
pm-Datei ins FHEM Verzeichnis, Benutzer und Rechte vergeben, update all und dann ein shutdown restart.
Die neue pm wurde wohl Fhem erkannt.
Leider taucht der subtype "AirPurifierSmartMi" nicht auf. Händische Eingabe vom Subtype blieb auch ohne Erfolg.
Was macht das für einen Sinn?
Zitatpm-Datei ins FHEM Verzeichnis, Benutzer und Rechte vergeben,
update all -> alles auf Original!!!
und dann ein shutdown restart.
Das erzeugt nur Wärme! Also Schritt zwei entspannt auslassen! ;D
Zitat von: Otto123 am 29 April 2021, 18:38:14
Was macht das für einen Sinn?
Das erzeugt nur Wärme! Also Schritt zwei entspannt auslassen! ;D
ja natürlich ;D ::).... jetzt funktioniert es auch.
kann ich die pm-Datei vom "update" ausschließen ? Als Laie benutze ich eigentlich nur "update all"
Ja.
attr global exclude_from_update ...
oder help update
Hallo,
ich wollte ein kurze Info geben.
Ich hatte ja schon mehrmals den Wunsch beim Roborock Staubsauger mit dem Modul auch unterschiedliche Stockwerke (Unterschiedliche Karten) anzusteuern. Das geht ja leider nicht.
Jetzt habe ich für mich eine Lösung gefunden die recht einfach ist.
Wenn man z.B. den Roborock vorher im Erdgeschoss saugen lies und dann ins Obergeschoss trägt um dort zu saugen,reicht es wenn man auf dem Roborock die Ein und Aus Taste zu betätigen. Er startet dann und sucht erst einmal danach findet er seine Karte für das Obergeschoss von selbst.
Ich hatte das vorher immer mit
set Staubsauger segment Erdgeschoss
gemacht. Das funktioniert aber nur solange man in der MiHome App auch die Karte Erdgeschoss gewählt hat. Wenn man vorher eine andere Karte drin hatte geht das auch nicht und er fährt wieder zurück zur Station.
Abhilfe ist hier ein
set Staubsauger start
.
Hier fährt er kurz rum und findet dann die richtige Karte. Hier ist es also nicht nötig die Karte für ein bestimmtes Stockwerk selber auszuwählen.
Ich hab entsprechend meiner Alexa bei der ich vorher immer sagte "Alexa,putz Erdgeschoss" einfach in "Alexa,mach sauber" geändert.
Hallo, ich würde gerne wissen ob die Pin-to-Go - Funktion im Modul funktioniert.
Ich habe zwar gesehen, dass man bei den Set-Kommandos "goto" auswählen kann, aber noch keine Information gefunden was man dahinter angeben muss, also quasi wie man die Koordinaten oder den Punkt identifiziert.
Hintergrund:
Ich würde gerne einmal in der Woche statt nur zu saugen auch die Wischfunktion nutzen und darum meinen S6 MaxV zu einem bestimmten Punkt fahren lassen um Wasser und Wischtuch kontrollieren zu können. Das geht auf der Ladestation nicht, da diese in der Ecke unter einem Tisch versteckt ist.
Zitatgoto pointX,pointY (VacuumCleaner)
Go to point X/Y (needs to be valid on the map)
Wie müssen die Koordinaten für die Goto-Funktion aussehen bzw. welche Form müssen sie haben?
Und was heißt muss in der Map gültig sein? Wo kann ich das kontrollieren?
Normalerweise steht die Basisstation an den Koordinaten 25500,25500. Probiere einfach mal durch spielen in 500er Schritten aus, wo deine Zielposition ist.
Hallo @ Markus M.,
zur Zeit habe ich das automatische update für das Modul immer noch deaktiviert - würde das aber natürlich gerne wieder aktivieren falls der Mop Pro support drin ist.
Habt Ihr vor die Änderungen für den Xiaomi Mop Pro von hier https://forum.fhem.de/index.php/topic,118170.0.html (https://forum.fhem.de/index.php/topic,118170.0.html) mit "einzumergen"?
Danke,
Michael
Hi zusammen,
kann mir hier jemand sagen, was ich tun muss um den Xiaomi/Smart Mi Standventilator 3 sauber ans "fliegen" zu bekommen?
Bisher habe ich den Fan in der Xiaomi Home App erfolgreich eingerichtet, den Token ausgelesen (get_token.exe), die Pakete gemäße Commandref installiert und danach den Fan als Device angelegt. Bisher scheint es den Fan als subtype noch nicht zu geben. Die jeweiligen anderen Fan-Subtypes funktionieren mal besser/schlechter im Funktionsumfang, sprich bei dem einen klappt on/off, dafür aber die angle-Verstellung nicht und so weiter... Wäre fantastisch wenn sich alle Features über FHEM steuern ließen :-)
Danke für eure Anregungen/Infos vorab.
Viele Grüße
Mario
Hi zusammen,
noch eine Frage zum Roborock S5 max.
Kann ich da irgendwie die Reinigungsdurchgänge ("cycles") für segment (=Raumreinigung) mit angeben? Bei Zones gibt es sowas ja...
Danke & Gruß
Mario
Hallo Zusammen, kann mir jemand vllcht. sagen, ob
Xiaomi Mi Air Purifier Pro H
und
Smartmi Fan 3
unterstützt wird bzw. jemand davon ein Gerät schon ansteuert?
Vielen Dank
Nachtrag:
-------------
Der "Xiaomi Mi Air Purifier Pro H" lässt sich mit dem subType "AirPurifier3H" ansteuern.
Der "Smartmi Fan 3" kann zumindest mit dem SubTyoe "subType "SmartFan1C" ein- und ausgeschaltet werden. Zudem lässt sich das Schwenken ein- und ausschalten. Der Level nur grob von 0-3 (also bis max 75%, da dieser 4 Level hat).
Als "SmartFanFA1" lässt sich der Level nicht regeln.
subType "SmartFan" geht nicht.
Als "ToweFanP9" lässt er sich an- und abschalten. Der Level kann aber nicht geregelt werden. Schwenken (angle) lässt sich ebenfalls nicht einstellen.
Zudem unterstützt der Ventilator "negative Ionisierung" sowie Temperatur- und Feuchtigkeitsmessung, was auch noch nicht in den Readings einsehbar ist.
Aber man kann ihn ein- und ausschalten. Das Wichtigste! :D
Gibt es denn hier überhaupt noch irgendwelche, aktive User?
Ich habe mir mal die letzte Nacht selbst die Mühe gemacht, den SmartMiFan3 weitestgehend ins Modul zu integrieren.
Wer kann helfen?
Anbei schonmal die Response-JSON, aus der die notwendigen Kommandos entnommen werden können.
Hi,
nunja Aktiv als Nutzer ja, als Entwickler nicht, mein 3H geht ja nicht mehr, aber bisher hatte ich noch keine Zeit genauer zu schauen und nur den Entwickler angeschrieben, damit man da vielleicht gemeinsam schaut.
Ronny
Den 3H können wir uns gerne zusammen anschauen. Wobei ich sagen muss, dass ich den Pro H gestern in Betrieb genommen habe und funktioniert. Dieser ist baugleich dem 3H, nur halt größer. Was funktioniert denn nicht?
Vielleicht hat sich dein Token geändert?
Mit diesem Tool geht es total schnell und einfach:
https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor
Hi,
im Februar ging nichts mehr (Der Beitrag ist nur weiter hinter gerutscht -> https://forum.fhem.de/index.php/topic,73052.msg1134386.html#msg1134386)
Stimmt, Token könnte sein, das werde ich abends nochmal checken, es war bisher einfach zu wenig Zeit, um da mal in Ruhe auf die Suche zu gehen ;)
Genau den Extractor monitore ich auf Github auch und habe mir noch die Mail für 1.0.0 als Erinnerung liegen lassen, da nochmal zu gucken ;)
Ich schau heute abend mal
Ronny
da steht bei Dir STATE: disconnected
Schau erstmal nach dem Token und mache mal nen "Reconnect".
Die XiaomiDevice-Version, die ich laufen habe ist vom: 2020-10-25 08:38:27
Hi,
so probiert. Der Token paßt noch. Ich habe nun mal das Device gelöscht und wieder neu eingefügt. Leider kommt weiterhin die gleiche Fehlermeldung:
2021.06.18 19:08:34 3: airpurifier: initialized, using AES
2021.06.18 19:08:44 3: airpurifier: disconnecting
2021.06.18 19:08:44 2: airpurifier: connecting
2021.06.18 19:08:44 3: airpurifier: initialized
2021.06.18 19:08:44 5: airpurifier: initSend
2021.06.18 19:08:44 5: airpurifier Send SUCCESS
2021.06.18 19:08:44 5: airpurifier > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.06.18 19:08:49 3: airpurifier: disconnecting
2021.06.18 19:08:49 2: airpurifier: connecting
2021.06.18 19:08:49 3: airpurifier: initialized
2021.06.18 19:08:49 5: airpurifier: initSend
2021.06.18 19:08:49 5: airpurifier Send SUCCESS
2021.06.18 19:08:49 5: airpurifier > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Version: 72_XiaomiDevice.pm 23021 2020-10-25 08:38:27Z moises
Ist das ein Fehler? Das sieht doch gut aus, oder?
Hi,
sieht gut aus ja, aber es tut sich im Device nichts ;) Keine Readings usw.
Egal was man tut, es kommen keine Daten. Ich vermute ja, das nach der letzten Logzeile:
2021.06.18 19:08:49 5: airpurifier > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
noch was kommen müsste, oder er kann die Daten nicht dekodieren etc .. Das ist aber schon verbose 5, wüsste nicht, wie ich da weiter schauen könnte, um rauszuebkommen, was das Problem ist.
Ronny
Ich schaue nachher mal, was bei mir passiert.
Du hast aber das subType-Attribut gesetzt, oder?
Im Browser kein Adblocker oder so? Hatte mich damit auch schonmal selbst ausgesperrt.
In der Xiaomi-App funktioniert es auch?
Hi,
ja, in der App geht er, das nutz ich aktuell auch, für an aus.
So sieht es aktuell aus. Wie gesagt bis zum 16.02.21 ging es, da war ein FHEM Update, danach kamen
Fehler alla:
2021.02.16 19:13:48 2: airpurifier Send FAILED
2021.02.16 19:13:48 2: airpurifier Send FAILED
Internals:
DEF 10.0.x.x <TOKEN>
FD 88
FUUID 60ccd312-f33f-e150-2ff1-58eaec50a820c051
NAME airpurifier
NR 279
STATE PM25: pm25 µg/m³ (Avg: pm25_average µg/m³)<br>
T: temperature H: humidity % <br>
Speed: speed Mode:mode (Level:level) <br>
Filter: filter_life % | Wifi:wifi_rssi
TYPE XiaomiDevice
helper:
ConnectionState initialized
crypt AES
delay 60
ip 10.0.x.x
packetid 1
port 54321
token <TOKEN>
Attributes:
room diverses2
stateFormat PM25: pm25 µg/m³ (Avg: pm25_average µg/m³)<br>
T: temperature H: humidity % <br>
Speed: speed Mode:mode (Level:level) <br>
Filter: filter_life % | Wifi:wifi_rssi
subType AirPurifier3H
verbose 5
An dem Tag war nur folgendes dabei, sieht mir nicht passend zum Problem aus.
2021.02.16 11:35:27 1: UPD ./CHANGED
2021.02.16 11:35:27 1: UPD ./fhem.pl
2021.02.16 11:35:27 1: UPD FHEM/00_OW2S0SMSGUARD.pm
2021.02.16 11:35:27 1: UPD FHEM/70_CanOverEthernet.pm
2021.02.16 11:35:27 1: saving fhem.cfg
2021.02.16 11:35:27 1: saving ./log/fhem.save
2021.02.16 11:35:27 1:
2021.02.16 11:35:27 1: New entries in the CHANGED file:
2021.02.16 11:35:27 1: - change: 70_CanOverEthernet: changed indirect object notation (Perl 7 comp)
Also ich habe mal in ein Backup von mir geschaut, wo die "72_XiaomiDevice.pm" vom 09.11.2020 noch genau dem aktuellen Stand entspricht. Lt. der Id in der Datei ist es sogar vom "2020-10-25 08:38:27Z".
Eigenartig.
Hast du alle Bibliotheken, die im ersten Post erwähnt worden sind installiert?
Wieso benutzt du den 10.0.x.x - Ip-Bereich?
Lass uns bei den aktuellen Meldungen bleiben, nicht die vom 16.02.2021. Weil dort steht noch "Send FAILED".
Jetzt steht bei dir zumindest "Send SUCCESS"
Bei mir sieht man im verbose-Level: 5 wenigstens noch JSON's, die ich bei dir nicht sehe. Kann es sein, dass bei Dir irgendwie ein JSON-Modul oder ähnliches fehlt, da bei mir das Modul funktioniert...
2021.06.22 19:37:59 3 : Luftfilter: disconnecting
2021.06.22 19:37:59 2 : Luftfilter: connecting
2021.06.22 19:37:59 3 : Luftfilter: initialized
2021.06.22 19:37:59 5 : Luftfilter: initSend
2021.06.22 19:37:59 5 : Luftfilter Send SUCCESS
2021.06.22 19:37:59 5 : Luftfilter > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021-06-22 19:37:59 XiaomiDevice Luftfilter reconnect
2021.06.22 19:37:59 5 : Luftfilter < 2131002000000000... (32)
2021.06.22 19:38:03 4 : Luftfilter: write {"id":27,"method":"miIO.info","params":[""]} (44)
2021.06.22 19:38:03 5 : Luftfilter: send 2131005000000000....
2021.06.22 19:38:03 5 : Luftfilter Send SUCCESS
Hast du noch andere Xiaomo-Geräte, die noch funktionieren? Oder gehen die auch nicht?
Auf welchem Stand ist dein FHEM allgemein?
Hier habe ich auch ältere Versionen gefunden:
https://github.com/mhop/fhem-mirror/commits/master/fhem/FHEM/72_XiaomiDevice.pm
Zitat von: Dr. Smag am 22 Juni 2021, 18:49:35
Also ich habe mal in ein Backup von mir geschaut, wo die "72_XiaomiDevice.pm" vom 09.11.2020 noch genau dem aktuellen Stand entspricht. Lt. der Id in der Datei ist es sogar vom "2020-10-25 08:38:27Z".
Eigenartig.
Hast du alle Bibliotheken, die im ersten Post erwähnt worden sind installiert?
Ja, eben nochmal geprüft, alles da und korrekt. Sonst wird das Modul ja auch entsprechend meckern, wenn ich den Quellcode richtig interpretiere :)
Zitat von: Dr. Smag am 22 Juni 2021, 18:49:35
Wieso benutzt du den 10.0.x.x - Ip-Bereich?
Die Netzsegmentierung ist so einfacher, ich finds für mich besser passend als die anderen Standard Netze ;)
Zitat von: Dr. Smag am 22 Juni 2021, 18:49:35
Lass uns bei den aktuellen Meldungen bleiben, nicht die vom 16.02.2021. Weil dort steht noch "Send FAILED".
Jetzt steht bei dir zumindest "Send SUCCESS"
Bei mir sieht man im verbose-Level: 5 wenigstens noch JSON's, die ich bei dir nicht sehe. Kann es sein, dass bei Dir irgendwie ein JSON-Modul oder ähnliches fehlt, da bei mir das Modul funktioniert...
2021.06.22 19:37:59 3 : Luftfilter: disconnecting
2021.06.22 19:37:59 2 : Luftfilter: connecting
2021.06.22 19:37:59 3 : Luftfilter: initialized
2021.06.22 19:37:59 5 : Luftfilter: initSend
2021.06.22 19:37:59 5 : Luftfilter Send SUCCESS
2021.06.22 19:37:59 5 : Luftfilter > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021-06-22 19:37:59 XiaomiDevice Luftfilter reconnect
2021.06.22 19:37:59 5 : Luftfilter < 2131002000000000... (32)
2021.06.22 19:38:03 4 : Luftfilter: write {"id":27,"method":"miIO.info","params":[""]} (44)
2021.06.22 19:38:03 5 : Luftfilter: send 2131005000000000....
2021.06.22 19:38:03 5 : Luftfilter Send SUCCESS
Ja, komisch ist halt auch, das nix kommt danach. Es ging ja vorher auch, geändert habe ich wissentlich nichts. Möglich wäre natürlich ein Firmware Update zu dem Zeitpunkt auf dem XIaomi gerät, das kann ich nicht ausschliessen.
Zitat von: Dr. Smag am 22 Juni 2021, 18:49:35
Hast du noch andere Xiaomo-Geräte, die noch funktionieren? Oder gehen die auch nicht?
Nein, das ist das einzige, was das Modul unterstützt und ich besitze.
Zitat von: Dr. Smag am 22 Juni 2021, 18:49:35
Auf welchem Stand ist dein FHEM allgemein?
Auf dem Stand von heute inkl. allen Updates.
Zitat von: Dr. Smag am 22 Juni 2021, 18:49:35
Hier habe ich auch ältere Versionen gefunden:
https://github.com/mhop/fhem-mirror/commits/master/fhem/FHEM/72_XiaomiDevice.pm
Ich schau mir das morgen nochmal an, wenn etwas Zeit neben der Arbeit bleibt.
Danke,
Ronny
Hast du im Modul oder auch mal in global das verbose auf 5 gesetzt?
Ist dein Luftfilter im gleichen Netz zu deiner FHEM-Instanz und nicht in einem Subnet?
Hat die XiaomiDevice.pm-Datei die richtigen Rechte?
Habe heute einen zweiten Luftfilter bekommen. Der geht auch.
Bei mir ist es bei dem Pro H (läuft mit der 3H) die aktuelle Firmware 2.0.8. Das Einzige, was ich nicht schalten kann, ist der Buzzer.
Wir warten mal auf den Markus. Vielleicht kann er helfen.
Zitat von: Dr. Smag am 22 Juni 2021, 23:59:03
Hast du im Modul oder auch mal in global das verbose auf 5 gesetzt?
Ich habe das modul auf verbose 5 die ganze Zeit, mehr kommt hier nicht. Eben habe ich auch global mal kurz auf 5, bringt aber keine weiteren Erkentnisse.
Da kommen nur Meldungen vom Web usw, vom xiaomi Modul aber nichts.
Zitat von: Dr. Smag am 22 Juni 2021, 23:59:03
Ist dein Luftfilter im gleichen Netz zu deiner FHEM-Instanz und nicht in einem Subnet?
Zitat
Aktuell sind die in 2 getrennten, aber Sie erreichen sich. Wenn ich die App Nutze auf dem Handy, ist es die gleiche Konstellation. Ich hatte aber auch versuchsweise ein Bein im gleichen Netz getestet, brachte aber keine Besserung, gleiches Verhalten.
Zitat von: Dr. Smag am 22 Juni 2021, 23:59:03
Hat die XiaomiDevice.pm-Datei die richtigen Rechte?
ja, da wurde nichts manuell gefummelt, alles passend.
Ronny
Ich habe den Xiaomi Fan 3 implementiert. Habe nur noch das Problem, dass die Temperatur und Luftfeuchtigkeit nicht richtig angezeigt wird. Wer kann helfen?
Zitat von: Delta80 am 11 Juni 2021, 12:13:42
Hi zusammen,
noch eine Frage zum Roborock S5 max.
Kann ich da irgendwie die Reinigungsdurchgänge ("cycles") für segment (=Raumreinigung) mit angeben? Bei Zones gibt es sowas ja...
Danke & Gruß
Mario
Komme hier leider überhaupt nicht weiter. Hatte mal versucht die Raumnummer im set segment Befehl einfach doppelt anzugeben, aber der Raum wird trotzdem nur einmal gesaugt :-( Hat hier wirklich niemand die gleiche Herausforderung, sprich bei Raumreinigung mit segment die Anzahl der Reinigungsdurchgänge pro Raum mitgeben zu können? :-)
Danke für jeden Hinweis und den Support!
LG
Mario
Irgendwie passiert hier nicht mehr viel. Ist das Modul abgeschrieben? Das wäre schade.
Delta80: Irgendwie finde ich auch in der Doku nichts über die mehrfache Raumreinigung im "segment". Wird das als Attribut gesetzt oder gibt man es bei dem set an?
Zitat von: Markus M. am 28 Mai 2020, 01:30:36
Hab das nochmal geändert auf segment, funktioniert mit dem Attribut segment_names analog zu den Zonen und Punkten
@Dr. Smag: War nur ne Vermutung auf Basis der Aussage (analog zu Zones...) oben. Und in der App kann man es ja bei der Raumreinigung auch angeben. Habe aber auch in den MIOT Specs dazu nichts gefunden... https://github.com/marcelrv/XiaomiRobotVacuumProtocol (https://github.com/marcelrv/XiaomiRobotVacuumProtocol)
Hallo Forum,
ich möchte mich gerne endlich mal um meinen etwas verwahrlosten Roborock S5 Max kümmern, bisher habe ich den S5 Max ausschliesslich via xiaomi app von einem iPad aus benutzt welches leider im iPad Himmel gelandet ist. Ich habe also keinen Zugriff mehr auf die App - auch der Account ist verloren.
Es läuft also wahrscheinlich darauf raus das ganze Gerät zurück zu setzen (falls das überhaupt geht) und neu in Betrieb zu nehmen.
Braucht es hierfür zwingend eine App? Welche empfehlt ihr?
Zur Zeit nehme ich den Robo nur von seiner Ladestation, setze ihn an einem startpunkt ab, starte die Reinigung via Knopfdruck - wenn er fertig ist fährt er wieder zum laden.
Ich möchte ihn nun gerne in FHEM integrieren - gibt es irgendwo eine Anleitung zu diesem Thema..? Sorry dieser Thread ist über 150 Seiten lang - ich hoffe ein bisschen auf hilfsbereitschaft um nicht alles lesen zu müssen.
Hi, eigentlich ist der Xiaomi Roborock dazu gedacht mit der hauseigenen App gesteuert zu werden.
Dazu muss der Roborock 1x mit der Xiaomi-App verbunden werden und der Staubsauger lernt auch das Wifi-Passwort deines WLAN's.
Sobald du den Sauger mit der Xiaomi-App steuern kannst, steht der Steuerung mit FHEM nichts mehr im Wege.
Dazu musst du den Token (sozusagen ein Schlüssel) ermitteln, welcher mit dem Verbinden mit der App generiert wurde.
Solltest du das Gerät zurücksetzen und neu mit der App bekanntmachen, wird ein neuer Token generiert. Nur so als Hinweis.
Da du deinen Staubsauger schonmal verbunden hast, musst du ihn "zurücksetzen/resettieren". Dazu gibt es im Netz genug Anleitungen, wie das geht. Einfach mal bei Google "roborock s5 max reset" oder so eingeben.
Dann auf deinem Smartphone oder Tablet die Xiaomi-App installieren und dich mit deinem Account anmelden.
Da du schreibst, dass du dein Account vergessen hast, wirst du sicherlich noch deine E-Mail-Adresse kennen und dann sozusagen "Passwort vergessen" nutzen. Ansonsten einen neuen Account mit einer anderen E-Mail anlegen.
Ist die App installiert und der Sauger resettiert, den Sauger der App bekannt machen. Wenn du ihn dann mit der App steuern kannst, kannst du FHEM weitermachen. Dann brauchst du die App auch nicht mehr.
Früher war es schwieriger an das Token zu kommen. Mittlerweile gibt es aber Tools dafür, die einem das Leben einfacher machen.
Dazu nutze ich den Token-Extraktor:
https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor
Einfach den "token-extraktor" in der Konsole starten und deine Xiaomi-Account eingeben. Anschl. werden Dir alle Token aller deiner verbundnenen Xiaomi-Geräte angezeigt. U.A. auch die IP.
Du musst lediglich den Sauger mit der IP und dem Token anlegen und als subType "VacuumCleaner" einstellen. Fertig.
Bsp.:
define <name> XiaomiDevice <ip> <token>
also bspw.:
define meinSauger XiaomiDevice 192.168.178.123 12345678901234567890123456789012
und dann im attr meinSauger den subType "VacuumCleaner" setzen.
Viel Erfolg.
Ich versuche gerade einen recht neuen Type: Smartmi Fan 3 (MODEL:zhimi.fan.za5) in FHEM einzubinden.
Wird das Modell noch nicht unterstützt? Habe alle vorhanden Sybtype durchprobiert.
Folgendes erscheint mit verbose 5 im Log:
2021.08.15 09:40:14 5: fan1 > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.08.15 09:44:56 4: fan1: write {"id":1,"method":"set_power","params":["on"]} (45)
2021.08.15 09:44:56 5: fan1: initSend
2021.08.15 09:44:56 5: fan1 Send SUCCESS
2021.08.15 09:44:56 5: fan1 > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.08.15 09:44:56 1: fan1: internal error, values missing
2021.08.15 09:45:02 3: fan1: initialized, using AES
2021.08.15 09:45:12 3: fan1: disconnecting
2021.08.15 09:45:12 2: fan1: connecting
2021.08.15 09:45:12 3: fan1: initialized
2021.08.15 09:45:12 5: fan1: initSend
2021.08.15 09:45:12 5: fan1 Send SUCCESS
2021.08.15 09:45:12 5: fan1 > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Token stimmt, das habe ich auf zwei verschiedene Wege verifiziert. :-)
Zitat von: Dr. Smag am 01 Juli 2021, 13:19:58
Ich habe den Xiaomi Fan 3 implementiert. Habe nur noch das Problem, dass die Temperatur und Luftfeuchtigkeit nicht richtig angezeigt wird. Wer kann helfen?
Nicht offiziell. Ich habe es selber manuell eingebaut. Leider meldet sich hier keiner. Schade.
Zitat von: Dr. Smag am 15 August 2021, 21:55:01
Nicht offiziell. Ich habe es selber manuell eingebaut. Leider meldet sich hier keiner. Schade.
Sorry, das habe ich in diesem Thread wohl noch nicht gefunden. Wo ist deine Anpassung? Ich möchte es gerne testen.
Zitat von: Papaloewe am 16 August 2021, 13:54:07
Sorry, das habe ich in diesem Thread wohl noch nicht gefunden. Wo ist deine Anpassung? Ich möchte es gerne testen.
Jau, derzeit ist der "SmartFan3" noch bei mir lokal. Habe es mal hier abgelegt:
http://www.biest.de/fhem/72_XiaomiDevice.pm
Sollte eigentlich alles gehen: on, off, level (in %), led (Helligkeit in %), anion (Ionisierung) (on/off), buzzer (on/off), mode (straight/natural), angle (30,60,90,120), angle_enable (on/off), move (left,right), child_lock (on/off)
Bis auf die Temperatur und Feuchtigkeits-Ermittlung.
Vielleicht hat ja mal jemand die Zeit das anzupassen.
Die Version basiert auf der letzten Version "72_XiaomiDevice.pm 23021 2020-10-25 08:38:27Z moises $$$".
Vielleicht kann es ja Markus integrieren.
Als Attribute habe ich noch gesetzt:
eventMap: { usr=>{'^pct(.*)'=>'level$1'} }
(Damit gehts dann auch mit Alexa)
stateFormat: mode level% power
(Angepasste Leistenansicht)
subType: SmartFan3
(DeviceSubType eben)
webCmd: level 1:level 25:level 50:level 75:level 100:on:off:pct
(Schnellzugriffe)
Und in "global" habe ich noch temporär das Update der Unit verhindert mit dem Attribut:
exclude_from_update: 72_XiaomiDevice.pm
Gruß
Sebastian
Leider will es auf Anhieb nicht funktionieren:
2021.08.16 19:45:33 3: fan1: initialized, using AES
2021.08.16 19:45:45 3: fan1: disconnecting
2021.08.16 19:45:45 2: fan1: connecting
2021.08.16 19:45:45 3: fan1: initialized
2021.08.16 19:45:45 5: fan1: initSend
2021.08.16 19:45:45 5: fan1 Send SUCCESS
2021.08.16 19:45:45 5: fan1 > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.08.16 19:51:12 3: fan1: disconnecting
2021.08.16 19:51:36 3: fan1: disconnecting
2021.08.16 19:51:36 2: fan1: connecting
2021.08.16 19:51:36 3: fan1: initialized
2021.08.16 19:51:36 5: fan1: initSend
2021.08.16 19:51:36 5: fan1 Send SUCCESS
2021.08.16 19:51:36 5: fan1 > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.08.16 19:54:07 4: fan1: write {"id":1,"method":"set_properties","params":[{"did": "power", "siid": 2, "piid": 1, "value": true}]} (99)
2021.08.16 19:54:07 5: fan1: initSend
2021.08.16 19:54:07 5: fan1 Send SUCCESS
2021.08.16 19:54:07 5: fan1 > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.08.16 19:54:07 1: fan1: internal error, values missing
defmod fan1 XiaomiDevice 192.168.xxx.yyy <token>
attr fan1 eventMap { usr=>{'^pct(.*)'=>'level$1'} }
attr fan1 icon Ventilator_fett
attr fan1 room Schlafen
attr fan1 stateFormat mode level% power
attr fan1 subType SmartFan3
attr fan1 verbose 5
attr fan1 webCmd level 1:level 25:level 50:level 75:level 100:on:off:pct
setstate fan1 mode level% power
Du hast das Gerät aber komplett gelöscht (delete fan1), die Unit neu geladen (reload 72_XiaomiDevice.pm) und neu angelegt (define fan1 XiaomiDevice IP token)?
Gibt halt neue Variablen.
Notwendig ist nur die IP mit dem Token und subType SmartFan3.
Hallo Zusammen,
Leider fehlt noch in der letzten Version "72_XiaomiDevice.pm 23021 2020-10-25 08:38:27Z moises $$$" noch der SubType AirPurifier3C.
Dies wurde im Post https://forum.fhem.de/index.php/topic,73052.msg1108078.html#msg1108078 (https://forum.fhem.de/index.php/topic,73052.msg1108078.html#msg1108078) von Markus M. in sein Perl Modul erfolgreich eingebaut.
Währe schön wenn dies später auch in die Offizielle Update Version kommt.
Bis dahin habe ich den Tip von Dr. Smag, Vielen Dank dafür, die Datei vom Update Excluded: exclude_from_update: 72_XiaomiDevice.pm
List of new / modified files since last update:
UPD FHEM/72_XiaomiDevice.pm (excluded from update)
Hey michiatlnx, danke für die Info. Ich habe mal die von Dir verlinkte "aktuellere Version" als Basis und meine Version zusammengeführt.
So wie es aussieht, wurde da noch ein ToiletSeat neben dem AirPurifier3C eingebaut.
Kannst du es dann zumindest für den "AirPurifier3C" testen?
Der Link weiter oben (https://forum.fhem.de/index.php/topic,73052.msg1170596.html#msg1170596)
enthält nun die neuere Version mit dem AirPurifier3C, ToiletSeat durch Markus und meiner Implementierung des SmartFan3.
Ich habe die Version von dir in das fhem eingebaut.
Das Modul funktioniert weiterhin mit dem AirPurifier3C.
Hi,
der Konfiguration entnehme ich, dass fhem mit den Xiaomi-Geräten über das lokale Netz spricht, d.h. die Geräte/ fhem müssen im gleichen LAN sein, korrekt?
Ich fände es ja charmant, wenn fhem über die Cloud mit meinem Staubsauger sprechen würde (analog der App), dann könnte ich den Staubsauger ins Gastnetz schieben und hätte zumindest ein bisschen ein besseres Gefühl ;-) Gibt es da eine Bridge o.ä.?
Gruß
Also mein fhem und meine Sauger sind in unterschiedlichen V-LANs.
Die Sauger können von sich aus NICHTS erreichen, nicht einmal Internet (gut Zeitserver)...
fhem ist erlaubt die Sauger anzusprechen...
...und die "dürfen" dann antworten... 8)
Das finde ich persönlich sicherer und besser als über eine Cloud zu gehen...
Selbst wenn alles im selben Netz wäre und die Sauger kein Internet hätten, wäre mir das lieber als über eine Cloud...
Weil was helfen dir getrennte Netze, wenn doch alles nach außen und wieder von außen nach innen geht?
Gruß, Joachim
Korrekt, aber wenn ich den Staubsauger nicht mit anderer FM betreiben möchte und trotzdem Komfortfunktionen/ Updates haben möchte, wird es sich zwingend mit der Cloud verbinden müssen. Mein Gedanke: Und wenn schon jemand in meinem Netz sich nach draußen unterhält, hätte ich ihn gerne in Quarantäne geschoben ;-) Jetzt scheint das Modul hier ja so gebaut, dass sich fhem und Staubsauger lokal unterhalten (lokale IP), mein Staubsauger und die App aber per Cloud. Fallback wäre das Setup von Dir und auf die Komfortfunktionen der App zu verzichten...
Ich verzichte auf gar nichts.
Wie kommst du darauf? ;)
Welchen Komfort meinst du?
Ich habe meine gleich zu Beginn gerooted (und würde/werde das jederzeit wieder tun).
Ich kann mir die Karte ansehen, wenn ich will...
...aber wozu?
HeimAUTOMATISIERUNG, daher soll (bei mir) möglichst viel/alles automatisch gehen.
Ich habe Zonen etc.
Also ich habe den Komfort den ich brauche :)
FW Updates eben lokal...
...bzw. kann man ja ma kurz öffnen (mache ich für andere Dinge auch, z.B. Shelly)...
Ansonsten hab ich gerne so viel wie möglich (wünschenswert alles :) ) lokal.
Noch mal: warum getrennte Netze, wenn sich in der Cloud doch eh alles trifft? ;)
Bzw. dann hättest du einen Vorwerk oder Neato kaufen müssen, das Modul geht über die Cloud ;)
Kurzum: dieses Modul steuert (zum Glück) lokal...
...ich wüsste jetzt auch keines in fhem was die Cloud nutzt...
Evtl. mal bei Homeassistant (nutzt aber auch die miio Schnittstelle oder mqtt also auch lokal soweit ich weiß) oder OpenHab etc. schauen und das nutzen bzw. hierher "portieren"...
Was auch geht (sofern es einen Alexa Skill gibt): "steuern" per echodevice-Modul. Dort kann man per set-Befehl auch "Sprachkommandos" schicken. Man hat dann halt kein Sauger-Device in fhem mit Readings von z.B. Consumables etc.
Gruß, Joachim
"Rooten" ist für Dich eine fremde FM aufspielen, richtig?
Zitat von: hkspks am 20 August 2021, 20:36:04
"Rooten" ist für Dich eine fremde FM aufspielen, richtig?
Jep ich habe sofort eine FW mit ssh-Zugang aufgespielt und aktuell laufe ich mit Valetudo...
War auch der Grund mich für diesen Sauger (Xiaomi V1 / V2) zu entscheiden.
Ansonsten hätte ich ihn (verm.) nicht genommen...
Wie geschrieben, wenn du noch keinen Sauger hast, dann eben mal "woanders" (Vorwerk oder Neato) umschauen, da ist das Modul mit Cloud...
Sollte jetzt aber genug "OFF-TOPIC" sein ;)
Gruß, Joachim
Dann nochmal mehr "on Topic" fragen zum Modul :)
1) Sieht/ kann FHEM die Räume (mit Name), die man in der App definiert hat, (mittlerweile) abrufen? Oder ist der Stand 2017 in diesem Thread (verschlüsselt in der Cloud) noch aktuell und man muss mit Koordinaten/ Zonen arbeiten...
2) Ich habe ein Gerät mit Kamera (S6 MaxV). Gibt es eine Möglichkeit, die Kamera abzufragen bzw. hat jemand schon damit Erfahrungen?
Es sieht so aus, dass Xiaomi die lokale Steuerung zurückbaut und zukünftig generell über die Cloud geht.
Ich habe einen Viomi S9 Saug-Wischroboter (Xiaomi), den kann man ungerootet nur über die MiHome-Cloudapp steuern. Das Rooten gestaltet sich schwierig, da einfach erreichbarer USB-Anschluss fehlt.
Bei Homeassistant gibt es eine App, welche auf node-mihome basiert und die Geräte über die Cloud steuert.
Vielleicht lässt sich das auf Perl portieren.
Gruß Jens
p.s. Habe eine Notlösung gebastelt und mit Hilfe von node-mihome ein kleines NPM-Modul inkl. MQTT-Anbindung geschrieben, welches als Service läuft.
Nun kann der Viomi S9 von FHEM (inkl. Rhasspy-Sprachsteuerung) über die Cloud gesteuert werden.
Zitat von: hkspks am 21 August 2021, 12:22:35
Dann nochmal mehr "on Topic" fragen zum Modul :)
1) Sieht/ kann FHEM die Räume (mit Name), die man in der App definiert hat, (mittlerweile) abrufen? Oder ist der Stand 2017 in diesem Thread (verschlüsselt in der Cloud) noch aktuell und man muss mit Koordinaten/ Zonen arbeiten...
Also ich kann die Räume mit "set [robotname] segment [1,2,n]" reinigen lassen. Wenn man die Nummern alle mal ausprobiert hat, geht's.
Hallo, bin seit heute Besitzer eines "Xiaomi Mi Smart Standing Fan 2" und hatte gehofft, dieser wäre auch mit diesem Modul steuerbar.
Laut des ersten Posts werden wohl nur Mi Smart Fan / 1X / 1C / P9 unterstützt.
Ist das aktuell bzw. weiß jemand, ob V2 auch damit steuerbar sind?
Ich habe mal das Device angelegt und bekomme folgendes im Log:
2021.09.08 19:27:29 5: XiaomiFan2: send 21310100000000000ef04fb0...4a602f32e7047c6
2021.09.08 19:27:29 5: XiaomiFan2 Send SUCCESS
2021.09.08 19:27:29 5: XiaomiFan2 > 21310100000639fa7994981bd304a602f32e7047c6
2021.09.08 19:27:29 5: XiaomiFan2 < 21310020000004f29ffffffffffffffffffffffffffffffff (32)
2021.09.08 19:27:33 5: XiaomiFan2 < 2131007000...2d6e5f5a (112)
2021.09.08 19:27:33 5: XiaomiFan2: decrypted
{"id":19,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4020}
Hier ein List:
Internals:
CFGFN
DEF 192.168.178.73 4cfc...ed884e51123d14d
FD 49
FUUID 6138ee37-f33f-1920-8f92-3ad043a809a7c7f8
NAME XiaomiFan2
NR 102109
STATE ???
TYPE XiaomiDevice
mac 54:48:E6:46:A6:30
model dmaker.fan.p18
token 4cfc...ed884e51123d14d
wifi_firmware 2709610
READINGS:
2021-09-08 19:09:25 device_firmware 2.0.7
2021-09-08 19:09:25 device_uptime 5.33
2021-09-08 19:27:33 error user ack timeout
2021-09-08 19:12:27 power off
2021-09-08 19:09:25 wifi_rssi -46
helper:
ConnectionState connected
crypt Rijndael
delay 0
dev 0ef0
id 4fb0
ip 192.168.178.73
last_read 1631122053
packetid 20
port 54321
sequence 1631101784
token 4cfc...ed884e51123d14d
packet:
Attributes:
DbLogExclude .*
room Wohnzimmer
subType SmartFan
Ja, herzlichen. Ich habe den Fan3 implementiert. Leider ist das noch nicht im Repository mit aufgenommen worden. Das erweiterte Modul findest du in einem meiner vorherigen Posts am 16.08.2021.
Da ist der Fan3 mit drin.
Vielleicht funktioniert dein Fan2 ja damit, berichte mal.
Okay, state ist mit Deiner Version zwar nun connected. Aber es tut sich nichts und der error heißt nun "useracktimeout".
Wie hast du denn deine V3 Version erstellt? Dann mache ich mir auch gerne die Mühe für die V2 Version.
Das war ein wenig tricky. Ich selbst bin ja auch kein Perl-Programmierer.
Ich habe mir dann mühevoll die Stellen herausgesucht und erweitert.
Wichtig ist, dass du das JSON-mitschneidest, welches dein Fan2 zurückgibt.
Das machen einige mit Wireshark. Ich habe es mit meinem Smartphone gemacht.
Frag' mich aber nicht mehr wie. War total aufwendig, mit root-Zugriff.
Habe danach die ganze Software von meinem Smartphone geschmissen, da mir das nicht geheuer war.
Habe an der Implementation aber auch echt 1-2 Tage rumgefummelt.
Wenn du magst, kannst du mir auch den Fan2 zusenden, versuche den einzubauen und schicke dir den wieder zurück. Gehe extrem pflegsam damit um.
Moin!
Es scheint ja bei den Induktions Reiskochern Unterschiede zu geben.
Habe die Tage ganz günstig bei eBay den 3 Liter geschossen.
Leider lässt sich dieser nur über "Mainland China" in die Mi Home App integrieren und bis jetzt habe ich auch noch das Problem, dass der Kocher die Zeitzone nicht annimmt. Aktuell ist er immer 1 Stunde hinten, egal welches Land ich in der App eingebe.
Aber zum eigentlichen Anliegen:
Als Model wird mein Xiaomi als chunmi.cooker.normalcd1 angezeigt.
Leider kommen da nicht wirklich viele Readings, wenn der Kocher läuft.
Noch ein unbekanntes Modell oder sind IH Reiskocher generell noch nicht so weit integriert ?
Habe jetzt noch nicht so richtig verstanden, welchen Vorteil ich habe, wenn ich einen Reiskocher in meine Heimautomatisierung integriere...
Eine Integration sollte kein Problem darstellen, wenn sich jemand dazu bereit erklärt. Letzteres wird schwieriger. Ist Markus M. eigentlich nicht mehr aktiv? Wäre sehr sehr schade.
Ganz einfach:
Bei mir sind sämtliche Xiaomi Geräte über den Deutschen Server angemeldet.
Das funktioniert mit dem Reiskocher bei mir nicht.
Ich müsste immer wieder switchen, ein anderes Smartphone nehmen, oder halt FHEM.
Nur scheint der Reiskocher bei FHEM gar nicht groß integriert zu sein?
Beim Roborok sieht das alles anders aus.
Zitat von: Guenni1404 am 04 April 2021, 15:11:26
Könnte das senden von Befehlen an den Reiskocher integriert werden.
Hier werden auch schon Programme gelistet. Wäre super wenn ich den Reiskocher so starten könnte und nicht die App dafür brauche.
https://raw.githubusercontent.com/rytilahti/python-miio/5730f535d4691e0c2b4260cd7835b7a43ddc8ab0/miio/data/cooker_profiles.json (https://raw.githubusercontent.com/rytilahti/python-miio/5730f535d4691e0c2b4260cd7835b7a43ddc8ab0/miio/data/cooker_profiles.json)
Ein Start/Stop/Auswahl eines Programms über FHEM wäre super. Würde dann für die Standartprogramme nicht immer die App benötigen.
Hallo!
Hast du auch das Problem mit der Uhrzeit, dass diese 1 Std. falsch geht beim Reiskocher? Habe den 3 Liter Induktion mit Chinesischer Beschriftung.
Kann bitte kurz jemand sagen, ob mein Reiskocher nicht unterstützt wird?
Internals:
DEF 192.168.2.33 1234567890
FD 26
FUUID 6142500f-f33f-4afb-1c6c-4a55314c0baa983f
NAME Reiskocher
NR 297
STATE ???
TYPE XiaomiDevice
hardware esp32
mac 54:48:E6:6B:63:8E
model chunmi.cooker.normalcd1
token 1234567890
wifi_firmware v4.0.1-476-g71f0ccb
READINGS:
2021-09-16 18:27:22 device_firmware 2.1.8_0008
2021-09-16 18:27:22 device_uptime 5.70
2021-09-16 18:27:28 error none
2021-09-16 18:27:22 wifi_rssi -56
helper:
ConnectionState connected
crypt AES
delay 60
dev 1579
id 3cf9
ip 192.168.2.33
last_read 1631809648
packetid 4
port 54321
sequence 1631789133
token 1234567890
packet:
1 device_info
2 wifi_stats
3 ricecooker_data
Attributes:
subType RiceCooker
Das Einzige was im Log steht ist:
2021-09-16 18:32:28 XiaomiDevice Reiskocher error: none
Wenn mir einer den Reiskocher mit einem frankierteren Rückschein oder so rüber schickt, versuche ich das Teil zu implementieren.
Achso, dachte der wäre schon drin??
Weil in der 72er pm finde ich zumindest Kommandos für einen Reiskocher.
Wohl nur nicht für diesen
Zitat von: Dr. Smag am 16 September 2021, 22:07:32
Wenn mir einer den Reiskocher mit einem frankierteren Rückschein oder so rüber schickt, versuche ich das Teil zu implementieren.
Ist es nicht das, was du brauchst?
https://raw.githubusercontent.com/rytilahti/python-miio/5730f535d4691e0c2b4260cd7835b7a43ddc8ab0/miio/data/cooker_profiles.json (https://raw.githubusercontent.com/rytilahti/python-miio/5730f535d4691e0c2b4260cd7835b7a43ddc8ab0/miio/data/cooker_profiles.json)
Ne, ist nicht meins von Github
Aber der Ganze Kram ist doch eigentlich schon enthalten in der PM:
my %cooker_menus = ( '0000' => "None",
'0001' => "Cooking",
'0002' => "Quick cooking",
'0003' => "Rice porridge",
'0004' => "Heat preservation",
'0100' => "Personal settings" , );
my %cooker_stages = ( '00' => "Idle",
'01' => "Preheating",
'02' => "Water-absorbing",
'03' => "Boiling",
'04' => "Gelantinizing",
'05' => "Braising" , );
Die Geräte unterscheiden sich da von den Kommandos. Ich habe das beim SmartFan3 gemerkt.
Ich brauche die Response-Json von dem Gerät. Die sieht glaube ich anders aus. Muss ich mir morgen mal anschauen. Heute schaffe ich das nicht mehr.
Alles klar, immer mit der Ruhe.
Der Hase ist in der unten aufgeführten Sektion begraben. Da gibt es einen Block, wo gezielt in der JSON des Geräts zugegriffen wird.
Leider unterscheiden sich die Array-Positionen je nach Model. Das müsste man entsprechend als Model erweitern.
Der hier eigentlich dargestellte Block ist um einiges größer. Hier nur eine Zeile.
if($msgtype eq "ricecooker_data")
{
...
readingsBulkUpdate( $hash, "func", $json->{result}[0], 1 ) if(defined($json->{result}[0]));
...
}
Um den Datenverkehr mitzuschneiden, gibt es versch. Tools. Bei iOS habe ich den HTTP-Catcher installiert (da gibt es versch. Tools (Charles, Mitmproxy etc.)) und parallel die Xiaomi-App benutzt um an die Daten zu kommen, die notwendig sind.
Mag leider keine Äpfel. Hast du da was für Android?
Sag mir dann genau was du brauchst.
Den Sniffer an und dann einmal alle Funktionen auswählen und loggen?
Ne, eigentlich wirft das Teil ein Json zurück, welches die komplette Struktur liefert. Besser gesagt die verschachtelten Daten, wo man sie dann findet und was die für Parameter erwarten. Und entprechend der gefüllten Daten.
Ich kann dir das aus Xiaomi-Copyright-Gründen hier nicht posten. Schicke Dir ne PM.
Chinesen und Copyright ;D
Alles klar, mach es aber für Dummies ;)
Zitat von: JensS am 22 August 2021, 18:55:32
p.s. Habe eine Notlösung gebastelt und mit Hilfe von node-mihome ein kleines NPM-Modul inkl. MQTT-Anbindung geschrieben, welches als Service läuft.
Nun kann der Viomi S9 von FHEM (inkl. Rhasspy-Sprachsteuerung) über die Cloud gesteuert werden.
Cool, magst du teilen? Was kannst du damit alles ansteuern?
Zitat von: hkspks am 18 September 2021, 23:29:11
Cool, magst du teilen? Was kannst du damit alles ansteuern?
Gern, wie schon erwähnt läuft der Konnektor per NPM. Bin aber kein Programmierer und habe bestimmt etliche Fehler drin. Zumindestens läufts, solange FHEM nicht neu gestartet wird. Müsste noch eine Fehlerroutine rein.
const mihome = require('/usr/local/lib/node_modules/node-mihome'); // "npm i node-mihome" -g erforderlich
const username = 'xxx@xxx.xxx'; // Zugangsdaten zur MiCLoud - Email
const password = '...'; // Zugangsdaten zur MiCLoud - Passwort
const optionen = { country: 'de' };
const deviceId = 'xxxxxxxxx'; // DeiviceId des Gerätes
var mqtt = require('/usr/local/lib/node_modules/mqtt');
var count =0;
var test;
var client = mqtt.connect("mqtt://192.168.100.2:1884",{clientId:"viomi"}); // MQTT-Server
var Methode = 'get_properties'; //
var Parameter = [{ "siid": 2, "piid": 1 }]; // Status-Ids beim Viomi S9
// Loginfunktion in MiCloud
async function cloudlogin() {
await mihome.miCloudProtocol.login(username, password);
};
cloudlogin();
// Versand der Anweisung zur CLoud
async function cloud() {
anweisung = await mihome.miCloudProtocol.miioCall(deviceId, Methode, Parameter, optionen);
Reading = JSON.stringify(anweisung);
publish("viomi",Reading,options);
};
// Empfang der MQTT-Nachrichten von FHEM und Übergabe an den Versand
client.on('message',function(topic, message, packet){
var test = JSON.parse(message);
var key = Object.keys(test)[0];
var Value = Object.values(test)[0];
Methode = key;
Parameter = Value;
cloud();
});
// MQTT-Anmeldung
client.on("connect",function(){
});
// Exit bei Fehler
client.on("error",function(error){
client.on("connect",function(){}});
// Versand der MQTT-Nachricht an FHEM
function publish(topic,msg,options){
if (client.connected == true){
client.publish("viomisend",msg,options);
}
else
{
count+=1;
if (count==2) {cloudlogin()}; // Relogin bei 2 Fehlern
if (count==4) {// End bei 4 Fehlern
clearTimeout(timer_id); //stop timer
client.end();
};
};
};
var options={
retain:false,
qos:0};
var topic="xiaomi";
var message="test message";
client.subscribe(topic,{qos:1});
var timer_id=setInterval(function(){ },5000);
Dazu der Service:
[Unit]
Description=Viomi Staub-Wischroboter
After=network.target
[Service]
Environment=NODE_PORT=3001
Type=simple
User=egon
ExecStart=/usr/bin/node /opt/viomi/index.js
Restart=on-failure
[Install]
WantedBy=multi-user.target
Hier ein paar setList:
Status:noArg xiaomi {"get_properties": [{"siid": 2, "piid": 1}]}
SaugeAlles:noArg xiaomi {"action": {"siid":2,"aiid":1,"in":[]}}
WaehleZoneEsstisch:noArg xiaomi {"set_properties": [{"siid": 6, "piid": 2, "value":"1.6,-0.7,1.6,1.5,4.5,1.5,4.5,-0.7"}]}
SaugeRaum1und2:noArg xiaomi {"action": {"siid": 4, "aiid": 13, "in":[{"piid": 36, "value": 0}, {"piid": 37, "value": 1}, {"piid": 38, "value": "1,2"}]}}
Die Werte des Viomi S9 habe ich von https://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:vacuum:0000A006:viomi-v18:1 (https://miot-spec.org/miot-spec-v2/instance?type=urn:miot-spec-v2:device:vacuum:0000A006:viomi-v18:1).
Der Empfang von Events steht noch auf der Liste und alle Map-Sachen mache ich mit dem Handy.
Gruß Jens
Gibt es eine Möglichkeit die beiden folgenden Modelle zu integrieren: Roborock E4 und Roborock S7?
Der E4 funktioniert nicht (getestet mit korrektem Token), beim S7 erwäge ich einen Kauf. Bisher vorhandene Modelle Roborock S5/S50 und S5 Max funktionieren einwandfrei.
mir ist gerade noch ein kleiner Bug bei den Xiaomi-Lampen aufgefallen. Der PCT-Wert wird hier ja über Brightness angezeigt/geändert. Wenn ich die Lampe ausschalte geht Brightness auf 0. Soweit absolut korrekt. Es ist jetzt aber nicht möglich Brightness selbst auf Null zu stellen und damit die Lampe auszuschalten. Es lassen sich nur Werte von 1-100 einstellen. Bei 0 passiert nichts.
Kann man diese Verlinkung auch noch einbauen? Also -> Schieberegler auf Null ziehen schaltet die Lampe aus.
Edit: Gleiches Verhalten bei SmartLamp und Eyecare-Lampe
mir ist gerade aufgefallen, dass der AirPurifier 3H nicht mehr richtig gesteuert werden kann. Vorher gabs es einen Modus "manual" der nicht mehr da ist. Dann konnte man auch den Fan_Level 1,2,3 steuern.
Das geht auch nicht mehr
Zitat von: StephanFHEM am 25 Oktober 2021, 21:40:06
mir ist gerade aufgefallen, dass der AirPurifier 3H nicht mehr richtig gesteuert werden kann. Vorher gabs es einen Modus "manual" der nicht mehr da ist. Dann konnte man auch den Fan_Level 1,2,3 steuern.
Das geht auch nicht mehr
Also bei mir geht es.
Es heißt aber auch set level 0-3
Leg mal das Gerät neu an.
edit: hatte bei dem Versuch eine neue Version drauf zu machen um den Fehler in meinem vorletzten Beitrag zu beheben wohl eine alte Version installiert. Deswegen hatte ich nicht die richtigen Daten. Hab noch mal ein Update gemacht und jetzt läuft der AirPurifier wieder wie gewohnt. Der Fehler mit Brightness = 0 bleibt aber weiter bestehen.. Lampen gehen nicht aus.
Hallo zusammen und erstmal vielen Dank für dieses Modul - ich liebe FHEM.
Nun zu meiner Frage:
Ich möchte meine Frau jetzt mit einem Staubsauger Roboter beglücken und soweit ich das gesehen habe, scheint der Roborock S5 Max eines der am Besten unterstützten Modelle zu sein.
Muss ich hier noch auf was besonderes achten (außer der alten Xiaomi Home App) oder kann ich da einfach einen beliebigen kaufen (gibt es in Schwarz und Weiß, aktuell um ca. 380,-)?
Danke,
liebe Grüße
Richard
@stephanFHEM, welche Version hast Du denn genommen, ich habe ja auch das Problem seit längerem, aber bisher keine Lösung, würde ich wohl auch mal probieren :D
Danke,Ronny
Nimm diese hier:
https://forum.fhem.de/index.php/topic,73052.msg1170596.html#msg1170596
Der Entwickler meldet sich leider nicht mehr, damit wir das ins Repository mit aufnehmen können.
Zudem bin ich kein Perl-Entwickler, was für mich sehr mühselig ist, Änderungen vorzunehmen.
Zitat von: StephanFHEM am 08 Oktober 2021, 17:51:05
mir ist gerade noch ein kleiner Bug bei den Xiaomi-Lampen aufgefallen.
Schick mal Artikel-Links. Dann bestelle ich mir mal eine um das anzugehen.
Bspw. so eine? https://www.amazon.de/Xiaomi-XIAOMI-Ampoule-Connectée-Blanc/dp/B08C4TWFJK/
Zitat von: Dr. Smag am 27 Oktober 2021, 17:44:48
Der Entwickler meldet sich leider nicht mehr, damit wir das ins Repository mit aufnehmen können.
mW wohnt Markus irgendwo in der Flussgegend die es im Sommer "weggespült" hat - der hat, glaube ich, gerade keine Infrastruktur
Zitat von: Otto123 am 27 Oktober 2021, 17:52:04
mW wohnt Markus irgendwo in der Flussgegend die es im Sommer "weggespült" hat - der hat, glaube ich, gerade keine Infrastruktur
Ach herrje!
Hallo,
ich hatte Markus aber bereits im Frühjahr angeschrieben und es kam keine Reaktion, von daher wäre wohl es doch sinnvoll, so langsam das Modul als verwaist zu kennzeichen bzw per neuen Dev als Proxy die neue Version hochzuladen, oder Dr.Smag hat Bock und übernimmt solange so gut es geht.
Wenn er wieder auftaucht, kann man ja immernoch eine Lösung finden. Aber generell denke ich, es wäre für alle die aktuell bessere Variante.
Ronny
Hi,
Zitat von: Dr. Smag am 27 Oktober 2021, 17:44:48
Nimm diese hier:
https://forum.fhem.de/index.php/topic,73052.msg1170596.html#msg1170596
Der Entwickler meldet sich leider nicht mehr, damit wir das ins Repository mit aufnehmen können.
Zudem bin ich kein Perl-Entwickler, was für mich sehr mühselig ist, Änderungen vorzunehmen.
Schade, klappt auch so nicht, aber ich kann aktuell damit leben, wird schon noch :)
set reconnect zeigt im Log weiterhin nur:
2021.10.27 19:18:11 3: airpurifier: disconnecting
2021.10.27 19:18:11 2: airpurifier: connecting
2021.10.27 19:18:11 3: airpurifier: initialized
2021.10.27 19:18:11 5: airpurifier: initSend
2021.10.27 19:18:11 5: airpurifier Send SUCCESS
2021.10.27 19:18:11 5: airpurifier > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Zitat von: Dr. Smag am 27 Oktober 2021, 17:47:30
Schick mal Artikel-Links. Dann bestelle ich mir mal eine um das anzugehen.
Bspw. so eine? https://www.amazon.de/Xiaomi-XIAOMI-Ampoule-Connectée-Blanc/dp/B08C4TWFJK/
so eine hier: https://www.kaufland.de/product/347624804/
Gibt es mittlerweile jemanden, der einen Roborock S7 in FHEM integriert hat?
Oder laufen nur ältere Modelle mit dem Modul?
Gerade eben den S7 integriert. Funktioniert im ersten Blick!
Oha, heute und die selbe Frage :-) Ich hab vom S5 auf den S7 gewechselt. Mit Token usw hat alles geklappt allerdings weiß ich bei den Zonen nicht mehr weiter... Ich hatte beim S5 die Zonen mit der FloleVac App herausgefunden ( die Koordinaten ) . Flole unterstützt den S7 aber scheinbar nicht.... Weiß jemand wie ich an die Koordinaten herankomme? Wechsel in FHEM war simpel. Russische MiHome App über Multi-Memu aufm PC installiert und den Token ausgelesen. Musste dann in FHEM nur den DEF ändern ( neue IP und neuer Token ). Verbunden ist er jetzt mit FHEM, allerdings suche ioch mich grade wund wie ich an die Koordinaten der Karte komme :-)
Moin,
wer Probleme hat seine Xiaomi Geräte in einem IoT VLAN zu erreichen und einen Router der iptables beherrscht, findet hier nun die Lösung:
iptables -t nat -A POSTROUTING -s YOUR_FHEMSERVER_IP/32 -d YOUR_DEVICE_IP/32 -p UDP -j MASQUERADE --to-ports 54321
Bei mir läuft das so auf einer UDM-Pro (Unifi Dream Machine).
Die Roborocks bspw. haben dieses Problem über Subnetze hinweg zu kommunizieren nicht. Es gibt aber einige Gerätemodelle für die das der Fall ist. So auch meine beiden Xiaomi Fans:
- Smartmi DC Pedestal Fan
- Smartmi Standing Fan 2S
Die Lösung kommt aber nicht von mir persönlich. Ich habe sie in folgendem Github Issue gefunden und dann leicht modifiziert auch dort festgehalten:
https://github.com/rytilahti/python-miio/issues/422#issuecomment-1000574930
Viel Spaß damit und schöne Weihnachten! ;)
Gruß Hoppel
Danke Hoppel, danke! Das wars bei mir!
Hi, es gab noch einen Kommentar von syssi bei Github:
https://github.com/rytilahti/python-miio/issues/422#issuecomment-1000694786
ZitatIf this command is added to the docs please remove the /24 subnet. /32 would be correct for a single host and can be omitted in this case.
Habe den Befehl in meinem letzten Post entsprechend angepasst.
Gruß Hoppel
Moin,
bin gerade am Überlegen einen meiner beiden Ventilatoren ,,Xiaomi Smartmi DC Pedestal Fan" auszutauschen, da er die Verbindung mit meiner neuen WPA2/WPA3 SSID (PMF optional) nicht hält. Mit einer reinen WPA2 SSID funktioniert er tadellos. Will aber jetzt nicht extra für ein Gerät eine eigene SSID bereitstellen. Das kostet Airtime. ;)
Hat hier schon jemand einen ,,Xiaomi Smartmi Standing Fan 3" in Betrieb?
Wie stehen die Chancen das Modell eingebunden zu bekommen, wenn es nicht so sauber funktioniert?
Die Einbindung hätte keine Eile. Will mir nur einen Fehlkauf ersparen. Das Modell ,,Fan 2S" funktioniert nämlich einwandfrei. Hätte aber nichts dagegen direkt das neue Modell zu kaufen, um eine gewisse Updatesicherheit zu haben.
EDIT: Hat sich erledigt. Habe mal die letzten Seiten dieses Threads gelesen. @Dr. Smag hat den Smart Fan 3 angebunden:
https://forum.fhem.de/index.php/topic,73052.msg1170596.html#msg1170596
Ich werde mir direkt das 3. Modell holen. Super!
Wahrscheinlich braucht man mit Markus hier erstmal nicht mehr zu rechnen. Letzter Login war am 11.6.21.
Danke und Gruß Hoppel
Moin @Dr. Smag
ich habe gerade dein Modul installiert und meinen neuen Xiaomi Fan Gen. 3 eingerichtet.
Das Teil läuft nun in meinem IoT VLAN. Gute Arbeit! TOP!
Der gesamte Inbetriebnahmevorgang war allerdings etwas eigenartig. Nachdem ich das Gerät defined habe, ist erstmal nichts passiert. Dann habe ich festgestellt, dass der SubType auf VacuumCleaner steht und nicht auf SmartFan3. Also kurz umgestellt. Es ist dann aber immer noch nichts passiert. Erst als ich den Ventilator einmal auf SmartFan gestellt habe, wurde das Gerät "eingelesen". Dann wollte ich den ersten Befehl über das FHEM WebUI ausführen, geht nicht, "unsupported" oder so ähnlich, also nochmal auf SmartFan3 umgestellt und nun geht alles.
Ist dieses Verhalten bekannt?
Danke und viele Grüße Hoppel
Servus!
Ich nutze einen Roborock S7. Er wird als Model "roborock.vacuum.a15" in FHEM gelistet.
Das Model hat einen Wassertank und es wird das Reading water_box_mode auch ausgelesen.
Nun würde ich gerne die Wassermenge über FHEM setzen können.
Aus dem Modul konnte ich lesen, dass das set command prinzipiel integriert ist, aber nur für das Model "roborock.vacuum.s5e" (Modul Perl Zeile 656)
Hat das einen speziellen Grund? Könntet Ihr mein Model noch mit aufnehmen?
Vielen Dank und Grüße,
Ulli
Hallo in die Runde,
ich habe mir eine Elektro-Heizung "Xiaomi Smartmi Convector Heater 1S" gekauft.
https://www.amazon.de/dp/B08P61VPRC/?smid=AMUN6OW4OKOC5&tag=idealode-aw6-21&linkCode=asn&creative=6742&camp=1638&creativeASIN=B08P61VPRC&ascsubtag=N7XeYiN8CuHGwlOnvzcYUg&th=1&psc=1
Diese möchte ich nun gern einbinden. Da es das Device so noch nicht in diesem Modul gibt, stellt sich mir die Frage, was erforderlich ist, um das Gerät einzubinden?
Welche Informationen muss ich wie liefern bzw. wer kann mich unterstützen, das Gerät in das Modul zu integrieren? Ich habe keine Programmierkenntnisse. ;)
@Dr. Smag Du hast es für den Smart Fan 3 geschafft. Vielleicht kannst du mich in die richtige Richtung schupsen? :D
Wie hoch schätzt du den Aufwand ein?
Wer maintained denn eigentlich dieses Modul, wenn der Hauptentwickler verschwunden ist? Hoffentlich ist ihm nichts passiert! So wie ich das sehe, gab es kein "tschüss".
Hier noch ein list vom Device. Habe ein paar subTypes ausprobiert immer nur "commanderror".
Internals:
CFGFN
DEF xxx.xxx.xxx.xxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
FD 91
FUUID 61d773c6-f33f-5dcf-5f32-fb9b531c6d7cd3e6
NAME OG_Kabuff_Heizung
NR 1406
STATE ???
TYPE XiaomiDevice
hardware esp32
mac zz:zz:zz:zz:zz:zz
mcu_firmware 0005
model zhimi.heater.zb1
token yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
wifi_firmware ba139e41f
READINGS:
2022-01-06 23:57:24 device_firmware 2.1.8
2022-01-06 23:57:24 device_uptime 0.34
2022-01-07 00:12:31 error commanderror
2022-01-06 23:57:24 wifi_rssi -60
helper:
ConnectionState connected
crypt AES
delay 60
dev 1839
id ca37
ip xxx.xxx.xxx.xxx
last_read 1641510751
packetid 15
port 54321
sequence 1641508628
token yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
packet:
12 hum_data
13 air_data
14 air_data
Attributes:
subType AirPurifier
Danke euch und Gruß Hoppel
Hi,
erstmal danke für das Modul.
Nun habe ich eine Frage.
Ich nutze folgende Steuerung: attr Ferdinand.Steuerung.rG commands {'play' => 'set Ferdinand start','pause' => 'set Ferdinand pause','stop' => 'set Ferdinand charge', }
Nun ist es so, dass bei stop das Gerät in die Ladeschale soll - dies geht nur mit einem doppelten "charge".
Wie löse ich das am "saubersten"(Achtung Wortwitz) ?
Internals:
DEF 192.168.0.217 xxxxxxxxxxxxxxxxxxx
FD 25
FUUID 61dabe65-f33f-53cd-314b-ee72539bb26498e3
NAME Ferdinand
NR 49
STATE Sleeping
TYPE XiaomiDevice
hardware Linux
mac xxxxxxxxxxxx
model roborock.vacuum.s5
token xxxxxxxxxxxxxxxxxxxxxxxxx
READINGS:
2022-01-13 12:02:46 app_bom A.03.0005
2022-01-13 12:02:46 app_language en
2022-01-13 12:02:46 app_location de
2022-01-13 12:02:46 app_logserver awsde0.fds.api.xiaomi.com
2022-01-13 12:02:46 app_name custom_A.03.0005_CE
2022-01-13 12:02:46 app_timezone Europe/Berlin
2022-01-13 12:11:11 batteryPercent 71
2022-01-13 12:11:11 batteryState ok
2022-01-13 12:02:46 carpet_high 500
2022-01-13 12:02:46 carpet_integral 450
2022-01-13 12:02:46 carpet_low 400
2022-01-13 12:02:46 carpet_mode on
2022-01-13 12:02:46 carpet_stall_time 10
2022-01-13 12:11:11 cleaning_mode max
2022-01-13 12:02:46 consumables_filter 97
2022-01-13 12:02:46 consumables_main_brush 98
2022-01-13 12:02:46 consumables_sensors 85
2022-01-13 12:02:46 consumables_side_brush 97
2022-01-13 04:02:43 device_firmware 3.5.8_002034
2022-01-13 12:02:46 device_fw_features 102,103,104,105,111,112,113,114,115,116,117,118,119,122,123,125
2022-01-13 04:02:43 device_uptime 0.42
2022-01-13 12:11:11 dnd off
2022-01-13 12:02:46 dnd_enabled on
2022-01-13 12:02:46 dnd_end 08:00
2022-01-13 12:02:46 dnd_start 20:00
2022-01-13 12:11:11 error none
2022-01-13 12:11:11 error_code None
2022-01-13 12:11:11 fan_power 104
2022-01-13 12:02:46 history_0 2022-01-13 11:04:01: 30.32m² in 0.52h, not finished
2022-01-13 12:02:46 history_1 2022-01-12 11:04:00: 0.80m² in 0.01h, not finished
2022-01-13 12:02:46 history_2 2022-01-11 15:40:36: 3.64m² in 0.05h, finished cleaning
2022-01-13 12:02:46 history_3 2022-01-11 15:38:37: 0.00m² in 0.02h, not finished
2022-01-13 12:02:46 history_4 2022-01-11 14:00:03: 31.76m² in 0.67h, not finished
2022-01-13 12:02:46 history_5 2022-01-11 13:15:10: 17.25m² in 0.36h, not finished
2022-01-13 12:02:46 history_6 2022-01-11 13:14:27: 0.53m² in 0.01h, not finished
2022-01-13 12:02:46 history_7 2022-01-11 12:06:26: 2.96m² in 0.10h, finished cleaning
2022-01-13 12:02:46 history_8 2022-01-11 11:08:20: 7.11m² in 0.26h, finished cleaning
2022-01-13 12:02:46 history_9 2022-01-11 11:04:01: 0.00m² in 0.01h, not finished
2022-01-13 12:11:11 in_cleaning no
2022-01-13 12:11:11 in_fresh_state yes
2022-01-13 12:11:11 in_returning no
2022-01-13 12:11:11 lab_status yes
2022-01-13 12:11:11 last_clean_area 30.32
2022-01-13 12:11:11 last_clean_time 0.52
2022-01-13 12:02:46 last_timestamp 1642068241
2022-01-13 12:11:11 letzteReinigung 2022-01-13 11:04:01
2022-01-13 12:11:11 lock_status off
2022-01-13 12:11:11 map_present yes
2022-01-13 04:02:43 serial_number R0018S82406226
2022-01-13 12:11:11 state Sleeping
2022-01-13 12:02:46 timer1 on
2022-01-13 12:02:46 timer1_power HASH(0x560ada8501b8)
2022-01-13 12:02:46 timer1_program start_clean
2022-01-13 04:02:43 timezone Europe/Berlin
2022-01-13 12:02:46 total_clean_area 61374.44
2022-01-13 12:02:46 total_clean_time 1108.41
2022-01-13 12:02:46 total_cleans 2705
2022-01-13 11:02:46 volume 90
2022-01-13 12:11:11 water_box_status no
2022-01-13 04:02:43 wifi_auth_fail_count 0
2022-01-13 04:02:43 wifi_conn_fail_count 0
2022-01-13 04:02:43 wifi_conn_success_count 1
2022-01-13 04:02:43 wifi_dhcp_fail_count 0
2022-01-13 04:02:43 wifi_rssi -58
2022-01-13 04:02:43 wifi_state online
helper:
ConnectionState connected
cleanrecord 10
crypt AES
delay 60
dev 05c2
historydays 10
id 80d5
ip 192.168.0.217
last_read 1642072271
packetid 1703
port 54321
sequence 0
timer1 1535037722033
timer1_cron 411**1,2,3,4,5
timers 1
token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
zone_names kueche,wohnzimmer,flur,kuechealt,wohnzimmeralt,fluralt
day:
history:
packet:
1700 get_status
1701 get_status
1702 get_status
zones:
flur [21197,23781,26997,26881,1]
fluralt [24431,21394,28231,24544,1],[22455,21419,25005,23769,1]
kueche [21548,27416,25098,29466,1]
kuechealt [22804,25820,26204,27070,1],[22831,25557,26081,26057,1],[24769,25041,26069,25541,1]
wohnzimmer [25281,26983,30681,29483,1],[27048,24610,30648,27010,1]
wohnzimmeralt [26387,24638,31887,27688,1],[28370,22389,31770,24739,1]
Attributes:
alexaName Ferdinand
event-on-change-reading .*
genericDeviceType switch
homebridgeMapping On=state,valueOn=/Cleaning|Paused|Sleeping/,valueOff=/Docked|Charging/,cmdOn=start,cmdOff=charge
RotationSpeed=fan_power,minValue=0,maxValue=90,cmd=fan_power,delay=1
BatteryLevel=batteryLevel,maxValue=100,minValue=0,minStep=1
StatusLowBattery=battery,values=ok:BATTERY_LEVEL_NORMAL;;;;low:BATTERY_LEVEL_LOW
ChargingState=state,values=Docked:NOT_CHARGING;;;;Charging:CHARGING;;;;/Cleaning|Returning.to.base/:NOT_CHARGEABLE
OccupancyDetected=state,values=/Docked|Charging/:OCCUPANCY_DETECTED
FilterLifeLevel=consumables_filter,minValue=0,maxValue=100
FilterChangeIndication=consumables_filter,values=0:CHANGE_FILTER
intervalData 60
room Saugroboter
stateFormat state
subType VacuumCleaner
userReadings letzteReinigung {ReadingsVal("Ferdinand","history_0","")=~ m/\b\d{4}\W\d{2}\W\d{2}\s\d{2}\W\d{2}\W\d{2}\b/;;;; return $&;;;;}
zone_names kueche:[21548,27416,25098,29466,1] wohnzimmer:[25281,26983,30681,29483,1],[27048,24610,30648,27010,1] flur:[21197,23781,26997,26881,1] kuechealt:[22804,25820,26204,27070,1],[22831,25557,26081,26057,1],[24769,25041,26069,25541,1] wohnzimmeralt:[26387,24638,31887,27688,1],[28370,22389,31770,24739,1] fluralt:[24431,21394,28231,24544,1],[22455,21419,25005,23769,1]
EDIT: Desweiteren hatte ich gerade zum ersten Mal diese Meldung im Log:
2022.01.13 12:02:46 2: Ferdinand: Message type for ID 1680 not found
Kennt sie wer?
Hallo zusammen,
erstmal vorweg: Ich habe noch nicht alle 160 Seiten gelesen, ich bin noch bei 2017, vielleicht steht da schon irgendwo eine Lösung, würde mich aber über Hilfe freuen :)
Wir haben letzte Woche unseren Roborock S7+ bekommen.
- Ich habe ihn auf zwei Handys mit der Roborock App verbunden.
- Firmware laut App: aktuell: 01.13.20, neueste Version: 02.13.98, Update empfohlen, aber noch nicht gemacht.
Wohnung ist kartiert, die Begeisterung groß. Jetzt soll die Begeisterung mit fhem gesteigert werden.
Wie komme ich nun bei diesem Stand am besten an den Token? Mein Kenntnisstand bis jetzt: Alte MiHome-App (habe 4.2.0 installiert) und MiToolkit.
- Sind die Karten/Einstellungen weg, wenn ich ihn mit der MiHome App verbinde?
- Ist die Verbindung mit der Roborock App dann weg?
Danke und Gruß
Roland
Zitat von: hauwech am 17 Januar 2022, 10:19:33
Hallo zusammen,
erstmal vorweg: Ich habe noch nicht alle 160 Seiten gelesen, ich bin noch bei 2017, vielleicht steht da schon irgendwo eine Lösung, würde mich aber über Hilfe freuen :)
Wir haben letzte Woche unseren Roborock S7+ bekommen.
- Ich habe ihn auf zwei Handys mit der Roborock App verbunden.
- Firmware laut App: aktuell: 01.13.20, neueste Version: 02.13.98, Update empfohlen, aber noch nicht gemacht.
Wohnung ist kartiert, die Begeisterung groß. Jetzt soll die Begeisterung mit fhem gesteigert werden.
Wie komme ich nun bei diesem Stand am besten an den Token? Mein Kenntnisstand bis jetzt: Alte MiHome-App (habe 4.2.0 installiert) und MiToolkit.
- Sind die Karten/Einstellungen weg, wenn ich ihn mit der MiHome App verbinde?
- Ist die Verbindung mit der Roborock App dann weg?
Danke und Gruß
Roland
Ich habe mir letzte Woche erst den Token mit der russischen App geholt. (für Roborock S50)
Das schaut auch recht easy aus: https://github.com/Maxmudjon/Get_MiHome_devices_token .
Zu den Karten kann ich nichts sagen da mein S50 eh nicht mehrere speichern kann.
Die Verbindung zur Roborock App war bei mir weiterhin da.
Es gibt ein Fhem Modul, mit dem man die Token auslesen kann..Nennt sich xiaomi_tokens und basiert auf PythonBinding.
Zumindest vertrauenserweckender als irgendeine veränderte App aus Russland.
Grüße.
Zitat von: Esjay am 17 Januar 2022, 21:38:46
Es gibt ein Fhem Modul, mit dem man die Token auslesen kann..Nennt sich xiaomi_tokens und basiert auf PythonBinding.
Zumindest vertrauenserweckender als irgendeine veränderte App aus Russland.
Danke, das muß ich mir mal anschauen,
mit der APK Installation von Russenapps habe ich auch Bauchschmerzen gerade erst gelesen: ist gar keine Handy-App ;D
Wenn die Verbindung zur Roborock App erhalten bleibt, auch wenn man ihn mit MiHome verbindet, werde ich den Weg auch verfolgen. Ich möchte halt vermeiden, daß die Roborock App anschließend leer ist, weil dann die erwachte Begeisterung bei meiner Frau den Bach runtergeht.
Am besten wäre, wenn man der Roborock App den Token entlocken könnte.
Gruß Roland
Ich hab noch das hier gefunden:
https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor
Zitat von: masterpete23 am 17 Januar 2022, 21:20:33
...
Die Verbindung zur Roborock App war bei mir weiterhin da.
Das ist interessant, das würde bedeuten, daß man den Robbi zur gleichen Zeit mit beiden Apps steuern könnte. Nach meinem bisherigen Kenntnisstand ändert sich der Token, wenn ich den Robbi mit MiHome verbinde. Demzufolge müßte die Roborock App eigentlich raus sein, es sei denn, man lernt ihn mit der Roborock App nochmal neu an, dann ist MiHome wieder raus.
Momentan stelle ich mir den Ablauf so vor:
- Ich verbinde den Robbi mit MiHome (Token ändert sich)
- Lese den Token mit MiToolkit, Backup oder mit der russischen Online-App
- definiere das Fhem device
- Verbinde den Robbi wieder mit der Roborock App (Token ändert sich wieder)
- Frage: geht fhem dann noch?
- mache das empfohlene Firmware Update
Zitat- Firmware laut App: aktuell: 01.13.20, neueste Version: 02.13.98, Update empfohlen, aber noch nicht gemacht.
- steuere den Robbi mit fhem und Roborock App auf zwei Handys (beide mit dem gleichen Roborock account angemeldet)
Gruß Roland
Mit verschiedenen Apps den Mi Sauger steuern sollte kein Problem sein, da sich das Token dann nicht ändert.
Ich steuere bei mir z.B. mit der Flole app (allerdings nicht den S7), der MiHome app und FHEM.
Hallo Roland,
der Token ändert sich bei der Provisionierung, damit ist die Verbindung / Einrichtung des Wlan und damit Internetzuganges gemeint. Genauer ändert sich der Token eigentlich wenn Du ein Wifi Reset machst.
Deswegen sollten man den Sauger eigentlich "rooten", damit kann man stressfrei die Wifi Verbindung ändern. Alles andere bleibt dabei erstmal wie es ist (wenn man will).
Gruß Otto
Danke Otto,
so langsam kristallisiert sich heraus, daß ich fhem nur nutzen kann, wenn ich auch die MiHome App nutze. Das ist schade, weil die MiHome ist nur Chinesisch und Englisch verfügbar, da kriege ich meine Frau nicht dran. Zumal die Roborock App sehr gut auf den Staubsauger abgestimmt ist. Die asiatisch bonbonfarbene MiHome App macht mMn nur Sinn, wenn man einen größeren Xiaomi Zoo zuhause hat.
Ich habe gerade mal hier https://github.com/homebridge-xiaomi-roborock-vacuum/homebridge-xiaomi-roborock-vacuum/issues/104 (https://github.com/homebridge-xiaomi-roborock-vacuum/homebridge-xiaomi-roborock-vacuum/issues/104) gelesen, in der Hoffnung, daß man mittlerweile den Roborock Token ermitteln kann, ist aber noch nix.
Mit dem Firmware Update für den Robbi warte ich mal noch. Vielleicht findet doch noch ein Experte den Roborock Token, dann heißt es "aber nur bis Firmware Version x.y.z" :D
Gruß Roland
... und: rooten habe ich mich schon beim Handy nicht getraut :-[
naja es ist kein rooten in dem Sinne, es ist der Zugriff über ssh - mehr eigentlich nicht. Firmware reset und der alte "Garantie" Zustand ist wieder da.
Das mit den Apps verstehe ich nicht, habe mich aber auch nicht wirklich damit beschäftigt. Ich weiß nur das, man mit einem originalen oder auch "gerooteten" Gen1 die MiHome und Flole App nutzen konnte (Roborock App gab es da noch nicht?) und FHEM mit dem XiaomiDevice Modul. (Mit root alles parallel, ohne root nur seriell)
Das Problem bei nicht gerootet war nur: man musste immer neu provisionieren sprich Wifi reset machen. Damit geht immer nur eine App und FHEM
So zumindest mein Stand, der muss nicht stimmen :)
ssh wäre natürlich cool, das möchte ich haben :).
Ich habe es bisher so verstanden, daß man an den Token lokal nur rankommt, wenn der Robbi im WLAN-reset-Modus sein eigenes WLAN aufspannt, dann ist der Token wohl in der response verwurstet. Das scheint logisch, weil die App ja auch irgendwie den Token bekommen muß.
Gruß Roland
Vielleicht hilft das ja weiter bei der Tokensuche...:
https://forum.fhem.de/index.php/topic,117011.0.html
Danke, ich gehe jedem Hinweis nach.
Allerdings läuft wohl derzeit alles darauf hinaus, daß man den Token in den bisherigen Lösungen nur von xiaomi/MiHome bekommt.
Wenn man die - mMn sehr gute - Roborock App nutzen will, ist Schicht im Schacht :'(
Gruß Roland
Ich habe hier noch eine Fundstelle aufgetan: https://github.com/redphx/roborock-tuya-token/blob/main/README.md (https://github.com/redphx/roborock-tuya-token/blob/main/README.md)
Ist da schon mal jemand drüber gestolpert?
Vielleicht probiere ich das auf meinem alten S5 mal aus. Ich habe mit russischen (oder wie hier: vietnamesischen) "modded Apps" immer ein wenig Bauchschmerzen. Wo kommt der source code her, wenn einer eine quasi-geheime Hersteller-App mit Funktionen anreichert und neu kompiliert? Zumal es hier auch keinerlei Kommentare gibt, der Beitrag ist jetzt 11 Monate alt.
Gruß Roland
Ich hab ja nur ganz zu Beginn mal mit dem Export aus App (als das noch ohne "russische" App ging) gearbeitet.
Seit ich meine Sauger mal "gerooted" hatte, mache ich da gar nicht mehr lange rum ;)
Reset -> dann mit dem FW-Update-Flasher-Tool eine "customized" FW (aka root-FW) drauf und dann token per ssh auslesen usw. :)
Die MIIO-App läuft weiterhin, auch die Flole ging noch und fhem sowieso.
Man muss halt nur aufpassen, dass man sich nicht über App-/Cloud-Connect wieder eine "Original-FW" drauf zieht/ziehen lässt ;)
Mit der valetudo/valetudoRE FW geht dann auch mqtt oder Xiaomi-Modul (in fhem). Die FWs sind fertig compiliert etc.
EDIT: aber halt keine Cloud mehr :)
Gruß, Joachim
??? Uiuiui...
Das klingt ja technisch sehr interessant, MQTT wäre auch cool. Aber ich fürchte, daß ich da zu feige bin. Wenn ich das Teil mit einem Firmware Update schrotte, kann ich das zuhause kaum noch erklären. An den Geräten gibt's ja auch kein (Not-)USB, man ist darauf angewiesen, daß er über WLAN zur Kommunikation bereit ist.
Das ist mir zu heiß, da muß ich wohl auch als großer fhem-Fan die Flügel erstmal strecken.
Gruß Roland
Zitat von: hauwech am 18 Januar 2022, 14:53:19
??? Uiuiui...
Das klingt ja technisch sehr interessant, MQTT wäre auch cool. Aber ich fürchte, daß ich da zu feige bin. Wenn ich das Teil mit einem Firmware Update schrotte, kann ich das zuhause kaum noch erklären. An den Geräten gibt's ja auch kein (Not-)USB, man ist darauf angewiesen, daß er über WLAN zur Kommunikation bereit ist.
Das ist mir zu heiß, da muß ich wohl auch als großer fhem-Fan die Flügel erstmal strecken.
Gruß Roland
Um welchen Sauger-Typ geht es denn?
Xiaomi V1/V2 (S5?) haben alle eine FW im Flash auf 2 Bänken und man kann mit einem Reset immer zur Original-FW zurück und gut.
Also klar neu anlernen im WLAN/App aber sonst...
Habe ich schon diverse Male gemacht (weil man sonst von valetudo / valetudoRE und "nur root" nicht hin und her kommt)...
Gruß, Joachim
ob man die Dinger schrotten kann weiß ich nicht. Es wird zumindest immer drauf gedrungen, dass er zum Firmware update im Dock steht und voll geladen ist.
Alles was ich dazu noch weiß ist: die haben offenbar zwei Firmware Partitionen für die aktive Firmware, sowohl mein Gen1 und mein L10pro. Die dustbuilder Firmware muss man zweimal / in zwei Schritten flashen.
Die Firmware vom Bau (Werksreset) muss auch irgendwo sein, die wird nicht überschrieben.
Edit: mal wieder zu langsam ;D ;D ;D
Zitat von: MadMax-FHEM am 18 Januar 2022, 15:05:51
Um welchen Sauger-Typ geht es denn?...
Es ist ein Roborock S7+.
Apropos neu anlernen: Sind dann die Karten/Settings weg, weil sie am Token hängen, oder bleiben die erhalten, weil sie cloud-gespeichert und vielleicht mit einer Device-ID verknüpft sind?
Gruß Roland
Damit wird rooten wohl nichts? https://valetudo.cloud/pages/general/supported-robots.html
OK, wieder ein Punkt erledigt. Das sind dann die Kröten, die man schlucken muß, wenn man das aktuellste haben will. 8)
Wäre dann ssh auch erledigt?
Gruß Roland
ja, weil wie gesagt: rooten ist eigentlich ssh service starten :)
Kein guter Tag heute :(
Zitat von: hauwech am 18 Januar 2022, 15:32:29
Kein guter Tag heute :(
Ich hatte mich damals (2018) beim Setup S5 und heute Setup S7 an folgendem orientiert.
Original Post Link https://forum.fhem.de/index.php/topic,73052.msg798366.html#msg798366
https://forum.smartapfel.de/forum/thread/370-saugroboter-xiaomi-mi-robot-vacuum-token-auslesen/ (Hauptsächlich da iOS Umgebung)
https://github.com/Maxmudjon/com.xiaomi-miio/blob/master/docs/obtain_token.md (Viele zusätzlich Möglichkeiten und Hinweise auch für Android)
Vielleicht hast Du ja damit Glück.
Danke, aber auch das geht nur mit MiHome, nicht mit der Roborock-App. Falls sich jemand wundert, warum ich die MiHome App so hartnäckig ablehne: siehe sreenshot. Die Sprache ist auf "English" gestellt ;D
:o
Merkwürdig... meine app hat eine deutsche Oberfläche.
Zitat von: RappaSan am 19 Januar 2022, 11:00:19
:o
Merkwürdig... meine app hat eine deutsche Oberfläche.
Fällt mir gerade ein: Vielleicht liegt's auch daran, daß das bei mir Version 4.2.0 ist. Aktuell angeboten ist Version 6.12.707. Die Token-Ermittlung soll aber nur mit den alten Versionen gehen. Ich könnte die Version 4.2.0 auf mein altes S5 installieren und die neueste Version auf mein aktuelles Handy.
Gruß Roland
Auf meinem Mobiltelefon Samsung S10+ läuft z.Z. die Version 7.1.702-4476.
Vielleicht können die nicht kumulativ updaten. Ich werde mal auf die angebotene 6.12.707 gehen, vielleicht kommt dann was Neueres hinterher. Die 4.2 packe ich auf mein altes S5. Bin gespannt, ob man sich damit dann noch anmelden kann.
Gruß Roland
Zitat von: hauwech am 19 Januar 2022, 13:51:20
Vielleicht können die nicht kumulativ updaten. Ich werde mal auf die angebotene 6.12.707 gehen, vielleicht kommt dann was Neueres hinterher. Die 4.2 packe ich auf mein altes S5. Bin gespannt, ob man sich damit dann noch anmelden kann.
Gruß Roland
aber den S5 könntest zum rooten üben nehmen - wie gesagt: Du kommst immer zurück. Das rooten geht meist mit neuere Firmware nicht mehr, da müsste man dann Werksreset machen. Musst Du mal in meinem Link schauen wegen Beschreibung.
Oooops, da habe ich versehentlich Verwirrung gestiftet: Ich habe ein Samsung Galaxy S5 (mein altes Handy) gemeint, nicht einen Roborock S5. Sorry :-[
Der Roborock S7+ ist unser erster (... und einziger) Saugrobbi. Wenn ich einen Cold-Standby-Robbi hätte, hätte ich vielleicht nicht so viel Schiß vor'm Experimentieren. 8)
Gruß Roland
Kurzer Themenwechsel:
Könnte man einen "Xiaomi Mi Air Purifier Pro" - ohne "H", der mit Aktivkohlefilter für um die 200€, auch mit dem Modul steuern?
Gruß Roland
Zitat von: hauwech am 19 Januar 2022, 10:19:13
Danke, aber auch das geht nur mit MiHome, nicht mit der Roborock-App. Falls sich jemand wundert, warum ich die MiHome App so hartnäckig ablehne: siehe sreenshot. Die Sprache ist auf "English" gestellt ;D
Ich glaube das liegt daran, weil dein Robo auf einem NICHT EU Server ist? Kann das sein?
Zitat von: masterpete23 am 19 Januar 2022, 15:51:31
Ich glaube das liegt daran, weil dein Robo auf einem NICHT EU Server ist? Kann das sein?
Wenn Du den screenshot meinst: Nein, ich habe in der MiHome App gar kein Device registriert, nur in der Roborock App.
Gruß Roland
Zitat von: hauwech am 19 Januar 2022, 15:59:11
Wenn Du den screenshot meinst: Nein, ich habe in der MiHome App gar kein Device registriert, nur in der Roborock App.
Gruß Roland
Ah ich habe noch ne Idee.
Worüber bist du an der App angemeldet.
Ich glaube da war noch nen Unterschied.
Wenn ich über google anmelde habe ich eine andere Maske als über meinen Xiaomi Account mit Email Adresse.
mit dem Mi account
Gruß Roland
Ich halte mich nach wie vor an die Anleitung in Post 3:
https://forum.fhem.de/index.php/topic,73052.msg646649.html#msg646649
1. Token aus unverschlüsseltem iOS Backup auslesen
2. 96stelligen Token entschlüsseln
Beides ist in Post 3 beschrieben, setzt aber ein iOS Gerät und eine eingerichtete Mi Home App voraus. ;)
Wie dem auch sei..., das ändert nichts daran, dass es anscheinend niemanden mehr gibt, der das Modul pflegt und aktuelle Modelle ergänzt. Ein paar Posts zurück kam schon die Frage nach dem Roborock S7, der SmartFan v3 wurde zwar von Dr. Smag ergänzt, aber das offizielle Modul nicht geupdated und ich habe hier auch eine Heizung herumstehen, die ich gern integrieren würde, habe aber keinen Plan wie bzw. wo ich da anfangen soll.
Gruß Hoppel
Hallo,
ich hatte den Modulautor auch angeschrieben, leider seit nun fast 1 Jahr keine Rückmeldung. Es wird also wohl Zeit, das Modul als verweist zu markieren.
Entweder jemand übernimmt es oder, man entwickelt es weiter in einem GitRepo wo auch mehrere vorschläge machen können, fehlt dann nur noch einer ,der es ins FHEM SVN eincheckt.
Auf jeden Fall ist der Stillstand nicht so schön.
Ronny
ZitatEntweder jemand übernimmt es
Ich würde es ja machen, wenn es eine Lösung dafür gäbe, dass das device nicht bereits beim "Initialisieren"(Äp) bereits die Router-MAC(=Standort des Routers) und die WLAN-Zugangsdaten in die Cloud schickt.
(Der token ändert sich ja bei Änderung der WLAN-Zugangsdaten. Auf meiner langen ToDo-Liste habe ich den Versuch, die Daten im Speicher des Xiaomi von Einmal-Zugangsdaten beim "Initialisieren" auf tatsächliche Daten zu manipulieren)
Grüße Markus
Zitat von: rcmcronny am 20 Januar 2022, 06:33:38
ich hatte den Modulautor auch angeschrieben, leider seit nun fast 1 Jahr keine Rückmeldung. Es wird also wohl Zeit, das Modul als verweist zu markieren.
Entweder jemand übernimmt es oder, man entwickelt es weiter in einem GitRepo wo auch mehrere vorschläge machen können, fehlt dann nur noch einer ,der es ins FHEM SVN eincheckt.
Auf jeden Fall ist der Stillstand nicht so schön.
Otto hatte mal geschrieben, daß Markus wahrscheinlich im Überschwemmungsgebiet wohnt(e). Sein Equipment ist dann wohl auf 0 resettet und ich denke, wenn es so ist, dann hat er ganz andere Sorgen.
Vielleicht meldet er sich irgendwann wieder.
Gruß Roland
Hallo Roland,
das mag sein. Er war aber auch vorher schon nicht erreichbar. Er kann es dann ja auch gern wieder übernehmen, wenn er Zeit dafür hat, ich denke, da wird keiner sich dagegen wehren :)
@markus das klingt aber eher nach einem mittelfristigen Ziel :) Klingt aber interessant.
Aktuell gibt es ja eine "neuere Version", ich fände es schon sinnvoll, an der Geräteunterstützung zu arbeiten und hier mit Updates kurzfristig zu arbeiten.
Wie sehr Ihr das ?
Ronny
Zitat von: rcmcronny am 20 Januar 2022, 08:32:46
... Er war aber auch vorher schon nicht erreichbar. ...
Ahhh, ok. Das wußte ich nicht. Es wäre natürlich schade, wenn das Modul einschläft. Sowas hatten wir schon mal mit SmartVisu, ein sehr vielversprechendes und schickes WebGUI für fhem. Da ist der maintainer auch ausgestiegen. Man muß halt immer im Hinterkopf haben, daß das alles in der Freizeit passiert, auch wenn es für uns Betroffene bitter ist.
Gruß Roland
hum. dann weiß ich auch nicht weiter.
Ich hatte es auf jeden Fall letztens nach Handy Neuinstallation auch in chinesisch und da war es derLogintype meinte ich. sorry
Zitat von: masterpete23 am 20 Januar 2022, 14:16:46
hum. dann weiß ich auch nicht weiter.
Ich hatte es auf jeden Fall letztens nach Handy Neuinstallation auch in chinesisch und da war es derLogintype meinte ich. sorry
Macht nix, ich danke Dir trotzdem. Ich habe indessen auf meinem derzeit aktuellem Galaxy S8 die Version aus dem Playstore installiert. Da kommt Version 7.1.704.4549. Die ist auch in Deutsch. Die alte (chinesisch/englische) Version 4.2.0 habe ich jetzt auf meinem alten Galaxy S5 installiert, um mir ggfls. die Tokenermittlung offenzuhalten.
Ich werde aber trotzdem die Roborock App benutzen, auch weil meine Frau damit öm kann. Solange es keine Möglichkeit gibt, der Roborock App den Token zu entlocken, muß ich auf die Verbindung mit fhem wohl oder übel verzichten, auch weil die App echt gut ist. Es ist mir wichtiger, den Robbi mit beiden Handys vollständig steuern zu können. Gerade auch, weil man anfangs die Karten ab und zu mal noch nachbearbeiten muß. Und auch die Konfiguration der Saug-/Wischintensitäten in den einzelnen Räumen geht nur mit der App. Wir haben zwei Räume mit Laminat, der Rest Fliesen. Da habe ich eingestellt, daß er auf den Laminatböden weniger Wasser zum Wischen nimmt.
Hinzu kommt, daß die Weiterentwicklung des Moduls zur Zeit wohl stagniert.
Gruß Roland
Hi,
Ist doch ehh in der Cloud, dann kannst Du es auch mit einem Tool extrahieren:
https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/
Habe ich auch genutzt. Zeigt dann alles an. Besser als ne komische alte App und er kann natürlich so weiter genutzt werden.
Vielleicht bringts was,
Ronny
Zitat von: rcmcronny am 20 Januar 2022, 17:39:45
Hi,
Ist doch ehh in der Cloud, dann kannst Du es auch mit einem Tool extrahieren:
https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/
Ronny
Hi Ronny,
eben nicht :) In der Xiaomi Cloud sind die Daten nur, wenn man mit der Mi/Xiaomi App arbeitet. Wenn man die Roborock App nutzt - die mMn viel besser für den Roborock Sauger geeignet ist - stecken die Daten auf ganz anderen Servern. Das sind völlig andere Backends. Dort gibt's zur Zeit keine Möglichkeit, den Token zu extrahieren.
Wenn man den Robbi bei MiHome registriert, generiert er einen neuen Token, den man auslesen und mit fhem benutzen könnte. Wenn man zu Roborock zurückkehrt, generiert er wieder einen neuen Token. Dann ist MiHome und fhem wieder raus.
Hier gilt das Highlander-Prinzip: Es kann nur einen geben :)
Die Roborock Developer haben das Ding schon ziemlich clever abgesichert, das muß man ihnen lassen.
Das ist jedenfalls der Kenntnisstand, den ich bisher zusammentragen konnte.
Gruß Roland
Hi,
ach, da war meine generelle Annahme falsch. Ja das ist echt clever aus Firmensicht. Ok dann ziehe ich meine Aussage zurück und Du musst wohl damit leben, erstmal.
Danke für die Info.
Ronny
Ich beobachte hier gespannt die Antworten.
Ich hab damals mit Markus zusammen auch versucht mit der Roborock App an den Token zu kommen,leider ohne Erfolg.
Zudem kann man auch mit der Roborock App auch auf die Kamera zugreifen. Das ist leider mit der Mi Home App nicht möglich.
habt ihr mal hier gelesen:
https://github.com/homebridge-xiaomi-roborock-vacuum/homebridge-xiaomi-roborock-vacuum/issues/104
So the good news. I found the token in the roborock app / backup files ripped from an iOS device (iphone). Using a program called iBackup Viewer.
Its located in the following file:
Library/Preferences/com.roborock.smart.plist
Then located under:
UserDefaultKeyUserModel
Sub:
token
Aber keine AHnung ob da was geht
@neyzen Welcher Roborock hat denn eine Kamera? :)
Ich hab den S6 maxV
Zitat von: masterpete23 am 21 Januar 2022, 13:32:20
habt ihr mal hier gelesen:
https://github.com/homebridge-xiaomi-roborock-vacuum/homebridge-xiaomi-roborock-vacuum/issues/104
So the good news. I found the token in the roborock app / backup files ripped from an iOS device (iphone). Using a program called iBackup Viewer.
Its located in the following file:
Library/Preferences/com.roborock.smart.plist
Then located under:
UserDefaultKeyUserModel
Sub:
token
Aber keine AHnung ob da was geht
Das habe ich auch verfolgt. Aber wenn man den thread weiterliest, scheint es nicht zu funktionieren. Der Token scheint ungültig/encrypted zu sein.
... und ich habe auch keine Apfelgeräte.
Gruß Roland
Zitat von: hauwech am 20 Januar 2022, 08:53:26
Ahhh, ok. Das wußte ich nicht. Es wäre natürlich schade, wenn das Modul einschläft. Sowas hatten wir schon mal mit SmartVisu, ein sehr vielversprechendes und schickes WebGUI für fhem. Da ist der maintainer auch ausgestiegen. Man muß halt immer im Hinterkopf haben, daß das alles in der Freizeit passiert, auch wenn es für uns Betroffene bitter ist.
Gutes Stichwort ! ;)
Ich habe leider keine Zeit mehr, mich was Neuentwicklungen angeht um das Modul zu kümmern.
Das Problem ist abgesehen von meinem generellen Zeitmangel, dass es sehr aufwendig ist Hardware hinzuzufügen und zu testen, die man selbst nicht besitzt.
Für mich ist das Modul quasi ausentwickelt - die Hardware die ich zuhause habe funktioniert perfekt, ebenso wie alle Features die ich nutze.
Wenn mir jemand Patches schickt die getestet sind, kann ich die natürlich gerne einchecken.
Oder jemand übernimmt gleich das Modul im SVN, wäre mir hier fast lieber.
Freiwillige vor, schreibt mir am besten ne Email!
Zitat von: hauwech am 20 Januar 2022, 08:21:55
Otto hatte mal geschrieben, daß Markus wahrscheinlich im Überschwemmungsgebiet wohnt(e). Sein Equipment ist dann wohl auf 0 resettet und ich denke, wenn es so ist, dann hat er ganz andere Sorgen.
Hahaha nein! ;D Alles gut bei mir!
Keine Überschwemmung, keine anderen Naturkatastrophen und Covid hat mich auch nicht erwischt.
Ich habe nur im letzten Jahr meine ganze Freizeit wegbekommen bevor ich an FHEM denken konnte - auf absehbare Zeit wird das auch so bleiben.
Mein System läuft dauerhaft stabil, es ist aber auch keine neue Hardware dazugekommen. Und der Wegfall von tapatalk hat auch nicht geholfen.
Deshalb hatte ich abgesehen von ein paar API Änderungen in anderen Modulen auch keine Muße, den Code aufzumachen.
Von daher wäre es schön, wenn sich ein neuer SVN Maintainer Maintainer für das Xiaomi Modul finden würde.
Viele Grüsse, Markus
Zitat von: Markus M. am 29 Januar 2022, 19:22:08
Hahaha nein! ;D Alles gut bei mir!
Keine Überschwemmung, keine anderen Naturkatastrophen und Covid hat mich auch nicht erwischt.
Bloß gut und sorry dafür, ich hatte was von "Markus" aufgeschnappt - aber es wird wohl mehrere geben :)
Gruß Otto
Zitat von: hauwech am 19 Januar 2022, 15:50:11
Könnte man einen "Xiaomi Mi Air Purifier Pro" - ohne "H", der mit Aktivkohlefilter für um die 200€, auch mit dem Modul steuern?
Ich möchte meine Frage nochmal hervorholen, die ist wahrscheinlich untergegangen ...
Hat vielleicht jemand diesen Luftreiniger mit dem Modul am Laufen? Meiner
wird wurde heute geliefert. :)
Gruß Roland
Nachdem das Teil heute geliefert wurde, habe ich gleich mal selbst probiert. Zur Erinnerung: Es handelt sich um den Aipurifier Pro (ohne H) mit Aktivkohle- und HEPA Filter.
Sieht so aus, als ob er mit dem Modul als subType "Airpurifier"ordentlich zusammenarbeitet. Ich weiß jetzt noch nicht, was alles gehen müßte, aber die Modi kann ich schon mal umschalten mit fhem. Und die readings kommen auch mit den richtigen Werten (humidity, temperature, pm25, filter usw.)
Den Token habe ich mit dem Token-extractor https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/ (https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/) vom "de" Server geholt und diesen in fhem verwendet. Verbunden ist er mit der Xiaomi Home App. Das geht also :)
Ich hatte allerdings hartnäckig die Meldung "Crypt::Cipher::AES or Crypt::Rijndael_PP is required!". Ich hatte vorher die Module als user via cpan installiert. Das Device wurde allerdings erst initialisiert, nachdem ich die beiden Module mit sudo drüberinstalliert habe.
Vielleicht hilft's jemandem 8)
Gruß Roland
ZitatVerbunden ist er mit der Xiaomi Home App.
Dann hast auch Du den Chinesen Deinen WLAN-Zugang offen gelegt. :'(
Zitat von: KölnSolar am 01 Februar 2022, 13:03:38
Dann hast auch Du den Chinesen Deinen WLAN-Zugang offen gelegt. :'(
Tja, wo will man da anfangen und wo aufhören? Wieviele Apps telefonieren NICHT nach Hause? Welche Daten gehen wohin?
ZitatWieviele Apps telefonieren NICHT nach Hause?
Deshalb nutze ich so gut wie keine Äps. 8) Bei allen devices, die per WLAN kommunizieren, muss man skeptisch sein. Und wenn wie bei Xiaomi bekannt ist, dass die WLAN-Zugangsdaten in die Cloud wandern + Router-MAC, mit der sich möglicherweise der Standort des WLANs ermitteln lässt, sollte man die Finger von der Äp lassen. Ist ja quasi eine Kosten-Nutzen-Betrachtung. Was bringt die Äp(oder die FHEM-Anbindung) ? Den Status meines 3h höre ich. Wenn man vergleichbare Daten in FHEM haben will kostet das 20 EUR. Und der Automatikmodus steuert von Hause aus, was ich per FHEM steuern würde(OK nicht ganz, ich würde die Grenzwerte für die verschiedenen Stufen des 3h niedriger setzen).
Man kann sich ja immer mal die Frage stellen: Würde ich meine WLAN-Zugangsdaten hier im Forum posten ? ::) Oder, warum setze ich überhaupt ein verschlüsseltes Kennwort zur Absicherung des WLANs ein ?
Und unabhängig davon, ob Zugangsdaten in die Cloud wandern, sollte man sich immer bewusst sein, dass man mit solchen devices eine Tür für sonstige Cyberangriffe öffnet. Deshalb solche devices wenigstens in einem separaten und abgeschotteten WLAN betreiben. Dann ist der Schaden im Fall der Fälle halb so wild.
Letztendlich muss jeder selber wissen was er tut. Ich weise nur immer wieder darauf hin, weil es manchen Nutzern gar nicht bewusst ist, wie (unbedacht) Sie sich angreifbar machen.
Ich geb' Dir ja recht, es gibt genügend Leute, denen nicht klar ist, was sie tun.
Mir ist durchaus bewußt, daß man mit jeglichem Onlinekram ein Risiko eingeht. Ich habe deshalb u.A. WLAN MAC Filter aktiv, ich habe eine opnSense Firewall mit GeoIP blocking und ein IDS am Laufen. Ich kuck' mir auch den traffic schon mal mit ntopng an. Alles kein 100%iger Schutz, das ist mir auch klar, aber ich denke, daß ich was getan habe, um das Risiko zu minimieren. Letztlich ist es eine Entscheidung, mit welchem Risiko ich leben kann.
Ich habe auch Kollegen, die kein Smartphone haben, weil da GPS, NFC, Bluetooth und WLAN drin und das alles sowieso gefährlich ist.
Und: die NSA hat Merkels Telefon trotzdem abgehört, obwohl ich den technisch Zuständigen schon den nötigen Sachverstand zutraue 8)
Gruß Roland
ZitatIch habe auch Kollegen, die kein Smartphone haben, weil da GPS, NFC, Bluetooth und WLAN drin und das alles sowieso gefährlich ist.
Mit denen würd ich mich bestimmt gut verstehen. ;D
Zitat von: KölnSolar am 01 Februar 2022, 16:20:41
Mit denen würd ich mich bestimmt gut verstehen. ;D
;D ;D
'model' => 'deerma.humidifier.jsq5' ist wohl auch noch nicht ins Modul mit aufgenommen, oder?
Hat jemand einen Tipp, ich kriege meinen S6 nicht verbunden:
Token habe ich ausgelesen und dann mit
define Rocky XiaomiDevice 192.168.178.22 12345...
definiert.
Status bleibt auf "???"
Zitat2022.02.13 13:53:23 2: Rocky: connecting
2022.02.13 13:53:23 3: Rocky: initialized
2022.02.13 13:53:23 5: Rocky: initSend
2022.02.13 13:53:23 5: Rocky Send SUCCESS
2022.02.13 13:53:23 5: Rocky > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2022.02.13 13:53:23 2: Rocky: Read error
2022.02.13 13:53:23 3: Rocky: disconnecting
2022.02.13 13:53:23 1: ERROR: Select error -1 (9), error count= 0
2022.02.13 13:53:23 1: Found and deleted bad fileno for Rocky
@febus
Hast du den SubType auf VacuumCleaner gestellt?
Gruß Hoppel
Zitat von: hoppel118 am 13 Februar 2022, 15:05:11
Hast du den SubType auf VacuumCleaner gestellt?
Das habe ich nicht bewusst getan, aber ja das Attribut ist gesetzt.
Tja, dann kann ich dir leider auch nicht helfen. Viel mehr muss man da eigentlich nicht machen. Wird der S6 denn überhaupt vom Modul unterstützt?
Hattest du FHEM nochmal neu gestartet? Das hat bei mir auch schon manchmal zum Erfolg geführt. Den SubType mal auf irgendwas anderes stellen und dann wieder zurück, wäre evtl. auch noch einen Versuch wert.
Ich habe einen S5(0). Beim S7 gab es auch Probleme ein paar Beiträge vorher, wenn ich mich recht erinnere.
Wie du sicherlich schon gelesen hast, wird gerade ein neuer Modulentwickler gesucht.
Vielleicht hat ja noch jemand anderes eine Idee?
Gruß Hoppel
Fehler gefunden, irgendwie hatte ich einen falschen Token zurückgeliefert bekommen. Jetzt klappt's. Merci.
Ich hab aktuell Valetudo auf meinem S5(0) und überlege wieder auf die normale Firmware + App zurückzuwechseln.
Bin mir aber nicht sicher, ob der Sauger mit der Standardsoftware genug Statusmeldungen abgibt um meine Staubsaugerklappe (Garage unter dem Küchensockel) richtig anzusteuern.
Dass er zu saugen beginnt, bekommt man ja über die Events mit. Am Anfang die Klappe zu öffnen damit er raus kommt ist also kein Problem.
Gibt es aber auch ein "Returning to Dock" Event um die Klappe nach dem Saugen wieder zu öffnen und ein "gedockt/laden" Event um die Klappe dann wieder zu schließen?
Beim alten V1 gibt's das, wahrscheinlich also auch beim S5.
Super, danke dir. :)
Ist es geplant den Air Fryer einzubinden?
Was was Infos werden dafür benötigt?
Da hänge ich mich mit der Frage nach dem Xiaomi Mi Smart Standing Fan 2 (dmaker.fan.p18) mal ran. Der funktioniert aktuell mit dem Modul leider nicht.
@TWART016 und @HansDampfHH
Es sieht nicht gut aus, siehe hier:
https://forum.fhem.de/index.php/topic,73052.msg1204278.html#msg1204278
Es wird also ein neuer Entwickler gesucht.
Gruß Hoppel
Oh ja, hast recht. Danke für den Hinweis.
Hallo,
Eine kurze Frage zum roborock und dem Modul.
Ich nutze erfolgreich das sagen über die segment Funktionalität.
Leider wenn ich aber den sauger in eine andere Etage trage und wieder zurück verliert er die gesetzte Etage und die segmentanweisung funktioniert nicht mehr.
Kann man irgendwie über das Modul die Etage bzw. Karte auswählen? Das muss ich sonst immer über die app machen wenn ich den sauger mal hochgehoben habe.
Danke und Grüße
Ich hab im Roboter Forum den Trick gefunden, eine große Karte über alle Stockwerke zu erstellen.
Z.B. ne Rampe an der Balkontür und ihn dann mit der Platte vorsichtig ins nächste Stockwerk mit gleicher Blickrichtung an die Außenwand am anderen Ende.
So erhält man eine große Karte, die alle Stockwerke nebeneinander hat.
Funktioniert einwandfrei bei mir.
Zum erstellen gibts ein paar Tips zwecks Fernbedienung, Karte Zwischenspeichern etc.
Wenn du Interesse dran hast suche ich mal ob ich den Link noch finde.
In welcher Geschwindigkeit wird eigentlich der Status aktualisiert (Also Charging, Cleaning, Returning to dock, ....)?
Ist das das Attribut IntervalData, oder kommt das mehr oder weniger sofort?
Ich baue gerade die "Garage" für den S5 unter der Küche mit automatisch öffnender Klappe fertig.
Hatte bisher Valetudo drauf, würde aber wegen des einfachen Map-Restores wenn mal was schief ging gerne zurück auf die Original-Firmware.
Bin mir nur nicht sicher ob ich in FHEM dann schnell genug mitbekomme, dass der Sauger gestartet wurde um die Klappe zu öffnen.
IntervalData hat ja ein Minimum von 60s.
Hat das einen technischen Grund (werden die Werte aus der Cloud gezogen, oder holt das Modul das über die lokale IP direkt vom Sauger)?
Das ist intervalData.
Die 60s sind mehr oder weniger eine Schutzmaßnahme, falls was schief geht - könntest du theoretisch im Code reduzieren.
Wenn du das dauerhaft so lässt erzeugt das aber natürlich einiges an Last für FHEM und vor allem auch auf dem Staubsauger.
Die Kommunikation ist nur lokal im Netz.
Starte ihn doch einfach über FHEM, dann weißt du vorher schon wann du die Klappe aufmachen musst.
Und stell mal bitte nen Thread mit der Bauanleitung für die Garage ins Forum, wir sind neugierig ;)
Super, danke dir.
Habe mal ein zyklisches AT mit "get data" eingerichtet. Das überlebt auch das nächste Modul-Update. ;)
Zur Garage gibt es sicher bald mal einen Thread wenn alles rund läuft. :)
Hi,
ich kämpfe derzeit mit meinem ROBOROCK S7 MaxV Plus und der FHEM Integration.
Ich hatte ihn zuerst über die Roborock App betrieben, aber mit den Informationen hier problemlos auf die Xiaomi Mi Home App gewechselt.
Das 32-stellige Token habe ich mir identisch über die russische Android App und diesen Xiaomi Cloud Token Extractor https://en.techblog.co.il/2021/04/05/xiaomi-cloud-token-extractor/ (https://en.techblog.co.il/2021/04/05/xiaomi-cloud-token-extractor/) besorgt.
Mein FHEM läuft in Docker in einem separaten VLAN. Der Sauger ist in einem anderen VLAN isoliert und hat darin unbeschränkten Internetzugriff. Aus dem FHEM-VLAN kann über TCP und UDP unbeschränkt per Unicast auf das Sauger-VLAN zugegriffen werden. In bestehenden TCP-Sessions kann auch aus dem Sauger-VLAN an das FHEM-WLAN gesendet werden. Ich kann u.a. den Sauger problemlos aus dem FHEM-VLAN anpingen. FHEM und der Sauger sind jeweils auf aktuellem Softwarestand.
Binde ich nun den Sauger mit
define robbi XiaomiDevice 192.168.11.196 426f584533574279733657413c624473
attr robbi subType VacuumCleaner
ein, erhalte ich
Internals
DEF 192.168.11.196 426f584633534279733657414c624173
FD 72
FUUID 62c1ff1e-f33f-b184-4535-c22e3731fb687217
NAME robbi
NR 264
STATE ???
TYPE XiaomiDevice
eventCount 7
Mit
attr robbi verbose 5
erhalte ich bei
set robbi reconnect
reproduzierbar im Log
2022.07.04 18:22:56 3: robbi: disconnecting
2022.07.04 18:22:56 2: robbi: connecting
2022.07.04 18:22:56 3: robbi: initialized
2022.07.04 18:22:56 5: robbi: initSend
2022.07.04 18:22:56 5: robbi Send SUCCESS
2022.07.04 18:22:56 5: robbi > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Auf bspw.
set robbi volume 0
2022.07.04 18:24:26 4: robbi: write {"id":1,"method":"change_sound_volume","params":[0]} (52)
2022.07.04 18:24:26 5: robbi: initSend
2022.07.04 18:24:26 5: robbi Send SUCCESS
2022.07.04 18:24:26 5: robbi > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2022.07.04 18:24:26 1: robbi: internal error, values missing
und auf
set robbi start
2022.07.04 18:27:39 4: robbi: write {"id":2,"method":"app_start","params":[""]} (43)
2022.07.04 18:27:39 5: robbi: initSend
2022.07.04 18:27:39 5: robbi Send SUCCESS
2022.07.04 18:27:39 5: robbi > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2022.07.04 18:27:39 1: robbi: internal error, values missing
Beim reconnect command erhöht sich jeweils der event count.
Kennt evtl. jemand das Verhalten und hätte einen Tipp, was ich noch probieren könnte?
Moin,
zum Token auslesen gibt es noch die Variante fhempy (https://github.com/dominikkarall/fhempy/blob/master/README.md) - dazu gibt es neben den Python-Bindings auch entsprechende Module, z.B. um Xiaomi-Token auszulesen.
Einiges zu fhempy steht auch im threat zu googlecast (https://forum.fhem.de/index.php/topic,116455.0.html) - damit habe ich die Token sowohl des S6 als auch der SmartFans ausgelesen. Voraussetzung ist nur die Einrichtung der Geräte via normaler App (ich nutze die normale xiaomi-app aus dem Playstore)
Besonders Paste'n'copy macht es so charmant hier mit dem fhempy-Modul ...
Gruß, Christoph
Sollte es nötig sein, noch mit einem dritten Tool das Token auszulesen? Die Daten zuvor sind jeweils konsistent und per Copy-Paste in FHEM übertragen.
Deutet der Logeintrag bei einem
set robbi reconnect
denn darauf hin, dass das Token richtig oder falsch sein könnte?
Moin,
wenn der Token nicht richtig ist kannst Du nicht steuern, bekommst keine Readings.
ich habe das fhempy-Modul nur vorgeschlagen, weil Du dann keine Russen-App benötigst.
Gruß Christoph
Valider Punkt und alle guten Dinge sind drei.
Ich berichte, sobald ich mit mit fhempy ein Ergebnis habe.
Ich habe jetzt mehrere Stunden mit fhempy gekämpft und es weigert sich beharrlich zu laufen, daher noch einmal kurz die Frage:
Ich erhalte exakt dasselbe Token aus der russischen App und dem fertig lauffähigen Dockercontainer https://en.techblog.co.il/2021/04/05/xiaomi-cloud-token-extractor/ (https://en.techblog.co.il/2021/04/05/xiaomi-cloud-token-extractor/)
Ich kann leider die verbosity von XiaomiDevice nicht noch weiter hoch drehen, um zu erfahren, was ihm hier nicht gefällt.
Hätte jemand vielleicht noch eine Idee, da ich so langsam mit meinem Latein am Ende bin.
Edit:
Nachdem ich bei meinem Xiaomi Passwort das Sonderzeichen rausgenommen hatte lief es nun doch und das Token ist identisch. :-X Nun habe ich dreimal dasselbe Token.
Da ich eine falsches Token wohl ausschließen kann, habe ich zwei Vermutungen
- Probleme durch die Segmentierung in VLANs
- Änderungen des Protokolls, die nicht im XiaomiDevice Modul berücksichtigt sind
Die beiden besagten VLANs sind geroutet und vom FHEM-VLAN aus ist durch die Firewall Zugriff per TCP und UDP Unicast auf das Sauger-VLAN möglich. NATing gibt es hierbei nicht, auch kein Multicast. Ich glaube eher weniger, dass der Fehler hier liegt.
Durch die Log-Meldung
Zitat von: Solero am 04 Juli 2022, 22:03:15
auf
set robbi start
2022.07.04 18:27:39 4: robbi: write {"id":2,"method":"app_start","params":[""]} (43)
2022.07.04 18:27:39 5: robbi: initSend
2022.07.04 18:27:39 5: robbi Send SUCCESS
2022.07.04 18:27:39 5: robbi > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2022.07.04 18:27:39 1: robbi: internal error, values missing
vermute ich hier eher, dass Problem liegt, da das Log nach meinem Verständnis auf einen Mismatch in den APIs hindeutet.
Hat jemand evtl. schon einmal einen S7 MaxV, nicht einen S7 ohne MaxV, mit FHEM zum Laufen bekommen? Falls ja, wäre meine Hypthese direkt widerlegt und es müsste irgendwo an meiner Dusseligkeit liegen.
Jetzt funktioniert es mit dem ROBOROCK S7 MaxV Plus und es lag doch am NATing zwischen den Subnets. Offensichtlich hat Xiaomi damit Probleme.
Vielleicht erspart diese Erkenntnis jemanden etwas Sucherei.
Hallo,
Ich hab noch einen Xiaomi Mi Vacuum Cleaner der seit längerem mit diesem Modul seinen Dienst verrichtet.
Das funktioniert soweit auch sehr gut. Jetzt wollte ich gerne einbauen, dass er zum Mülleimer fährt sobald der Dust Bin voll ist. Über die App kann ich das per Remote Control oder Target Point auf der Map machen. In FHEM finde ich die Möglichkeiten nicht. Unter set gibt es auch kein Move Direction oder sonstiges. Übersehe ich etwas?
Edit: ok, hatte auf dem Handy geschaut und nicht gesehen, das man in der Auswahlliste auch nach oben scrollen konnte. Es ist alles da. Bleibt nur die Frage: kann man mit ,,goto" zu den Koordinaten gehen? Kann man diese oder die Position irgendwo ablesen und ggf. speichern? In den Readings sind keine Koordinaten
Welchen Sauger hast du?
Bei mir gibt es:
set Sauger move
set Sauger goto
set Sauger remotecontrol -> start, stop, forward, left, right
Xiaomi V1 und V2 (S50?)
Gruß, Joachim
Jup... hatte meinen Beitrag schon editiert. Problem war vor dem Bildschirm. Wie nutzt du goto? Kannst du irgendwelche Koordinaten auslesen?
Zitat von: StephanFHEM am 17 Juli 2022, 13:58:47
Wie nutzt du goto?
Gar nicht ;)
Bzw. früher mal zum "Spaß"...
Zitat von: StephanFHEM am 17 Juli 2022, 13:58:47
Kannst du irgendwelche Koordinaten auslesen?
Da hatte ich aber noch die "veränderte" Original-FW laufen mit Flole-App.
Damit konnte man ganz einfach die Goto und Zonen Koordinaten auslesen.
Aktuell nutze ich Valetudo.
Da geht das auch gut auszulesen aber die Koordinaten sind wohl (zumindest bei mir) nicht "kompatibel" mit diesem Modul :-\
Ich hatte mal wo eine Umrechnung aber irgendwie tut die auch nicht mehr :-\
Aber ich habe ja meine Zonen-Koordinaten noch und auch Sicherungen der Karten etc. 8)
Gruß, Joachim
Ich hab seinerzeit die Koordinaten per "Flole-app" ausgelesen, genutzt werden sie z.B. per
attr point_names Entladen:[31750,25800] WeitererPunkt:[X-Koordinate,Y-Koordinate]
und dann per Befehl
set goto Entladen
Zitat von: Solero am 06 Juli 2022, 23:36:12
Jetzt funktioniert es mit dem ROBOROCK S7 MaxV Plus und es lag doch am NATing zwischen den Subnets. Offensichtlich hat Xiaomi damit Probleme.
Vielleicht erspart diese Erkenntnis jemanden etwas Sucherei.
Wie hast du es gelöst? Mein Smartmi 2S will und will nicht verbunden werden. Ist auch in einem VLAN. mDns Repeater auf der opnSense läuft. Zugriff von FHEM aus auf alle anderen VLANs und Ports ist möglich (allow any).
Edit:
Ich hab die Lösung gefunden bei HA:
ZitatOn OPNSense (may be similar to PFSense), go to Firewall -> Outbound -> Activate `Hybrid outbound NAT rule generation` -> Save -> Add -> Interface `THE_ONE_WHERE_IS_THE_DEVICE` -> Source address `THE_HA_IP_ADDRESS/32`-> Destination address `THE_DEVICE_IP_ADDRESS/32` -> Translation / target `THE_INTERFACE_ADDRESS_WHERE_THE_DEVICE_IS` -> Save.
Der Ventilator wird jetzt gefunden, allerdings wird er trotz Homebridge Mapping und genericDeviceType fan als Speaker erkannt?!?!
hab mir jetzt auch mal einen neuen Roborock S7 gegönnt. Dabei ist mir aufgefallen, dass es im Vergleicht zum alten Mi Vacuum Cleaner das Reading wifi_state nicht mehr gibt.
Das hat normal immer den Status "online" ausgespuckt. Eigentlich sollte das bei dem Roborock S7 doch genau so angezeigt werden oder?
Moin, hat jemand von Euch schon einen Air Purifier 3C angebunden?
Ich bekomme ihn mit der Einstellung vom 3H ein wenig zum laufen, aber nicht so richtig.
Was geht:
set xxxx child_lock off -> Gerät schaltet sich aus
set xxxx level 1 -> Air Purifier geht in den Nachtmodus
set xxxx level 2 -> Air Purifier geht in den Favoritmodus
On / Off geht nicht
set xxxx level 3 -> keine Änderung
Hier mal ein List vom Device (IP, Token und stateFormat habe ich raus gelöscht):
Internals:
CFGFN
DEF 192.xxx.xxx.xxx 1a654229240c9bfad0bxxxxxxxxxxx
FD 22
FUUID 62ff53c6-f33f-5a17-cf5b-e7ad49392619ca19
NAME ku_Luftreiniger
NR 202559
STATE <div>Status: <img src="/fhem/images/default/10px-kreis-rot.png"> <br><br><img src="/fhem/images/default/on.png"> </div>
TYPE XiaomiDevice
hardware esp32
mac 54:48:E6:C5:xx:xx
mcu_firmware 0006
model zhimi.airpurifier.mb4
token 1a654229240c9bfad0bxxxxxxxxxxx
wifi_firmware cef6c09-dirty
READINGS:
2022-08-19 15:54:01 buzzer on
2022-08-19 15:55:24 child_lock on
2022-08-19 15:55:12 device_firmware 2.0.8
2022-08-19 15:55:12 device_uptime 0.68
2022-08-19 15:57:06 error none
2022-08-19 15:56:51 filter_life 243
2022-08-19 15:55:36 led dim
2022-08-19 15:56:51 level 1
2022-08-19 15:56:40 mode favorite
2022-08-19 15:57:06 power on
2022-08-19 15:55:12 wifi_rssi -70
helper:
ConnectionState connected
crypt AES
delay 60
dev 176b
id 27ea
ip 192.xxx.xxx.xxx
last_read 1660917426
packetid 153
port 54321
sequence 1660914869
token 1a654229240c9bfad0bxxxxxxxxxxx
packet:
150 air_status_3H
151 air_status_3H
152 air_status_3H
hmccu:
Attributes:
DbLogExclude .*
devStateIcon connected:10px-kreis-gruen disconnected:10px-kreis-rot
genericDeviceType AirPurifier
icon scene_cleaning
room Homekit,Kueche
subType AirPurifier3H
verbose 1
Moin,
habe auch gerade den 3C angemeldet. Gleiche Probleme.
Bei meiner Recherche habe ich folgende Lösung gefunden:
siehe Anhang.
Mit der Datei lässt sich der 3C steuern. Ein Update für 72_XiaomiDevice.pm muss dann unterbunden werden. (in global attr exclude_from_update)
Lösung stammt aus dem Forum.
Rechte der Datei anpassen.
Super danke, dass funktioniert gut.
Du hast nicht auch noch zufällig die passenden homebridgeMappings übrig? ;)
Gruß
Sorry,
da nutze ich Homebridge Miot.
Wir haben seit einigen Tagen einen Roborock S7 MaxV Ultra und sind generell mit den Leistungsmerkmalen sehr zufrieden.
Zur Steuerung stehen zwei Apps zur Verfügung ("Roborock" oder "Xiaomi Home").
Ich habe es mit beiden probiert und meine ersten Erfahrungen sagen mir, dass die "Roborock"-App besser auf das Gerät zugeschnitten ist.
Ich möchte vor allem die Aufteilung der Wohnung in Räume nutzen und dabei noch verschiedene Reinigungsfunktionen auswählen können (wischen, saugen, bzw. beides, wobei der Roboter bei der Kombifunktion beim Überfahren von Teppichen das Wischen unterbindet).
Mein Problem ist momentan, dass sich nur bei der "Xiaomi"-App das Token extrahieren lässt und nur damit gelingt eine Integration in FHEM. Das funktionierte auch, wobei ich bei einigen Funktionen noch Unklarheiten habe, beispielsweise bei "start_edit_map": wo liegt dann der Plan und wie kann ich ihn bearbeiten?
Aber alle Versuche mit den über FHEM-Forum oder Google erreichbaren Informationen führten bezüglich der Token-Gewinnung nicht zum Erfolg. Wahrscheinlich liegt es bei der "Roborock"-App auf einen anderem Server, den all die Hilfsprogramm zum Token-Extrahieren (noch) nicht auf dem Schirm haben.
Für jeden Tipp, wie ich weiter komme, bereits im Voraus besten Dank !
Peter
Ich hätte eine ungewöhnliche Frage:
Gibt das Protokoll ne Nachricht, wenn der Staubsauger wo dagegen gefahren ist?
Wenn ja, könnte man das in die Readings mit auf nehmen?
Hi,
ich habe mir einen Air Purifier 4 gekauft und versucht diesen einzubinden. Leider scheint dieser nicht voll ünterstützt zu werden, habe alle subTypes durchprobiert, aber leider passen Readings nicht und schalten funktioniert entweder falsch oder garnicht.
Genauso ist es bei meinem SmartFan 4. Den kann ich einbinden, aber Readings bzw. Schalten funktioniert nicht oder falsch.
Was kann ich tun, damit diese auch überstützt werden?
Gruss
killah78
Hat sich das hier schon mal wer angesehen? Wer kann das in das FHEM-Modul portieren? ;-)
https://github.com/PiotrMachowski/lovelace-xiaomi-vacuum-map-card
Ohje..., hier ist ja etwas Chaos entstanden. :)
Vor einiger Zeit habe ich hier irgendwo im Thread eine Config für meinen SmartFan 3 gefunden und installiert. Das läuft auch seither. Das hatte natürlich zur Folge, dass ich dieses Modul von den Updates ausschließen musste. Nun sehe ich, dass es mittlerweile verschiedene Eigenentwicklungen gibt, die das ebenfalls zur Folge haben.
Das kriegt doch niemand mehr zusammen. ;)
Keine Ahnung, wie wir das jemals wieder aufgeräumt bekommen. Wahrscheinlich müsste erstmal ein neuer Entwickler her und dann müsste man zusammenkratzen, was es schon gibt.
Wieso muss eigentlich jedes Gerät mühselig hinzuentwickelt werden? Geht das nicht irgendwie eleganter?
Ich bin übrigens auch kein Entwickler. ;)
Gruß Hoppel
Hallo Staubsaugerfreunde ;)
nachdem mein Roborock V1 nach über 100.000qm Reinigungsfläche und mehr als 2100h erste Ausfallerscheinungen zeigt (er bleibt manchmal unmotiviert stehen und bemängelt sporadisch alles mögliche), habe ich mir einen Roborock S7 gekauft.
Erster Eindruck ist sehr positiv :)
Frage: wer hat damit oder mit ähnlichen Vorgänger-Modellen Erfahrung?
Z.B. zone_names bzw point_names, also die Definition und Benennung von Punkten/Zonen/Räumen für Fhem, die "alten" Werte vom V1 liegen völlig anders.
Oder wie schickt ihr den Sauger per Fhem in ein bestimmtes Zimmer?
Dann fehlen mir die vom V1 bekannten Readings total_clean_area und total_clean_time.
Ist das irgendwo anders versteckt?
Oder berechnet ihr das aus last_clean_area etc.?
Ich danke schon mal vorab und wünsche ein schönes langes Restwochenende
ErdnaR
Wir haben einen Roborock S7 MaxV Ultra seit 29.08.2022 (siehe Beitrag #2494) und sind nachwievor sehr zufrieden. Die Funktionalität ist erstaunlich.
Von einer FHEM-Einbindung bin ich aber meilenweit entfernt.
Genauer: nutzt man die Xiaomi-App, extrahiert das Token wie beschrieben und definiert das Gerät geht eigentlich alles problemlos, allerdings ist die volle Funktionalität nicht gegeben - weder in der App noch in FHEM. Also eigentlich unbefriedigend !
Die Roborock-App unterstützt das Gerät perfekt: Parametereinstellungen, alle bzw. nur einzelne Räume reinigen, Punktreinigung, Karten anlegen, Karten bearbeiten etc. Aber FHEM ist fern !
Offensichtlich benutzt diese App einen anderen Server (?), auf jeden Fall (zumindest bisher für mich) ist das Token nicht zu ermitteln. Diverse Versuche (Android als VM in Window, dort die App installieren und Netzwerkverkenr analysieren; whireshark-Analyse von FritzBox-Logs) waren bisher erfolglos.
Momentan warte ich, bis die "Token-Extrahierer" etwas anbieten !? Ist jemand schon weiter ?
Peter
Zitat von: PNinBB am 03 Oktober 2022, 17:24:24
Momentan warte ich, bis die "Token-Extrahierer" etwas anbieten !? Ist jemand schon weiter ?
Hast du es schonmal mit einem unverschlüsselten iPhone Backup probiert? Das hat bei mir bisher immer funktioniert. Setzt allerdings voraus, dass man ein iPhone hat oder jemanden kennt, der da kurz mal mitmacht... ;)
Wir haben den "normalen" S7 und ich fand irgendwie keinen Unterschied zwischen der Roborock- und der Xiaomi-App.
Was kann denn letztere nicht? (Wie gesagt, habe keine Ab-, Auf- und Umfüllstation)
Die Readings total_clean_area und total_clean_time berechne ich mir jetzt aus dem last_clean_area.
Was mir halt noch fehlt sind die zone_names bzw point_names, also die Definition und Benennung von Punkten/Zonen/Räumen für Fhem.
Also, wie schickt man den Sauger per Fhem in ein bestimmtes Zimmer?
Ich nutze das Modul schon einige Zeit mit einem "normalen Roborock" und finde im FHEM-Logfile immer wieder diese Einträge:
2022.10.06 03:29:00 1: ERROR: Select error -1 (9), error count= 0
2022.10.06 03:29:00 1: Found and deleted bad fileno for myVacuum
Manchmal kommt davor auch noch ein
2022.10.01 10:42:32 1: myVacuum: connect to device failed
Offensichtliche Auswirkung habe ich bisher nicht gefunden, allerdings läuft das Modul auch "nur so mit", wirkliche Automatisierung/Steuerung habe ich abgesehen von Benachrichtigung bei den Verbrauchsmaterialien nicht.
Habe das "found and deleted bad fileno" ganz am Anfang des Threads schon wo gefunden, aber eine Erklärung/Lösung gab's dafür nicht.
Zitat von: PNinBB am 03 Oktober 2022, 17:24:24
Wir haben einen Roborock S7 MaxV Ultra seit 29.08.2022 (siehe Beitrag #2494) und sind nachwievor sehr zufrieden. Die Funktionalität ist erstaunlich.
Von einer FHEM-Einbindung bin ich aber meilenweit entfernt.
Genauer: nutzt man die Xiaomi-App, extrahiert das Token wie beschrieben und definiert das Gerät geht eigentlich alles problemlos, allerdings ist die volle Funktionalität nicht gegeben - weder in der App noch in FHEM. Also eigentlich unbefriedigend !
Die Roborock-App unterstützt das Gerät perfekt: Parametereinstellungen, alle bzw. nur einzelne Räume reinigen, Punktreinigung, Karten anlegen, Karten bearbeiten etc. Aber FHEM ist fern !
Offensichtlich benutzt diese App einen anderen Server (?), auf jeden Fall (zumindest bisher für mich) ist das Token nicht zu ermitteln. Diverse Versuche (Android als VM in Window, dort die App installieren und Netzwerkverkenr analysieren; whireshark-Analyse von FritzBox-Logs) waren bisher erfolglos.
Momentan warte ich, bis die "Token-Extrahierer" etwas anbieten !? Ist jemand schon weiter ?
Peter
Ich habe es bis jetzt auch nicht geschafft.
Die Xiaomi-App redet mit de.api.io.mi.com, fr-app-chat-global-xiaomi-net1-1667981913.eu-central-1.elb.amazonaws.com, stat.youpin.mi.com, restapi.amap.com usw.
Die RoboRock-App redet mit api-eu.roborock.com, euiot.roborock.com, mqtt-eu-4.roborock.com usw.
Einen gültigen Token bekomme ich bis jetzt nur per token_extractor.py und das redet nur mit de.api.io.mi.com.
Ich hatte gehofft, nach einem Wifi-Reset und per miio discover einen gültigen Token zu bekommen, aber die Apps benutzen nach dem Einrichten einen anderen, als vorher per local-Wifi von Device direkt abgefragt ausgespuckt wurde.
Die awsde0.fds.api.xiaomi.com habe ich im PiHole schon gesperrt. Darüber versucht der Robi seine Logs loszuwerden, egal ob per RoboRock-App oder Xiaomi-App gekoppelt. Funktioniert trotzdem noch alles, außer in der Xiaomi-App können dann keine Maps mehr angezeigt werden.
Am Ende benutzt man aber die App nur zum Einrichten. Ziel ist es ja, dass der Sauger automatisiert alleine seine Arbeit verrichtet -> Wohnung verlassen: set RoboRock start. HomeComing -> set RoboRock stop (falls er gerade läuft) und maximal noch per täglichen Timer. Die App braucht man dann nicht mehr, auch wenn sie am Anfang schön bunt und interessant ist, um zu Endecken, was alles so Schönes geht.
EDIT: ich merke gerade, der Sauger versteht mit dem Block per PiHole umzugehen und versucht die IP für awsde0.fds.api.xiaomi.com selber per public.114dns.com zu ermitteln. Außerdem sendet er fleißig an lb-hadoop-fds-awsde0-eco-tcp-*.eu-central-1.elb.amazona
Und ich wundere mich, warum die Xiaomi-App außerhalb des Home-Netz noch Daten bekommt.
Ich hasse dieses Cloud-Gedöns .... keine Privatsphäre mehr
@Markus M: kannst Du bitte noch Folgendes für cleaning_mode ergänzen, damit auch der RoboRock S7 Pro Ultra 'auto' angezeigt bekommt. Danke.
|| $hash->{model} eq "roborock.vacuum.a62"
Zitat von: setstate am 24 Oktober 2022, 13:36:57
@Markus M: kannst Du bitte noch Folgendes für cleaning_mode ergänzen, damit auch der RoboRock S7 Pro Ultra 'auto' angezeigt bekommt. Danke.
Moin,
ich schlage vor, dass du dir mal folgenden Beitrag durchliest:
https://forum.fhem.de/index.php/topic,73052.msg1204278.html#msg1204278
Es ist davon auszugehen, dass Markus keine Zeit mehr für das Modul hat. Entweder jemand übernimmt das Modul oder es ist tot und jeder probiert irgendwie sein eigenes Glück...
Letzteres ist der derzeitige Zustand.
Gruß Hoppel
Gut zusammengefasst. Solange meine eigenen Geräte funktionieren, werde ich wohl keinen Aufwand mehr in das Modul stecken.
Durch die Vielzahl an neuen Geräten die ich selbst nicht testen kann, ist es schlicht zu viel Aufwand geworden.
Zudem ich sowieso aktuell nicht mehr viel Zeit habe zu entwickeln.
Wer es sich zutraut das Modul zu pflegen und zu erweitern, darf es gerne offiziell übernehmen.
Zitat von: erdnar am 02 Oktober 2022, 13:14:07
Hallo Staubsaugerfreunde ;)
nachdem mein Roborock V1 nach über 100.000qm Reinigungsfläche und mehr als 2100h erste Ausfallerscheinungen zeigt (er bleibt manchmal unmotiviert stehen und bemängelt sporadisch alles mögliche), habe ich mir einen Roborock S7 gekauft.
Erster Eindruck ist sehr positiv :)
... schnippschnapp ...
Z.B. zone_names bzw point_names, also die Definition und Benennung von Punkten/Zonen/Räumen für Fhem, die "alten" Werte vom V1 liegen völlig anders.
Oder wie schickt ihr den Sauger per Fhem in ein bestimmtes Zimmer?
... schnippschnapp ...
ErdnaR
Hallo,
ich beantworte mal meinen eigenen Post...
Da ich mit meinem S7 nach wie vor sowohl Punkte anfahren (z.B. wenn er voll ist) wie auch Zonen reinigen will, habe ich mal experimentiert.
Nach wie vor ist [25500,25500] (x,y) der Ausgangspunkt=Ladepunkt, allerdings nicht der aktuelle, sondern bei mir der, der zur Ersteinrichtung ausgewählt war.
Und von diesem Punkt aus bewegt sich mein S7 mit +Y-Wert aus der imaginären Ladestation gerade heraus, mit -Y hinein. Mit +X fährt er 90° nach links, -X also rechts (Also immer mit Blick auf die (imaginäre) Ladestation).
Und wie gehabt sind 1m = 1000.
Mit einem genauen Plan der Wohnung kann ich mir also Zonen etc. "berechnen" [+x,+y,-x,-y,W].
Viel Spass.
ErdnaR
Moin.
Ich hab zwar schon gelesen dass das Modul nicht mehr weiter entwickelt wird, aber ich hab trotzdem eine Frage die vielleicht noch beantwortet werden kann.
Ich habe einen Dreame D9 Sauger gekauft welcher sich soweit auch gut mit FHEM connected hat.
Ich bekomme Readings vom Sauger ausgelesen wie z.B. device_firmware 4.1.8_1132, device_uptime, state connected oder wifi_rssi.
Allerdings bekomme ich auch ein Reading "error - useracktimeout" und alle set-Befehle werden ignoriert.
Im Logfile finde ich z.B. dazu
2022.11.27 20:10:36 5: SnueffelAndi: decrypted
{"id":800,"error":{"code":-9999,"message":"user ack timeout"},"exe_time":4003}
Es gibt auch Logfiles mit den IDs 777 oder 778 die genau so ausschauen.
Was kann das bedeuten?
Liegt es am Sauger oder am Modul?
Hallo,
ich bin nun mit meinem Roborock S5 von IOBroker zu FHEM umgezogen.
Ich habe mich an die Anleitung im Wiki gehalten und das hat auch gut funktioniert.
Auch der Start und Stopp über Alexa läuft.
Jetzt hänge ich an der Zonenreinigung.
Über den Befehl: set Mi_vacuum zone Bad läuft es auch.
Aber wie schaffe ich es nun, dass ich über Alexa die entsprechende Zone starten kann?
Vielen Dank für eure Hilfe.
Grüße
Eine Routine anlegen:
"Alexa starte den Sauger im Bad" und am Ende dann starten.
Evtl. ist ein homebridgeMapping notwendig, um on auf set Sauger zone Bad zu setzen...
Bei mehreren Zonen dann mehrere Routinen und evtl. (ausnahmsweise) über einen dummy/notify/DOIF (z.B. "Dimmer-dummy" : bestimmter Dimmwert -> jeweilige Zone) die entsprechende Zone starten...
Alternative: Custom Skill
Oder versuchen bei Amazon einen entsprechenden "Controller" für SmartHome zu finden und per Readings (u.U. userReadings), genericDeviceType und homebridgeMapping nutzen...
Gruß, Joachim
Hallo,
danke für deine Hilfe.
Mit HomebridgeMapping bin ich bisher noch nicht in Kontakt gekommen.
Daher habe ich es nun mit Dummy/DOIF gelöst. Der Gedankenanstoß hatte mir gefehlt.
Nun hört der Roborock wieder aufs Wort. :-)
Grüße
Hallo zusammen,
ich habe nach Anleitung im Wiki das DoIF und den Dummy eingerichtet.
define di_Mi_Vacuum DOIF ([Mi_Vacuum_Staubsauger:"on"]) (set Mi_Vacuum start) DOELSE (set Mi_Vacuum charge)
Das DOIF bereitet mir Kopfzerbrechen. Wenn ich meinem Dummy Device einschalte wird die Reinigung gestartet. Das passt so weit. Wenn ich das Dummy Device ausschalte wird des Saugroboter nur gestoppt und der Roboter nicht in auf die Ladestation geschickt.
Das Verhalten scheint aber "normal" zu sein. Ich habe das mit der Eingabeaufforderung von fhem gestestet und folgenden Befehle hintereindander abgesetzt:
set Mi_Vacuum start --> Ergebnis: Saugroboter startet Reinigung
set Mi_Vacuum charge ---> Ergebnis: Saugroboter unterbricht Reinigung und fährt nicht zur Ladestation
set Mi_Vacuum charge ---> Ergebnis: Saugraoboter fährt zur Ladestation
Wenn ich folgendes mache (was das DOIF ja aufgrund des Dummys macht) habe ich dieses Ergebnis:
set Mi_Vacuum start --> Ergebnis: Saugroboter startet Reinigung
set Mi_Vacuum charge ----> Ergebnis Saugroboter unterbricht Reinigung und fährt nicht zur Ladestation
Meine Frage ist wie kann ich denn dem Saugroboter mit dem DOIF beibringen dass er zu Ladestation fahren soll. Im Prinzip müssen ja zwei set Befehle hintereinander abgearbeitet werden. Ein
([Mi_Vacuum_Staubsauger:"on"]) (set Mi_Vacuum start) DOELSE (set Mi_Vacuum stop, set Mi_Vaccum charge)
brachte bei mir jetzt keinen Erfolg. Der zweite set Befehl wird einfach ignoriert...
Habt ihr eine Idee ?
Grüße
Steven
Wieso stop und charge?
Ich dachte 2x (hintereinander) charge würde dazu führen, dass er zurück fährt?
So zumindest dein manuelles experiment...
Die 2x charge verm. zeitlich entkoppeln mittels wait Attribut...
(oder fhem-sleep)
EDIT: vielleicht ist das auch jetzt schon der Grund bzw. durch entkoppeln zu lösen...
Gruß, Joachim
Hallole
ja genau so ist es ..zwei mal hintereinander ein
charge
löst dann die Fahrt zur Ladestation aus.
Aber auch ein
stop
gefolgt von einem
charge
nur das alleinige
charge
im DOIF
tut nichts anderes als den Saugroboter anzuhalten.
Kannst du mir mit diesem wait attribut oder fhem-sleep bitte auf die Sprünge helfen?
Grüße
Steven
Zitat von: sxx128 am 18 Dezember 2022, 13:41:50
Kannst du mir mit diesem wait attribut oder fhem-sleep bitte auf die Sprünge helfen?
Gehört aber nicht hierher: DOIF-Unterforum
Oder eben commandref zu DOIF oder Wiki-Beispiele...
Ich nutze kein DOIF...
...weiß nur, dass es das wait Attribut gibt.
Gruß, Joachim
Ändere dein DOIF wie folgt:
([Mi_Vacuum_Staubsauger:"on"]) (set Mi_Vacuum start) DOELSE (set Mi_Vacuum stop; sleep 2; set Mi_Vaccum charge)
Dann klappt es :-)
Wichtig ist auch die Zeichensetzung nicht , sondern ; zwischen den Befehlen. Deswegen wird auch dein zweiter Befehl ignoriert.
Grüße
Hallole,
vielen Dank. Werde es testen :-)
Grüße
Steven
@PNinBB und erdnar:
Wie genau habt Ihr denn das Token ausgelesen? Die alte MiHome App kennt noch keinen S7 (kann ich nicht hinzufügen). Und mit der neuen und MiToolkit bekomme ich den Fehler, dass die Backupdatei zu klein ist, obwohl die in dem Moment noch am wachsen ist (sieht zumindest im Explorer so aus).
Allen erst mal ein gesundes neues Jahr... :)
Zitat von: tomcat.x am 26 Dezember 2022, 18:54:43
@PNinBB und erdnar:
Wie genau habt Ihr denn das Token ausgelesen? Die alte MiHome App kennt noch keinen S7 (kann ich nicht hinzufügen). Und mit der neuen und MiToolkit bekomme ich den Fehler, dass die Backupdatei zu klein ist, obwohl die in dem Moment noch am wachsen ist (sieht zumindest im Explorer so aus).
Ich habe mich daran gehalten: https://www.smarthomeassistent.de/token-auslesen-roborock-s6-roborock-s5-xiaomi-mi-robot-xiaowa/ (https://www.smarthomeassistent.de/token-auslesen-roborock-s6-roborock-s5-xiaomi-mi-robot-xiaowa/) bzw. https://forum.fhem.de/index.php/topic,73052.msg1165867.html#msg1165867 (https://forum.fhem.de/index.php/topic,73052.msg1165867.html#msg1165867)
Alternativ das https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor (https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor)
Gruß
erdnar
Super, danke. Ich habe den genommen: https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor (https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor)
Hallo!
Ich bin auf der Suche nach einer Lösung die Karten auf dem S5 Max zu wechseln auch über diesen Thread gestolpert.
Immer nach einem Wechsel des Stockwerkes kann ich keine Einzelraumreinigung über FHEM starten, da die falsche Karte als Basis verwendet wird.
Da es bisher scheinbar keine einfache Lösung gibt, habe ich mir eine Lösung zusammengeschustert ;)
Vielleicht hilft dies ja auch dem einen oder anderen :)
Natürlich wäre es schön, wenn das auch im Modul übernommen werden könnte. Ich habe aber auch gelesen, dass die Entwicklung derzeit eingestellt ist.
Ich nutze einen Weg über python-miio ( https://github.com/rytilahti/python-miio )
Dies muss zunächst installiert werden (bei mir ein Raspberry mit buster):
pip3 install cryptography==35
pip3 install python-miio
cryptography in einer älteren Version, damit nicht im Vorfeld rust installiert werden muss.
Den Rest mache ich mit einem DOIF. Hier habe ich darauf geachtet, dass die Befehle das System nicht ausbremsen. Nach Abruf der Daten werden diese per Telnet an das DOIF gesendet.
<token> mit dem eigentlichen Token ersetzen
<IP> mit der IP-Adresse ersetzen
defmod di_Roborock DOIF
\
getMaps{\
##mystr=`mirobo --ip <IP> --token <token> raw-command get_multi_maps_list 1 | tail -n +2`;; perl /opt/fhem/fhem.pl 7072 "setreading di_Roborock maps ${mystr}"\
\
my $command="mirobo --ip <IP> --token <token> raw-command get_multi_maps_list 1 | tail -n +2";;\
my $fhemstring="perl /opt/fhem/fhem.pl 7072 \"setreading $SELF maps \${mystr}\"";;\
my $mapdata="mystr=`$command`;; $fhemstring";;\
system ("{ $mapdata;; }&");;\
\
}\
getActiveMap{\
##Keine lesbare Rückmeldung! Nur Inkrement\
my $command="mirobo --ip <IP> --token <token> raw-command get_map_v1 1 | tail -n +2";;\
my $fhemstring="perl /opt/fhem/fhem.pl 7072 \"setreading $SELF activeMap \${mystr}\"";;\
my $mapdata="mystr=`$command`;; $fhemstring";;\
system ("{ $mapdata;; }&");;\
}\
\
setMapUnten{\
my $Num=0;;\
set_Reading("MapLoaded", "false",1);;\
my $command="mirobo --ip <IP> --token <token> raw-command load_multi_map $Num,1 | tail -n +2";;\
my $fhemstring="perl /opt/fhem/fhem.pl 7072 \"setreading $SELF MapLoaded \${mystr}\"";;\
my $mapdata="mystr=`$command`;; $fhemstring";;\
system ("{ $mapdata;; }&");;\
}\
setMapKeller{\
my $Num=1;;\
set_Reading("MapLoaded", "false",1);;\
my $command="mirobo --ip <IP> --token <token> raw-command load_multi_map $Num,1 | tail -n +2";;\
my $fhemstring="perl /opt/fhem/fhem.pl 7072 \"setreading $SELF MapLoaded \${mystr}\"";;\
my $mapdata="mystr=`$command`;; $fhemstring";;\
system ("{ $mapdata;; }&");;\
}\
setMapOben{\
my $Num=2;;\
set_Reading("MapLoaded", "false",1);;\
my $command="mirobo --ip <IP> --token <token> raw-command load_multi_map $Num,1 | tail -n +2";;\
my $fhemstring="perl /opt/fhem/fhem.pl 7072 \"setreading $SELF MapLoaded \${mystr}\"";;\
my $mapdata="mystr=`$command`;; $fhemstring";;\
system ("{ $mapdata;; }&");;\
}
attr di_Roborock room Sauger
attr di_Roborock userReadings MapLoadedTxt:MapLoaded.* {\
my $var=ReadingsVal($name,"MapLoaded","false");;\
$var =~ s/\[\'//g;;\
$var =~ s/\'\]//g;;\
return $var;;\
}
setstate di_Roborock initialized
setstate di_Roborock 2023-01-09 18:45:33 mode enabled
setstate di_Roborock 2023-01-09 18:45:35 state initialized
set di_Roborock getMaps
Erzeugt ein reading im JSON-Format. Hier werden die IDs und die Map-Namen ausgelesen.
set di_Roborock getActiveMap
War mein Versuch, die aktive Karte auszulesen. Bei jedem Auslesen hat man jedoch nur ein Increment. Die aktive Karte kann wohl nicht ausgelesen werden.
set di_Roborock setMapXYZ
Lädt die entsprechende Karte. (In der App kann man sehen, das die Karte auch wirklich geändert wird...ggf. die App einmal neu starten)
Erzeugt ein reading "MapLoaded". Bei Erfolg ein "['ok']".
Da ich ein reading "ok" für FTUI benötige, habe ich noch das userReading "MapLoadedTxt" hinzugefügt. Hier bleibt dann nur noch das "ok" übrig.
Das laden der Karte geht sehr schnell (anders als in der App). Deswegen lade ich die Karte jedes Mal vor beginn der Reinigung.
Gruß
Bismosa
Seit neuestem haben wir zu Hause einen Roborock S7 MaxV Ultra in Betrieb.
Soweit alles gut bisher, aber ist es normal, daß die history_0 bis history_9 nicht mehr in den readings sind?
... "normal" in so fern, dass es bei mir auch nicht auftaucht :-\
ErdnaR
Mein Roborock S7 wird automatisch anhand der Bewohneranwesenheit von FHEM gesteuert.
Das klappt auch soweit sehr gut.
Allerdings wird immer im "normalen" Modus "Alle" gereinigt. Ich habe mir eigentlich eine individuelle Raumreinigung zusammengestellt, bei der nur bestimmte Räume auch gewischt werden sollen. Wenn ich vor der automatischen Reinigung in der App auf "individuell" umstelle klappt das auch, nur ist die Einstellung nach jeder Reinigung wieder zurückgesetzt und bei der nächsten automatischen Reinigung wird wieder überall gewischt.
Wie kann ich denn über FHEM mitgeben dass er vor Beginn der Reinigung wieder auf "individuell" umstellt?
Gruß
Dan
Hallo Dan,
ich verstehe zwar deine Frage nicht richtig (z.B. habe ich keinen "normalen" Modus im Fhem), gebe aber mal meinen Senf dazu:
Meinen Sauger (ist als XiaomiDevice im Fhem) starte ich immer über DOIFs (egal ob über Anwesenheitserkennung (ganze Wohnung) oder per Zuruf, z.B. "Alexa starte Küche saugen"), die den gewünschten Modus einstellen:({fhem("
set MQ_GollumSchalter OFF;
sleep 2;
set MQ_GollumSchalter ON;
sleep 10;
set SaugerS7 reconnect;
sleep 10;
set SaugerS7 cleaning_mode turbo;
sleep 2;
set SaugerS7 zone Küche
")}
Wobei "MQ_GollumSchalter" in Verbindung mit "reconnect" den ggfs. tief schlafenden Sauger wachrütteln.
Wenn ich die Reinigung lediglich mit "set SaugerS7 start" aktiviere, nimmt er natürlich die gerade eingestellten Reinigungsparameter, wobei ich immer leicht feucht wischen lasse (so lange das Wasser reicht) und die Teppicherkennung aktiv habe.
ErdnaR
Hey ErdnaR,
danke für Deinen Hilfeversuch.
Mit "normalem" Modus meinte ich den "Vac & Mop" Modus.
Eigentlich suchte ich eine Möglichkeit per FHEM zwischen "Vac & Mop", "Wischen", "Saugen" und "Individuell" umzuschalten, da ich alles auf "Individuell" eingerichtet habe und bis heute dachte dass der Roboter beim täglichen Start der Reinigung alleine wieder auf "Vac & Mop" zurückfällt.
Nach heutiger erneuter Analyse des Codes meiner DailyWork Funktion ist mir aber aufgefallen dass nach meinem Startbefehl noch "set cleaning_mode turbo" hinterher kam (Relikt von meinem S1). Und genau das war wohl das Problem. Sobald man den "cleaning_mode" umstellt wechselt der Roboter wieder auf "Vac & Mop". Nachdem ich das heute heraus gelöscht habe ist er brav im Modus "Individuell" gefahren und steht nach der Reinigung auch immer noch in diesem Modus.
Mein eigentliches Problem ist damit gelöst.
Schön wäre es aber trotzdem wenn man per FHEM die verschiedenen Modi umschalten könnte, denn eigentlich würde es mir reichen wenn der Roboter alle 2 Tage wischt und sonst nur saugt.
Gruß
Dan
P.S. Das mit dem Wachrütteln habe ich nicht ganz verstanden. Meiner reagiert eigentlich immer wenn ich ihn per FHEM anspreche, es sei denn er ist disconnected.
Zitat von: DeeSPe am 05 Februar 2023, 20:26:13
P.S. Das mit dem Wachrütteln habe ich nicht ganz verstanden. Meiner reagiert eigentlich immer wenn ich ihn per FHEM anspreche, es sei denn er ist disconnected.
Genau dafür ist das. Der Gollumschalter schaltet die Ladestation aus/an, danach connected er meist wieder.
ErdnaR
Ahhh, also ist Gollumschalter die schaltbare Steckdose für den S7!
Danke für die Erklärung.
Gruß
Dan
Moin,
seit kurzem werkelt ein Roborock S7 Pro Ultra in unserem Heim und mir fiel nach Einbindung in FHEM über das Modul 72_XiaomiDevice (wie auch schon anderen (https://forum.fhem.de/index.php/topic,73052.msg1258437.html#msg1258437) zuvor) auf, dass die Readings history_0-9 sowie last_clean_area|time und last_timestamp nicht da waren oder nicht gefüllt wurden.
Ein wenig Ursachenvorschung führte mich dann zu den JSON-Antworten des Bots, die anders strukturiert sind als vorherige Generationen. Mit ein wenig probieren und Trial and Error habe ich (eine mir) passende Version des Moduls geschrieben. Es ist ziemlich quick and dirty (zumal es mein erster Ausflug überhaupt in Perl ist), aber es funktioniert hier gut.
Die neuen Abfragen im Code sind auf das Model roborock.vacuum.a62 gemünzt, wie sich der S7 Pro Ultra hier meldet. Alles andere sollte unverändert weiter funktionieren.
Hier das Diff als Kurzform:
3449c3449,3450
< return undef if(!defined($json->{result}));
---
> return undef if(!defined($json->{result}));
> return undef if(ref($json->{result}) ne "ARRAY");
3452,3465c3453,3455
<
< if($hash->{model} eq "roborock.vacuum.a62") # Roborock S7 Pro Ultra
< {
< return undef if(ref($json->{result}) ne "HASH");
< readingsBulkUpdate( $hash, "total_clean_time", sprintf("%.2f",int($json->{result}{clean_time})/3600), 1 ) if(defined($json->{result}{clean_time}));
< readingsBulkUpdate( $hash, "total_clean_area", sprintf( "%.2f" ,int($json->{result}{clean_area})/1000000), 1 ) if(defined($json->{result}{clean_area}));
< readingsBulkUpdate( $hash, "total_cleans", $json->{result}{clean_count}, 1 ) if(defined($json->{result}{clean_count}));
< } else {
< return undef if(ref($json->{result}) ne "ARRAY");
< readingsBulkUpdate( $hash, "total_clean_time", sprintf("%.2f",int($json->{result}[0])/3600), 1 ) if(defined($json->{result}[0]));
< readingsBulkUpdate( $hash, "total_clean_area", sprintf( "%.2f" ,int($json->{result}[1])/1000000), 1 ) if(defined($json->{result}[1]));
< readingsBulkUpdate( $hash, "total_cleans", $json->{result}[2], 1 ) if(defined($json->{result}[2]));
< }
<
---
> readingsBulkUpdate( $hash, "total_clean_time", sprintf("%.2f",int($json->{result}[0])/3600), 1 ) if(defined($json->{result}[0]));
> readingsBulkUpdate( $hash, "total_clean_area", sprintf( "%.2f" ,int($json->{result}[1])/1000000), 1 ) if(defined($json->{result}[1]));
> readingsBulkUpdate( $hash, "total_cleans", $json->{result}[2], 1 ) if(defined($json->{result}[2]));
3468,3474d3457
< my @records = ();
< if($hash->{model} eq "roborock.vacuum.a62") # Roborock S7 Pro Ultra
< {
< @records = @{$json->{result}{records}};
< } else {
< @records = @{$json->{result}[3]};
< }
3477c3460
< foreach my $cleanrecord (@records) {
---
> foreach my $cleanrecord (@{$json->{result}[3]}) {
3498a3482
>
3517a3502
> my @cleanrecord = @{$cleanrecord};
3519,3532c3504,3506
< if($hash->{model} eq "roborock.vacuum.a62") # Roborock S7 Pro Ultra
< {
< return undef if(ref($cleanrecord) ne "HASH");
<
< readingsBulkUpdate( $hash, "last_timestamp", $cleanrecord->{begin}, 1 ) if($recordnumber == 0 && defined($json->{result}[0]));
< readingsBulkUpdate( $hash, "history_".$recordnumber, FmtDateTime($cleanrecord->{begin}).": ".sprintf( "%.2f" ,int($cleanrecord->{area})/1000000)."m² in ".sprintf("%.2f",int($cleanrecord->{duration})/3600)."h, ".(($cleanrecord->{complete} eq "0")?"not finished":"finished cleaning"), 1 ) if($recordnumber < 10 && defined($json->{result}[0]));
< } else {
< return undef if(ref($cleanrecord) ne "ARRAY");
<
< my @cleanrecord = @{$cleanrecord};
< #Log3 $name, 2, "$name: $history $day $daynumber \n".Dumper($cleanrecord);
< readingsBulkUpdate( $hash, "last_timestamp", $cleanrecord[0], 1 ) if($recordnumber == 0 && defined($json->{result}[0]));
< readingsBulkUpdate( $hash, "history_".$recordnumber, FmtDateTime($cleanrecord[0]).": ".sprintf( "%.2f" ,int($cleanrecord[3])/1000000)."m² in ".sprintf("%.2f",int($cleanrecord[2])/3600)."h, ".(($cleanrecord[5] eq "0")?"not finished":"finished cleaning"), 1 ) if($recordnumber < 10 && defined($json->{result}[0]));
< }
---
> #Log3 $name, 2, "$name: $history $day $daynumber \n".Dumper($cleanrecord);
> readingsBulkUpdate( $hash, "last_timestamp", $cleanrecord[0], 1 ) if($recordnumber == 0 && defined($json->{result}[0]));
> readingsBulkUpdate( $hash, "history_".$recordnumber, FmtDateTime($cleanrecord[0]).": ".sprintf( "%.2f" ,int($cleanrecord[3])/1000000)."m² in ".sprintf("%.2f",int($cleanrecord[2])/3600)."h, ".(($cleanrecord[5] eq "0")?"not finished":"finished cleaning"), 1 ) if($recordnumber < 10 && defined($json->{result}[0]));
3535d3508
<
Ich hoffe, das hilft dem Einen oder Anderen weiter.
Viele Grüße
GF
Zitat von: gorefield am 15 März 2023, 15:54:32Moin,
seit kurzem werkelt ein Roborock S7 Pro Ultra in unserem Heim und mir fiel nach Einbindung in FHEM über das Modul 72_XiaomiDevice (wie auch schon anderen (https://forum.fhem.de/index.php/topic,73052.msg1258437.html#msg1258437) zuvor) auf, dass die Readings history_0-9 sowie last_clean_area|time und last_timestamp nicht da waren oder nicht gefüllt wurden.
Ein wenig Ursachenvorschung führte mich dann zu den JSON-Antworten des Bots, die anders strukturiert sind als vorherige Generationen. Mit ein wenig probieren und Trial and Error habe ich (eine mir) passende Version des Moduls geschrieben. Es ist ziemlich quick and dirty (zumal es mein erster Ausflug überhaupt in Perl ist), aber es funktioniert hier gut.
Die neuen Abfragen im Code sind auf das Model roborock.vacuum.a62 gemünzt, wie sich der S7 Pro Ultra hier meldet. Alles andere sollte unverändert weiter funktionieren.
Hier das Diff als Kurzform:
------------ schnipp --- schnapp ------------
Ich hoffe, das hilft dem Einen oder Anderen weiter.
Viele Grüße
GF
Hurra, wir haben einen neuem Maintainer für 72_XiaomiDeviceok, Spass beiseite. ;)
Ich habe leider keinen Durchblick mit Perl.
Könntest du evtl. den roborock.vacuum.a15 (das ist der einfachste S7) mit aufnehmen?
Danke
ErdnaR
Zitat von: erdnar am 25 März 2023, 16:55:14Hurra, wir haben einen neuem Maintainer für 72_XiaomiDevice
Der war gut... ;D
Zitat von: erdnar am 25 März 2023, 16:55:14Könntest du evtl. den roborock.vacuum.a15 (das ist der einfachste S7) mit aufnehmen?
Ist jetzt mit drin, analog zum S7 Pro Ultra, in der Annahme, dass sich beide gleich verhalten.
Aber Vorsicht: Das Einzige, was ich dazu testen konnte, ist, dass es bei mir nichts kaputt gemacht hat. ;)
Hallo Gorefield,
vielen Dank für die Änderung.
Es funktioniert auch mit meinem S7. Die history_*`s sind jetzt da und er funktioniert sogar noch. :))
Und wenn du wieder mal den Datenstrom deines S7 analysierst... die Handy-App erhält den Hinweis vom Robbi wenn das Wasser alle ist, Fhem leider (noch) nicht.
Danke und allen Frohe Ostern
ErdnaR
Hab's auch eingespielt - funktioniert so, wie es soll.
Danke dafür.
Hallo zusammen,
ich habe seit heute den Mi Vacuum - Mop 2, der mit dem Modul auch in FHEM erkannt wird und "connected" ist (Token stimmt also), leider zeigt er mir nur vier Readings an:
device_firmware
4.3.3_1026
2023-04-14 14:02:14
device_uptime
0.31
2023-04-14 14:02:14
error
useracktimeout
2023-04-14 15:08:41
state
connected
2023-04-14 13:48:29
wifi_rssi
-50
2023-04-14 14:02:14
Bei meinem "alten" Vacuum hat alles funktioniert und FHEM hat mir alle möglichen Readings angezeigt, die ich dann schön in der FTUI habe anzeigen lassen und ich würde mir sehr wünschen, dass das wieder so ist :-)
Ebenso funnktioniert auch kein set - Befehl, bzw. reagiert das Putzflittchen nicht :-)
Besonders stutzig macht mich der "error useracktimeout"... Vielleicht hat jemand das gleiche Gerät und könnte mir weiterhelfen?
attr VacuumCleaner ist übrigens auch gesetzt ;-)
Jemand bereit und "fähig", das Problem zu lösen?
edit: in meiner FHEM - Installation wird das Teil wohl als "dreame.vacuum.p2140p" erkannt... auf einer anderen Seite (valetudo) habe ich noch gefunden, dass es evtl. auch als Xiaomi 1C bezeichnet werden kann (wobei ich mir da nicht ganz sicher bin, da ich Mi Vacuum Mop 2 habe und nicht ohne die Ziffer am Ende... evtl. hilft das bei einer möglichen Problemlösung weiter?
Hallo in die Runde.
Ich bin seit einer Woche auch stolzer Besitzer eines Q7Max. Ich habe voller Euphorie alles in der App eingerichtet und musste jetzt feststellen, dass die Tools zum Token auslesen nur mit der Mi Home App funktionieren.
Hat jemand von euch den Token aus der Roborock App bekommen?
Nein, dazu gibt es nach meinem Wissensstand keine Lösung. :(
Zitat von: RappaSan am 16 April 2023, 08:27:23Nein, dazu gibt es nach meinem Wissensstand keine Lösung. :(
Ich habe den Token mittel Home Assistant auslesen können. Der Token ist 57 Zeichen lang, kann das passen?
b7d9***-JuOsjV***XJQ==
Nun aber das nächste Problem:
Der Status des Moduls bleibt nach der Installation der benötigten Pakete auf "Crypt::Cipher::AES or Crypt::Rijndael_PP is required!". Ich benutze Debian. Benötige ich noch weitere Pakete?
Ich komme hier einfach nicht weiter.
Ich habe nach der Meldung "Crypt::Cipher::AES or Crypt::Rijndael_PP is required!" also beide Module jeweils alleine installiert, die Meldung bleibt aber unverändert. libcryptx-perl habe ich wieder deinstalliert- alles ohne Erfolg.
Hatte niemand das selbe Problem?
Probier mal so:
apt update
apt install libcrypt-rijndael-perl
#evtl. zusätzlich noch libcrypt-cbc-perl libcrypt-ecb-perl
cpan install Crypt::Cipher::AES
Ich habe aber bisher noch von keiner erfolgreichen "Roborock/FHEM" Kombination gehört.
Da haben schon einige drauf gewartet...
Zitat von: RappaSan am 17 April 2023, 08:16:23Probier mal so:
apt update
apt install libcrypt-rijndael-perl
#evtl. zusätzlich noch libcrypt-cbc-perl libcrypt-ecb-perl
cpan install Crypt::Cipher::AES
Ich habe aber bisher noch von keiner erfolgreichen "Roborock/FHEM" Kombination gehört.
Da haben schon einige drauf gewartet...
Okay, Device wird nun richtig angelegt. Readings etc. gehen nicht, das liegt wohl an der andere App...
Ich nochmal :)
Nachdem das mit der Roborock App nicht funktionierte und ich mit dem Q7 Max+ auch nicht so zufrieden war habe ich nun den S7 Pro Ultra am Start. Dieser läuft notgedrungen mit der Mi App, welche schon etwas spartanischer als die Roborock App daher kommt.
Aktuell kämpfe ich noch dem den set Befehlen im FHEM Modul, welche sich mir nicht immer erschließen... aber es läuft erstmal ;)
Leider lässt die App die inidividuelle Raumreinigung für die Zonen nicht zu.
Das führt dazu, dass wenn ich am Esstisch saugen möchte immer auch gewischt wird. Es liegt hier Echtholz Laminat und da würde ich lieber nur saugen.
Gibt es die Möglichkeit über das FHEM Modul auf "nur saugen" umzustellen?
Alternativ würde ich das Wohnzimmer auch unterteilen und den Esstisch als zusätzlichen Raum anlegen. Das führt allerdings dazu, dass beim Befehl "sauge im Wohnzimmer" dann am Esstisch nicht mit gereinigt wird.
Ist es hier möglich über den Befehl segment mehrere Räume zu reinigen?
Als letzte Alternative würde ich auch eine neue Karte anlegen, um den Raum standardmäßig groß zu lassen und auf der 2. Karte zu teilen.
Ist es über das Modul möglich die Karte zu wechseln?
Ich freue mich über Eure hilfreichen Ideen und den Support.
Vielen Dank!
Zitat von: Knallfrosch am 14 Dezember 2022, 09:21:54Hallo,
danke für deine Hilfe.
Mit HomebridgeMapping bin ich bisher noch nicht in Kontakt gekommen.
Daher habe ich es nun mit Dummy/DOIF gelöst. Der Gedankenanstoß hatte mir gefehlt.
Nun hört der Roborock wieder aufs Wort. :-)
Grüße
Hallo,
kannst du kurz aufzeigen, wie du es gemacht hast? Was ahst du für den Staubsauger mittels HomebridgeMapping angelegt?
matze1999
Moin,
Zitat von: sparkiie am 20 April 2023, 20:41:03Leider lässt die App die inidividuelle Raumreinigung für die Zonen nicht zu.
Das ist bei mir anders. Ich habe auch die Mi Home App und einen S7 Pro Ultra. Und wenn ich nicht möchte, dass in einem bestimmten Bereich gewischt wird, trage ich diesen in der Karte einfach als Teppich ein. ;)
Viele Grüße
GF
Zitat von: gorefield am 24 April 2023, 10:11:00Moin,
Zitat von: sparkiie am 20 April 2023, 20:41:03Leider lässt die App die inidividuelle Raumreinigung für die Zonen nicht zu.
Das ist bei mir anders. Ich habe auch die Mi Home App und einen S7 Pro Ultra. Und wenn ich nicht möchte, dass in einem bestimmten Bereich gewischt wird, trage ich diesen in der Karte einfach als Teppich ein. ;)
Viele Grüße
GF
Hallo,
ich habe es testweise wie gorefield gemacht, wenn ich einen Bereich nicht wischen wollte.
Allerdings empfinde ich den Wasserverbrauch als dermaßen gering, dass es auf einem Fussboden keinen Schaden anrichten wird. Falls wir mal mit dem Scheuerlappen durch die Wohnung tänzeln, wird deutlich mehr Feuchtigkeit aufgebracht.
Zitat von: gorefield am 24 April 2023, 10:11:00Moin,
Zitat von: sparkiie am 20 April 2023, 20:41:03Leider lässt die App die inidividuelle Raumreinigung für die Zonen nicht zu.
Das ist bei mir anders. Ich habe auch die Mi Home App und einen S7 Pro Ultra. Und wenn ich nicht möchte, dass in einem bestimmten Bereich gewischt wird, trage ich diesen in der Karte einfach als Teppich ein. ;)
Viele Grüße
GF
Das ist eine sehr gute Idee!
Aber wie sieht es aus, wenn ich dann 1x pro Woche doch wischen will? Ich nehme an es kann der Bereich dann gar nicht mehr gewischt werden?
Aktuell habe ich das Wohnzimmer in 2 Räume aufgeteilt und zum Glück kann man Räume zusammenfassen, sodass ich das Wohnzimmer auch komplett saugen lassen kann.
Wenn ich wischen will nehme ich einfach die Zonen Funktion ;)
Ich hatte ja geschrieben, das ich TESTWEISE die Wischfunktion ausgeschaltet habe.
Ich lasse mittlerweile alle Räume saugen UND wischen und verlasse mich auf die automatische Teppicherkennung.
Hat bisher zuverlässig funktioniert.
Hallo :)
Wird der neue Saugroboter Roborock S8 Pro Ultra unterstützt?
Hat den jemand schon im Einsatz unter FHEM?
Grüße & Danke
Bin gerade dabei meine Fehlermeldungen im FHEM-Log aufzuräumen. Leider spuckt mein SaugRoboter immer wieder folgende Meldung ins Log:
invalid JSON: 9v+�~�␃ �H�
Die Zeichen sind dabei immer andere. Das Modul funktioniert aber und es gibt keine Auffälligkeiten. Gibt es eine Idee, wie ich die Fehlermeldungen abstellen kann?
Zitat von: nocomment am 01 Juni 2023, 17:11:43Hallo :)
Wird der neue Saugroboter Roborock S8 Pro Ultra unterstützt?
Hat den jemand schon im Einsatz unter FHEM?
Grüße & Danke
Wird das Modul nicht weiterentwickelt ? ???
:'( So isses...
Guten MOrgen,
meint ihr, es gibt eine Chance den Roborock Q7 max einzubinden? In HomeAssistant ist das relativ unproblematisch, ich würde es allerdings gern in fhem machen. Hat jemand eine Idee? Ich habe gelesen, dass es schon jemand versucht hat, aber an der Installation gescheitert ist. Den Token konnte ich ebenfalls über HA auslesen, wird aber von fhem nicht aktzeptiert.
Liebe GRüße
wolf
Zitat von: nocomment am 20 Juni 2023, 19:24:35Wird das Modul nicht weiterentwickelt ? ???
Leider nicht, da mir die Zeit fehlt um neue Produkte die ich nicht live testen kann mühsam einzubinden.
Und es sind mittlerweile auch zu viele.
Möchte sich niemand des Moduls annehmen?
Hi,
manchmal passiert es, dass unser Ferdinand (S50) nicht das Dock erreicht und dann der Akku irgendwann leer ist und die Verbindung verloren geht.
Dann kommt jede Minute ein "connection timeout" im Log.
Kann man dies auf jede Stunde ändern damit das Log nicht vollgemüllt wird? Wenn ja, wo?!
Als zweites würde ich gerne eine Telegram Nachricht auslösen, wenn dies der Fall ist, wisst ihr welches Reading dann wie ist?
Zitat von: wolfram am 17 Juli 2023, 10:22:20Guten MOrgen,
meint ihr, es gibt eine Chance den Roborock Q7 max einzubinden? In HomeAssistant ist das relativ unproblematisch, ich würde es allerdings gern in fhem machen. Hat jemand eine Idee? Ich habe gelesen, dass es schon jemand versucht hat, aber an der Installation gescheitert ist. Den Token konnte ich ebenfalls über HA auslesen, wird aber von fhem nicht aktzeptiert.
Liebe GRüße
wolf
Schau dir mal #2529 ff. an.
@erdbar - danke für den Tipp, aber leider bekomme ich trotzdem kein Connect mit dem modifizierten Modul :(
Hast Du sonst noch eine Idee?
Liebe Grüße und ein schönes Wochenende.
wolf
define Saugi XiaomiDevice 192.168.1.117 2a4bb30e2ca145c39d41347326e9e232-eR5h/ERbHi91mHwQAPpXNg==
attr Saugi subType VacuumCleaner
# DEF 192.168.1.117 2a4bb30e2ca145c39d41347326e9e232-eR5h/ERbHi91mHwQAPpXNg==
# FD 88
# FUUID 64ccebdd-f33f-f845-7aa2-3d452c15eed27903
# NAME Saugi
# NR 392
# STATE ???
# TYPE XiaomiDevice
# eventCount 1
# helper:
# ConnectionState disconnected
# crypt AES
# delay 60
# ip 192.168.1.117
# packetid 1
# port 54321
#
Zitat von: wolfram am 17 Juli 2023, 10:22:20Guten MOrgen,
meint ihr, es gibt eine Chance den Roborock Q7 max einzubinden? In HomeAssistant ist das relativ unproblematisch, ich würde es allerdings gern in fhem machen. Hat jemand eine Idee? Ich habe gelesen, dass es schon jemand versucht hat, aber an der Installation gescheitert ist. Den Token konnte ich ebenfalls über HA auslesen, wird aber von fhem nicht aktzeptiert.
Liebe GRüße
wolf
Wieso Home Assistant??? :o
Nur der Token von Xiaomi Home wird unterstützt.
Wurde schon etliche Male hier geschrieben. ::)
Zitat von: wolfram am 04 August 2023, 14:02:08@erdbar - danke für den Tipp, aber leider bekomme ich trotzdem kein Connect mit dem modifizierten Modul :(
Hast Du sonst noch eine Idee?
Ich war auch nur Nutznießer von gorefield´s Aktivitäten.
Und wie RappaSan schon schrieb, es funktioniert nur, wenn du den Sauger in der Xiaomi Home-App hast.
Zitat von: Solero am 06 Juli 2022, 23:36:12Jetzt funktioniert es mit dem ROBOROCK S7 MaxV Plus und es lag doch am NATing zwischen den Subnets. Offensichtlich hat Xiaomi damit Probleme.
Vielleicht erspart diese Erkenntnis jemanden etwas Sucherei.
Danke für diesen Hinweis. Ich habe die XIAOMI's in einem seperaten VLAN. Ping ging, aber das Modul nicht, ebenfalls "value missing". In meinem Fall auf einem Mikrotik habe ich ein NAT von Source IP PI -> Dest IP XIAOMI eingerichtet. So läuft es.
Hallo,
kann mir jemand erklären, warum der Sauger (S5) bei der Zonenanwahl manchmal nur von Dock runterfährt kurz "überlegt" und sich wieder rumdreht und aufs Dock zurück fährt?
Gruß Maik
Soweit mir bekannt stimmt dann mit der Raumkarte irgendetwas nicht und die Koordinaten der angewählten Zone liegen dann (teilweise) ausserhalb.
Moin zusammen,
ich habe im Forum nichts gefunden, ob sich der XIAOMI Robot Vacuum S12 in FHEM einbinden lässt.
Hat das schon jemand von euch umgesetzt?
VG Helmut
Zitat von: Markus M. am 05 Dezember 2020, 21:09:58Damit sollte AirPurifier3C komplett sein.
Kann man den aktuelle Level tatsächlich nicht direkt verstellen, nur über Favorite?
In welchen Schritten funktioniert das in der App?
Sehr alter Post den ich hier ausgrabe, aber bestände die Möglichkeit diese Änderungen zur Unterstützung von AirPurifier3C mit in den aktuellen Code aufzunehmen? Würde bestimmt ein paar Leute freuen :)
Dazu müsste sich erst mal jemand bereit erklären, das Modul weiter zu pflegen/weiter zu entwickeln.