Hallo zusammen,
ich habe ein neues Modul zur Steuerung von Xiaomi WiFi Devices erstellt. Soll vorrangig dazu dienen fuer z.B. Xiaomi Cameras ein/aus/motion detection aktivieren/deaktivieren, etc..
Das Modul basiert auf python-miio (https://github.com/rytilahti/python-miio (https://github.com/rytilahti/python-miio)), hier die Liste der unterstuetzten Devices:
airconditioningcompanion
airconditioningcompanionv3
airdehumidifier
airfresh
airfresht2017
airhumidifier
airhumidifierca1
airhumidifiercb1
airhumidifierjsq
airhumidifiermiot
airhumidifiermjjsq
airpurifier
airpurifiermiot
airqualitymonitor
alarmclock
aqaracamera
ceil
chuangmicamera
chuangmiir
chuangmiplug
cooker
device
fan
fanp5
fansa1
fanv2
fanza1
fanza3
fanza4
gateway
gatewayalarm
gatewaydevice
gatewaylight
gatewayradio
gatewayzigbee
heater
miotdevice
philipsbulb
philipseyecare
philipsmoonlight
philipsrwread
philipswhitebulb
plug
plugv1
plugv3
powerstrip
pwznrelay
toiletlid
vacuum
viomivacuum
waterpurifier
wifirepeater
wifispeaker
yeelight
Das Modul unterstuetzt aktuell nur Kommandos die keine weiteren Argumente benoetigen. Z.B. ein Lautstaerke setzen geht noch nicht, on/off, motion aktivieren/deaktivieren geht. Bitte beachtet, dass das Modul sehr generisch aufgebaut ist, fuer Saugroboter/Airpurifier sollte das Modul von Markus hier verwendet werden: https://forum.fhem.de/index.php/topic,73052.0.html
Installation (Basisinstallation fhem_pythonbinding)
https://github.com/dominikkarall/fhem_pythonbinding
Nutzung miio Modul:
https://github.com/dominikkarall/fhem_pythonbinding/blob/master/FHEM/bindings/python/lib/miio/README.md
Ich nutze es aktuell nur um die Ueberwachung auf meinen Kameras zu aktivieren/deaktivieren.
Hi,
ich nutze das Modul dafür, meinen Xiaomi Mijia G1 über FHEM zu steuern, da ich mir dafür ein python-miioo Modul gebaut habe.
Das funktioniert prima, wäre aber noch schöner, wenn man den Status sehen könnte oder noch besser als Reading hätte.
Leider habe ich eigentlich nicht wirklich Zeit, auch noch am FHEM zu basteln, aber da jetzt ja schon ein Teil funktioniert...
Wie würde man denn vorgehen, um z.B. das:
miiocli g1vacuum --ip 192.168.... --token 82... status
State: G1State.Sweeping
Error: G1Error.Everything_is_ok
Battery: 42%
Mode: G1Mode.Global_clean
Mop State: G1MopState.Off
Charge Status: G1ChargeState.Not_charging
DND enabled: False
Direction: None
Fan speed: G1FanLevel.Standard
Water level: G1WaterLevel.Level2
Filter Life Level: 65%
Brush Life Level: 82%
Side Brush Life Level: 63%
Clean Area: 4768
Total Clean Area: 0
Clean Time: 70
Total Clean Count: 0
in FHEM-Readings zu mappen?
Hi,
eigentlich werden durch das miio Modul auch Readings angelegt und alle 300s automatisch per "status" aktualisiert. Erscheinen gar keine Readings bei dir mit dem Modul?
Es erscheinen leider nur Readings nach dem Aufruf eines set commands.
Eventuell passt die Umsetzung des Status-commands mit dem neuen get_properties_by_dataclass() da nicht (mein Modul entstand aus einem Pull Request für den dreame Sauger, der im Moment scheinbar ruht und den Status nur rudimentär anzeigt). Oder ich habe beim zusammen hacken (oder nennen wir es besser pfuschen) irgendwas kaputt gemacht.
Das muss ich mir dann doch mal an der Stelle nochmal genauer anschauen.
Raw Dev:
defmod staubi PythonModule miio g1vacuum 192.168.... 82...
attr staubi IODev local_pybinding
attr staubi icon vacuum_top
attr staubi room Wohnzimmer
setstate staubi online
setstate staubi 2020-11-20 10:48:35 accesspoint {'ssid': 'fleck', 'bssid': '98:9B:CB:21:D2:D5', 'rssi': -36, 'primary': 6}
setstate staubi 2020-11-19 17:29:53 find {'did': 'call-6-1', 'siid': 6, 'aiid': 1, 'code': 0}
setstate staubi 2020-11-20 10:48:35 firmware_version 2.0.8
setstate staubi 2020-11-20 10:48:35 hardware_version esp32
setstate staubi 2020-11-20 10:48:35 mac_address 64:90:C1
setstate staubi 2020-11-20 10:48:35 model mijia.vacuum.v2
setstate staubi 2020-11-20 10:48:35 network_interface {'localIp': '192.168.', 'mask': '255.255.255.0', 'gw': '192.168.178.1'}
setstate staubi 2020-11-20 10:48:35 raw {'life': 53248, 'uid': 633960, 'model': 'mijia.vacuum.v2', 'token': '82', 'ipflag': 1, 'fw_ver': '2.0.8', 'mcu_fw_ver': '6138', 'miio_ver': '0.0.8', 'hw_ver': 'esp32', 'mmfree': 64144, 'mac': '64:90:C1', 'wifi_fw_ver': 'cef6c09-dirty', 'ap': {'ssid': 'fck', 'bssid': '98:9B:CB:21:D2:D5', 'rssi': -36, 'primary': 6}, 'netif': {'localIp': '192.168.', 'mask': '255.255.255.0', 'gw': '192.168.178.1'}}
setstate staubi 2020-11-19 17:34:06 return_home {'did': 'call-2-3', 'siid': 2, 'aiid': 3, 'code': 0}
setstate staubi 2020-11-19 17:33:44 start {'did': 'call-2-1', 'siid': 2, 'aiid': 1, 'code': 0}
setstate staubi 2020-11-21 06:19:00 state online
setstate staubi 2020-11-19 17:33:35 stop {'did': 'call-2-2', 'siid': 2, 'aiid': 2, 'code': 0}
Kannst du mir mal den Link zum miio Code schicken wo der g1vacuum integriert wurde? Dann kann ich nachschauen warum die anderen Statuswerte da nicht übernommen werden.
Ich habe mein python-miip-g1vacuum Modul jetzt so umgeschrieben, dass der Status als Objekt zurück geliefert wird (Danke @dominik ) und bekomme jetzt auch Readings.
Einen Pull Request als Basis zu nehmen, war im Nachhinein keine gute Idee. Die neuen Miot_Device-Funktionen, die u.a. darin implementiert wurden,
sind noch nicht so richtig ausgereift und liefern nicht immer das, was man erwartet.
Ich habe jetzt den Master-Branch als Basis genommen und das Mapping und die Abfrage der Properties wie in den bisherigen MIOT-Devices kodiert.
Habe mal einen Pull-Request (https://github.com/rytilahti/python-miio/pull/867/files) angelegt.
Ich finde das mit den Python-Bindings übrigens toll, gerade wenn man sonst eher mit Python als mit Perl arbeitet, kommt man wirklich schnell zu brauchbaren Ergebnissen.
Super Arbeit!
Super, freut mich, dass alles so gut geklappt hat!
Ich hoffe der PR wird akzeptiert und damit können dann alle den g1vacuum schnell nutzen.
Falls der g1vacuum auch History, usw. abrufen kann, habe ich schon mal ein Attribut vorbereitet mit dem man alle x Sekunden den Status abfragen kann. Ich muss es nur noch selbst testen.
Zum PythonBinding: Alleine wenn ich mir die Liste der Module ansehe (https://github.com/dominikkarall/fhem_pythonbinding#fhem-python-binding-beta) die ich in kürzester Zeit erstellt habe, zeigt sich, dass man mit den Python Libraries wirklich schnell in der Entwicklung ist...und noch dazu alles aynchron ohne Blocking :)
Hallo
Ich nutze das Modul auch für meinen Xiaomi Saugroboter. Das Modul von Markus 72_XiaomiDevice scheint meinen Saugroboter nicht zu unterstützen. Mit diesem Modul funktioniert es schon sehr gut.
Ich habe es nur noch nicht herausgefunden, wie ich den move Befehl richtig setzte.
Wenn ich das richtig gesehen habe muss ich die Richtung angeben. 1 für forward und dann die Dauer. Nur die genaue Schreibweise finde ich nicht raus.
Ist das schon mitberücksichtigt oder geht das einfach noch nicht.
Gebe ich z.b. set Martha_1 move 1 100 ein bekomme ich folgendes im Pyhtonbinding log angezeigt.
2020-11-27 23:18:12,557 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:90> exception=AttributeError("'float' object has no attribute 'value'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 109, in send_command
reply = await utils.run_blocking(functools.partial(fct, *args))
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 28, in run_blocking
pool, function)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/viomivacuum.py", line 372, in move
self.send("set_direction", [direction.value])
AttributeError: 'float' object has no attribute 'value'
Leider werde ich daraus nicht schlau.
Gruß
Stephan
Hi,
probier bitte mal
set Martha_1 move Forward 100
Die Direction Angabe ist nämlich ein Enum (https://github.com/rytilahti/python-miio/blob/master/miio/viomivacuum.py#L148) daher müssen die Namen angegeben werden. Ich muss da noch eine Hilfefunktion für solche Commands integrieren, so dass man "move ?" machen kann und damit eine Hilfe zu den Optionen bekommt. Weil Funktionen mit mehreren Parametern können in FHEM leider keine Auswahlliste haben (zumindest ist mir diese Funktion nicht bekannt).
Hallo Dominik
Ich hatte schon so einige Variationen Probiert. Darunter war auch unter anderen set Martha_1 move Forward 100.
Meine bis jetzt erfolglos getesteten Variationen waren
2020-11-28_16:10:11 Martha_1 move Forward 100
2020-11-28_16:10:51 Martha_1 move Forward,100
2020-11-28_16:12:46 Martha_1 move forward 100
2020-11-28_16:13:23 Martha_1 move 100 Forward
2020-11-28_16:13:35 Martha_1 online
2020-11-28_16:13:35 Martha_1 ViomiVacuumState.Idle
2020-11-28_16:13:35 Martha_1 battery: 96
2020-11-28_16:13:35 Martha_1 move 100 forward
2020-11-28_16:13:48 Martha_1 move 100,forward
2020-11-28_16:13:59 Martha_1 move 100,Forward
2020-11-28_16:18:35 Martha_1 online
2020-11-28_16:18:35 Martha_1 ViomiVacuumState.Idle
2020-11-28_16:18:35 Martha_1 battery: 95
2020-11-28_16:19:58 Martha_1 move Forward.100
2020-11-28_16:20:11 Martha_1 move forward.100
2020-11-28_16:20:29 Martha_1 move 100.Forward
Leider waren alle kombinationen ohne Erfolg es kommt immer im Phytonbinding.log eine Fehlermeldung.
2020-11-28 16:30:16,179 - ERROR - lib.utils: Error in asyncio thread
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 28, in run_blocking
pool, function)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/viomivacuum.py", line 372, in move
while time.time() - start < duration:
AttributeError: 'str' object has no attribute 'value'
2020-11-28 16:30:16,181 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:90> exception=AttributeError("'str' object has no attribute 'value'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 109, in send_command
reply = await utils.run_blocking(functools.partial(fct, *args))
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 28, in run_blocking
pool, function)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/viomivacuum.py", line 372, in move
while time.time() - start < duration:
AttributeError: 'str' object has no attribute 'value'
Gruß
Stephan
Ich weiß schon was fehlt, die Annotation im Code. Ich vermute clean_mode kannst du auch nicht setzen, oder?
set_fan_speed liefert den richtigen Typ:
>>> inspect.signature(miio.viomivacuum.ViomiVacuum.set_fan_speed).parameters['speed'].annotation
<enum 'ViomiVacuumSpeed'>
move jedoch nicht:
>>> inspect.signature(miio.viomivacuum.ViomiVacuum.move).parameters['direction'].annotation
<class 'inspect._empty'>
Da muss im python-miio Code die Annotation hinzugefügt werden, dann wird es vom miio Modul auch richtig erkannt.
Ich habe einen Pull Request dazu erstellt:
https://github.com/rytilahti/python-miio/pull/872
Total Klasse damit funktioniert es.
Jetzt ist es möglich den Sauger per move zu steuern.
Dann kann ich jetzt wieder weiter herum spielen.
Vielen dank und noch ein schönes Wochenende
Gruß
Stephan
Super, freut mich dass es klappt :)
Hi, ich schon wieder ^^
Token lesen klappt super, nur der Rest nicht so... ;)
Vermutlich fehlt nur wieder ein Paket oder so...
Yeelight LED Bulb (Color):
Failed to load module miio: Traceback (most recent call last): File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 197, in _onMessage await asyncio.wait_for(func(hash, hash['defargs'], hash['defargsh']), fct_timeout) File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for return fut.result() File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 34, in Define for dev_cmd in self._miio_device_class.get_device_group().commands.keys(): AttributeError: 'miio' object has no attribute '_miio_device_class'
Roborock S5:
Failed to load module miio: Traceback (most recent call last): File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 197, in _onMessage await asyncio.wait_for(func(hash, hash['defargs'], hash['defargsh']), fct_timeout) File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for return fut.result() File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 34, in Define for dev_cmd in self._miio_device_class.get_device_group().commands.keys(): AttributeError: 'miio' object has no attribute '_miio_device_class'
Mi Home Security Camera 360° 1080P:
Failed to execute function Define: Traceback (most recent call last): File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 243, in _onMessage ret = await asyncio.wait_for(func(hash, hash['args'], hash['argsh']), fct_timeout) File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for return fut.result() File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 34, in Define for dev_cmd in self._miio_device_class.get_device_group().commands.keys(): AttributeError: 'miio' object has no attribute '_miio_device_class'
Vielen Danke und einen schönen restlichen Sonntag =)
Wie sieht dein define aus? Der Fehler sagt aus, dass das Device aus dem Define nicht gefunden werden konnte.
Ok, Problem hat sich nach nem RPi Neustart erledigt.
Danke =)
Hey Hey, wie sieht es eig mit der Möglichkeit aus, auch die BT Dinge von Xiaomi zu schalten?
Ich Depp hab mir ausersehen eine BT Lampe geholt in Fernost... =/
Aktuell wäre das nur mit dem Xiaomi V3 Gateway möglich, dieser unterstützt Mesh Bluetooth. Ich habe auf folgender Basis dazu das xiaomi_gateway3 Modul gebaut:
https://github.com/AlexxIT/XiaomiGateway3
Die Bluetooth Integration habe ich noch nicht aus dem Projekt übernommen, würde ich aber umsetzen wenn es da Interesse daran gibt.
Also, ich hätte Interesse dran, würde auch gerne alles aus einer Hand haben wollen. =)
Wäre schon geil, Danke!
Läuft ja dann über das RPi 3 BT, oder?
Nein, das läuft nur über den Xiaomi Gateway 3. Der Xiaomi Gateway stellt die BT Verbindung zu den Devices her und vom Xiaomi Gateway werden diese dann via WiFi zu FHEM übertragen.
Du brauchst also einen Xiaomi Gateway3 dazu, falls du diesen nicht vorliegen hast, dann geht es mit der Lösung nicht.
Xiaomi Bluetooth Produkte die direkt mit dem RPi BT funktionieren sind aktuell nur der Temperatur- und Pflanzensensor. Wie ist die genaue Bezeichnung des Produkts das du hast?
Mhm, dann muss ich schauen, ob sich das Gateway für mich lohnt.
Die Lampe de ich habe: Yeelight YLDP10YL
Danke auf jedenfall schonmal =)
Ich habe das V1 und das neue Gateway V3. Das neue GW sieht schicker aus und war bei mir preislich um 18€ über Aliexpress zu beziehen. Die Bluetooth Funktionen habe ich aber noch nicht ausprobiert und daher auch bislang nicht integriert.
Guten Morgen,
was ist, wenn beim GWv3 die China Cloud mal nicht erreichbar ist, kann man das ganze dann noch immer Lokal steuern?
Die YL Lampen welche ich sonst im Einsatz habe, habe ich die LAN Steuerung an und kann die auch wenn mein Inet wegfällt weiterhin steuern.
Mit Sonoff hatte ich das Problem, dass die Cloud nicht erreichbar war und dann konnte ich die Teile nur von Hand steuern, seit dem habe ich da Tasmota drauf und betriebe es lokal.
So wie ich das sehe, ist das GW auch für die Aqara Zigbee Teile zuständig, hier nutze ich eine Cloudfreie Lösung, aus besagten Gründen.
Noch eine andere Sache zu den Cam's welche man einbinden kann, ist es eig möglich auch die aktuelle Position auszulesen und ggf. dann auch sagen kann, Fahre zu XY, so dass man zwischen z.B. 2 Positionen hin und her fahren kann?
Danke und einen schönen Tag
Hi,
beim GWv3 ist die China Cloud egal. Wenn man das Gateway auf der richtigen Firmware hat (bei neueren Modellen muss man glaube ich löten) greift man direkt auf die Ausgaben vom Xiaomi Prozess auf dem Teil drauf. Da kann die Verbindung zum Internet weg sein und trotzdem geht alles :)
Bei den Cams geht die Steuerung links/rechts/oben/unten. Somit kann man die Cam beliebig positionieren.
Achja, noch zur Info, es gibt nun ein
update_functions
Attribut :)
Da kannst du z.B. beim Saugroboter auch einstellen, dass alle 60s auch andere Werte gelesen werden sollen.
Beispiel
attr dev update_functions status:60,info:30
Bedeutet alle 60s ein status senden und alle 30s ein info.
Zitat von: dominik am 04 Dezember 2020, 23:41:11
beim GWv3 ist die China Cloud egal. Wenn man das Gateway auf der richtigen Firmware hat (bei neueren Modellen muss man glaube ich löten) greift man direkt auf die Ausgaben vom Xiaomi Prozess auf dem Teil drauf. Da kann die Verbindung zum Internet weg sein und trotzdem geht alles :)
Dann bin ich dabei!
Also ohne CHina Cloud würde ich mich über ein solches Modul freuen. =)
Ich gehe mal davon aus, dass das v3 ist?
https://www.banggood.com/Xiaomi-Multimode-ZigBee-3_0-WIFI-Bluetooth-Mesh-HomeKit-Smart-Home-Gateway-Compatible-with-Xiaomi-Zigbee-2_0-Security-Alarm-Accessories-p-1607834.html?cur_warehouse=CN&rmmds=buy
Zitat von: dominik am 04 Dezember 2020, 23:41:11
Bei den Cams geht die Steuerung links/rechts/oben/unten. Somit kann man die Cam beliebig positionieren.
Ok, das klappt so weit; zu wissen, wohin die Cam gerichtet ist schint dann wohl nicht zu gehen.
Danke =)
Den bekommst du bei Aliexpress um einiges günstiger. Im Normalfall knappe 20€.
Bitte beachte, dass man bei neuen Firmware Versionen eventuell einmal löten muss.
Siehe hier:
https://github.com/AlexxIT/XiaomiGateway3#supported-firmwares
und hier:
https://github.com/AlexxIT/XiaomiGateway3/issues/87#issuecomment-719467858
Zitat von: dominik am 05 Dezember 2020, 12:33:52
Den bekommst du bei Aliexpress um einiges günstiger. Im Normalfall knappe 20€.
Bitte beachte, dass man bei neuen Firmware Versionen eventuell einmal löten muss.
Danke, naja Ali braucht bei mir immer 2 bis 4 Wochen, Banggood ist in der Regel nach ca. 7 bis 14 Tagen da. =)
Ja gut, ich bin vom Fach, also geht das schon, Danke für den Hinweis. =D
2-4 Wochen? Bei mir 2-4 Monate! :)
Hallo in die Runde,
wegen dieses Threads habe ich mir einen "Xiaomi Mi Robot Vacuum Mop Pro Saugroboter mit Wischfunktion" gekauft, seit gestern ist er hier. Dank der PN-Hilfe von @Stelaku ist der Saugroboter (der noch keinen Millimeter saugte) schon fein in FHEM eingebunden und liefert artig readings. - Ich möchte mich zunächst herzlich und artig bedanken!
@dominik
Von Python habe ich so gar keine Ahnung. Folgendes ist passiert: Beim letzten Update gab es auch ein Update Deines Moduls - inklusive folgender Meldung:
2020.12.06 01:33:57.198 1 : 2020-12-03: !!!UPDATE YOUR fhem_pythonbinding.service WITH fhempy.service FILE!!!
Ähmm, ja, nix verstehn. Was muss ich denn da konkret machen?
Nichts, das betrifft nur diejenigen die fhempy auf Remote Peers verwenden.
Hallo Dominik
Ich habe heute ein update in Fhem gefahren. Danach scheint der set status Befehl keine events mehr zu erzeugen. Ich habe ein DOIF was auf Docked reagieren soll. Vor dem update hat sich nach jedem set status der state des Xiaomi WiFi Devices aktualisiert. Auch die neue Funktion mit dem attr update_function zeigt keine reaktion bei der Eingabe status:30.
Im Pyhton log steht dann dieses
2020-12-07 15:17:46,912 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:119> exception=AttributeError("'NoneType' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 164, in send_command
if reply.lower() != "['ok']":
AttributeError: 'NoneType' object has no attribute 'lower'
2020-12-07 15:17:55,453 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 314, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 1857760)
2020-12-07 15:18:05,399 - ERROR - miio.miioprotocol: Got error when receiving: timed out
2020-12-07 15:18:05,400 - ERROR - lib.utils: Error in asyncio thread
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 192, in send
data, addr = s.recvfrom(1024)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 192, in send
data, addr = s.recvfrom(1024)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 192, in send
data, addr = s.recvfrom(1024)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 192, in send
data, addr = s.recvfrom(1024)
socket.timeout: timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 29, in run_blocking
Und wenn ich den Sauger aus der Ladestation per move Forward 2 herausfahren lasse und danach den set status Befehl gebe bekomme ich in der Fhem Ansicht ein pop up mit folgenden inhalt
Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 314, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
Ich hoffe das hilft etwas weiter.
Viele Grüße
Stephan
Danke für die Logos, ich schau mir das heute Abend an.
Ich glaub ich habe die beiden Fehler lokalisiert. Update folgt...
Bzgl. der Readings, diese werden nun erst bei Änderungen aktualisiert.
Aktualisiert, bitte um Test. Danke
Hallo Dominik
Update durchgeführt leider ist das Problem immer noch da. Nach einen Move Forward Befehl mit anschliessenden set status Befehl bleibt der Status auf Docked stehen und es wird die
Pop up Meldung direkt über FHEM angezeigt. Auf der älteren Version wird nach Eingabe des move Befehl der Status des Saugers auf online gesetzt. Danach einen set status ohne Probleme.
Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
Und im Pyhton Log
2020-12-07 21:04:20,853 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 81736420)
2020-12-07 21:04:29,091 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 39400711)
2020-12-07 21:05:01,061 - INFO - lib.pkg_installer: Attempting install of fhempy
2020-12-07 21:05:08,733 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<PyBinding.onMessage() done, defined at /opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py:108> exception=SystemExit(1)>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 110, in onMessage
await self._onMessage(payload)
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 361, in _onMessage
raise se
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 143, in _onMessage
sys.exit(1)
SystemExit: 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
self._run_once()
File "/usr/lib/python3.7/asyncio/base_events.py", line 1775, in _run_once
handle._run()
File "/usr/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 112, in onMessage
sys.exit(1)
SystemExit: 1
2020-12-07 21:05:09,997 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-07 21:05:19,026 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
##############################################################################
Das wird ins Log geschrieben wenn die pop up Fehlermeldung von Fhem beim set status
2020-12-07 21:13:32,409 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
Gruß
Stephan
Passiert das nur wenn du vorher ein andere Command mit Parametern ausgeführt hast? Oder jedes mal wenn du ein "set dev status" machst?
Der Sauger steht in der Ladestation. Ist auch vom Device auf Docked. Wenn ich jetzt über Fhem move Forward mache fährt der Sauger los wie er soll. Die Statusanzeige bleibt auf Docked.
Wenn ich jetzt einen set status mache wird dieser nicht mehr umgesetzt und es kommen die Fehlermeldungen.
Also ja immer nur wenn ich ein Command mit Parameter ausgeführt habe und danach set dev status mache.
Nutzt du fhempy lokal oder auf einem remote peer?
Hallo @dominik,
ich habe den gleichen Saugroboter wie @Stelaku und dank seiner Hilfe die weitgehend gleiche FHEM-Konfiguration. Roboter kam, ich baute alles, Roboter lieferte Werte. (Ich habe noch keine Steuerung.)
Letztmalig kamen Roboterdaten am 2020-12-06 frühmorgens. Nach dem Update (und dem zweiten Update) kommen keine Daten mehr.
local_pybinding ist "opened". Pythonbinding_0 ist active - aber "stopped". Ein start bzw. restart führt wieder zu "stopped".
Sage bitte, wenn ich konkrete Daten (lists, logs) zu liefern habe.
ZitatNutzt du fhempy lokal oder auf einem remote peer?
Hallo Dominik
Wenn ich das mit den remote peer richtig verstanden habe ist der dann auf einer zweiten Fhem instanz um eventuelle bluetooth Reichweiten zu erhöhen. Das habe ich bei mir nicht bewusst so aufgebaut.
Was ich allerdings habe sind zwei Raspberry´s die parallel laufen, auf einem ist meine live Instanz und auf dem anderen meine test Instanz.Um sicher zu gehen habe ich das nochmal durchgespielt, aber diesmal mit ausgeschalteter live Instanz ( Raspberry kpl. heruntergefahren )wo ich noch die voll funktionierende fempy drauf habe.
Der Fehler ist aber auch dann noch erzeugbar. Nach einen set <dev> move Forward 4 und dann set <dev> status kommt das pop up und der log Eintrag.
Viele Grüsse und vielen dank für Deine hilfe
Stephan
@curt, das Pythonbinding_0 kannst du löschen. Da ist mir leider ein Fehler passiert, das hatte ich gestern Nacht bei mir auch gesehen.
Poste bitte das Log aus dem Pythonbinding_15733.
@Stelaku, ich hatte bei dir diesen Eintrag im Log gesehen:
2020-12-07 21:05:01,061 - INFO - lib.pkg_installer: Attempting install of fhempy
Das sollte eigentlich auf einer FHEM Instanz nie passieren, daher dachte ich du bist auf einem Remote Peer. Remote Peers sind Installationen auf einem anderen Device (ohne FHEM!) um z.B. die Bluetooth Reichweite abdecken zu können. Hast du im BindingsIo Device ein "update" Command?
Ich schaffe es leider nicht den Fehler auf einem Xiaomi Vacuum V1 nachzustellen. Bitte auch um Pruefung im "BindingsIo" Device welche Version von fhempy verwendet wird, gibt ein Reading dazu. Es sollte 0.1.5 sein.
Hallo Dominik
Hier mal ein list vom BindingIO
Internals:
BindingType Python
DEF Python
DeviceName ws:127.0.0.1:15733
FD 59
FUUID 5fc15efa-f33f-134a-1b8c-a3eef5b8285f7763
IP 127.0.0.1
NAME local_pybinding
NR 439
NTFY_ORDER 50-local_pybinding
PARTIAL
PORT 15733
STATE opened
TYPE BindingsIo
WEBSOCKET 1
localBinding 1
nextOpenDelay 10
READINGS:
2020-12-08 14:45:28 state opened
2020-12-08 07:05:03 version 0.1.5
args:
local_pybinding
BindingsIo
Python
argsh:
Attributes:
room system
Version scheint aktuell zu sein aber ein update Command habe ich nicht in diesem Device.
Gruß
Stephan
Zitat von: dominik am 08 Dezember 2020, 08:40:32
@curt, das Pythonbinding_0 kannst du löschen.
Done.
Zitat von: dominik am 08 Dezember 2020, 08:40:32
Poste bitte das Log aus dem Pythonbinding_15733.
Dafür müsste ich erstmal ein Log haben ... ok, bauen wir eins. Und verbose=5 noch an. Und restart:
2020-12-08_15:22:30 local_pybinding DISCONNECTED
BTW: am 06.12. funktionierte es ja noch, es muss also in der Code-Differenz des vorletzten Updates liegen.
@curt, Log wird automatisch erstellt. /opt/fhem/log/PythonBinding-...
@Stelaku, sieht alles gut aus. Einen Neustart von FHEM hast du denke ich schon gemacht? Wenn nicht, bitte mal das testen.
Zitat von: dominik am 08 Dezember 2020, 15:36:27
@curt, Log wird automatisch erstellt. /opt/fhem/log/PythonBinding-...
Das heutige Log ist 2,5 MB ... bzip2 in Anlage.
Zitat@Stelaku, sieht alles gut aus. Einen Neustart von FHEM hast du denke ich schon gemacht? Wenn nicht, bitte mal das testen.
Hallo Dominik
FHEM Neustart und auch den Raspberry neustarten hat nichts gebracht. Die Meldung kommt wieder.
Ich habe dann mal auf meiner Test Instanz Fhem heruntergefahren das Fhem Verzeichnis kpl. gelöscht und ein backup aus meiner live Instanz eingespielt.
sudo rm -r /opt/fhem
sudo mkdir /opt/fhem
sudo tar -xvzf /media/Medion/Linux/"$Version"/FHEM/"$Datei" -C /opt/fhem/
sudo chown -R fhem:dialout /opt/fhem
Fhem neu gestartet und BindingIO bleibt auf diconnected. das Verzeichnis .local wurde auch nicht angelegt. Im log stand dann drinn das es ein Berechtigungsproblem gibt. Dieses wurde durch ein reboot des pi´s behoben.
Nachdem FHEM dann hochgefahren ist wurde .local angelegt und BindingIO ging auf open.
Über FHEM ein update gefahren. shutdown restart und dann feststellen können das der move Befehl nicht angenommen wird.
Das selbe hatte ich ja schon und habe dann die Datei viomivacuum.py durch die Datei aus post 12 ersetzt.
Move Befehle werden jetzt wieder angenommen und clean_mode ist wieder per drop down auswählbar. Nur die besagte Meldung kommt immer noch.
Ist jetzt nicht so schlimm. Das was ich brauche funktioniert ja schon super.
Ich bin mir auch nicht sicher ob ich das alles richtig mache mit den backup einspielen und vorher das fhem Verzeichnis löschen... .
Viele Grüße
Stephan
Zitat von: curt am 08 Dezember 2020, 17:43:56
Das heutige Log ist 2,5 MB ... bzip2 in Anlage.
Hi,
bei dir läuft fhempy schon. Hast du vielleicht fhempy per pip installiert? Das darf nur auf Remote Peers gemacht werden.
Zitat von: Stelaku am 08 Dezember 2020, 18:41:45
Hallo Dominik
FHEM Neustart und auch den Raspberry neustarten hat nichts gebracht. Die Meldung kommt wieder.
Ich habe dann mal auf meiner Test Instanz Fhem heruntergefahren das Fhem Verzeichnis kpl. gelöscht und ein backup aus meiner live Instanz eingespielt.
sudo rm -r /opt/fhem
sudo mkdir /opt/fhem
sudo tar -xvzf /media/Medion/Linux/"$Version"/FHEM/"$Datei" -C /opt/fhem/
sudo chown -R fhem:dialout /opt/fhem
Fhem neu gestartet und BindingIO bleibt auf diconnected. das Verzeichnis .local wurde auch nicht angelegt. Im log stand dann drinn das es ein Berechtigungsproblem gibt. Dieses wurde durch ein reboot des pi´s behoben.
Nachdem FHEM dann hochgefahren ist wurde .local angelegt und BindingIO ging auf open.
Über FHEM ein update gefahren. shutdown restart und dann feststellen können das der move Befehl nicht angenommen wird.
Das selbe hatte ich ja schon und habe dann die Datei viomivacuum.py durch die Datei aus post 12 ersetzt.
Move Befehle werden jetzt wieder angenommen und clean_mode ist wieder per drop down auswählbar. Nur die besagte Meldung kommt immer noch.
Ist jetzt nicht so schlimm. Das was ich brauche funktioniert ja schon super.
Ich bin mir auch nicht sicher ob ich das alles richtig mache mit den backup einspielen und vorher das fhem Verzeichnis löschen... .
Viele Grüße
Stephan
Keine Sorge, so schnell gebe ich nicht auf ;) Nachdem da definitiv irgendwo ein Fehler drin ist, möchte ich das gerne beheben.
Bitte noch um Info ob du fhempy per pip installiert hast, oder alles nur per FHEM update? Weil eine pip Installation darf nur auf Remote Peers gemacht werden.
Schick mir bitte das PythonBinding Log von Start weg. Mach da bitte mal nur "status" (welches funktioniert), danach move und danach wieder status. Du kannst mir das Log auch per PN schicken falls du mehr PythonModule Devices nutzt und daher Sorge hast, dass da sensible Infos drin sind.
Zitat von: dominik am 08 Dezember 2020, 19:57:49
Hast du vielleicht fhempy per pip installiert? Das darf nur auf Remote Peers gemacht werden.
Ich weiß bedauerlicherweise nicht was das bedeutet. Ich habe entsprechend https://github.com/dominikkarall/fhem_pythonbinding installiert. Danach "define local_pybinding BindingsIo Python", "define xiaomi_tokens PythonModule xiaomi_tokens", "define Putzi_1 PythonModule miio <TYPE> <IP> <TOKEN>".
Das hatte ja auch alles (den einen Tag bis zum Update) ganz fein funktioniert: In Putzi standen viele schöne Readings ...
Ok, dann mach bitte mal ein
sudo -u fhem pip3 uninstall fhempy
sudo pip3 uninstall fhempy
Dann poste bitte nochmals welche PythonBinding Devices du hast.
ZitatBitte noch um Info ob du fhempy per pip installiert hast, oder alles nur per FHEM update? Weil eine pip Installation darf nur auf Remote Peers gemacht werden.
Schick mir bitte das PythonBinding Log von Start weg. Mach da bitte mal nur "status" (welches funktioniert), danach move und danach wieder status. Du kannst mir das Log auch per PN schicken falls du mehr PythonModule Devices nutzt und daher Sorge hast, dass da sensible Infos drin sind.
Hallo Dominik
Ich habe fempy nach der Anleitung fempy in 5 Schritten installieren in mein System eingebunden. Das einzige was bei mir am Anfang nicht klappen wollte das BinidingIO blieb auf disconnected.
Da hattest Du ja im log sehen können das ein Modul noch fehlte was normal automatisch installiert werden sollte. nach diesem Befehl war das dann auch in Ordnung
sudo pip3 install importlib_metadata
fempy selber habe ich ausschließlich über den Fhem update Befehl installiert.
Hier mein Log vom Heutigen Tag. Zum Ende habe ich versucht alle Schritte die ich ausgeführt habe im Log zu kommentieren.
Das klappt irgentwie nicht mit dem log ich sende es per pm
2020-12-08 16:47:16,681 - INFO - __main__: Attempting install of websockets
2020-12-08 16:47:24,905 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
2020-12-08 16:47:44,321 - INFO - __main__: Attempting install of websockets
2020-12-08 16:47:51,410 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
2020-12-08 16:48:11,311 - INFO - __main__: Attempting install of websockets
2020-12-08 16:48:18,351 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
2020-12-08 16:48:38,312 - INFO - __main__: Attempting install of websockets
2020-12-08 16:48:45,422 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
2020-12-08 16:49:05,313 - INFO - __main__: Attempting install of websockets
2020-12-08 16:49:12,412 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
2020-12-08 16:49:32,318 - INFO - __main__: Attempting install of websockets
2020-12-08 16:49:39,441 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
2020-12-08 16:49:59,286 - INFO - __main__: Attempting install of websockets
2020-12-08 16:50:06,428 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
2020-12-08 16:50:26,284 - INFO - __main__: Attempting install of websockets
2020-12-08 16:50:33,430 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
2020-12-08 16:50:53,297 - INFO - __main__: Attempting install of websockets
2020-12-08 16:51:00,397 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
2020-12-08 16:51:20,306 - INFO - __main__: Attempting install of websockets
2020-12-08 16:51:27,377 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
2020-12-08 16:51:47,323 - INFO - __main__: Attempting install of websockets
2020-12-08 16:51:54,391 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
2020-12-08 16:52:31,684 - INFO - __main__: Attempting install of websockets
2020-12-08 16:53:08,357 - INFO - __main__: Successfully installed websockets
Traceback (most recent call last):
File "FHEM/bindings/python/pythonbinding.py", line 79, in <module>
import lib.fhem_pythonbinding as fpb
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 3, in <module>
import websockets
ModuleNotFoundError: No module named 'websockets'
2020-12-08 16:53:28,953 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-08 16:53:31,017 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-12-08 16:53:31,093 - INFO - lib.pkg_installer: Attempting install of python-miio
2020-12-08 16:53:59,288 - INFO - lib.pkg_installer: Attempting install of micloud
2020-12-08 16:56:10,303 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-08 16:56:15,937 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-12-08 16:56:32,485 - ERROR - lib.fhem: Timeout - NO RESPONSE for command: readingsBulkUpdateIfChanged($defs{'Martha_1'},'state','ViomiVacuumState.Docked');;
#########################################################################
2020-12-08 17:13:41,430 - ERROR - lib.utils: Error in asyncio thread
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 29, in run_blocking
return await asyncio.get_event_loop().run_in_executor(pool, function)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/viomivacuum.py", line 372, in move
self.send("set_direction", [direction.value])
AttributeError: 'str' object has no attribute 'value'
2020-12-08 17:13:41,434 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'str' object has no attribute 'value'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 137, in send_command
reply = await utils.run_blocking(functools.partial(fct, *args))
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 29, in run_blocking
return await asyncio.get_event_loop().run_in_executor(pool, function)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/viomivacuum.py", line 372, in move
self.send("set_direction", [direction.value])
AttributeError: 'str' object has no attribute 'value'
2020-12-08 17:54:19,749 - INFO - __main__: Attempting install of websockets
2020-12-08 17:54:27,731 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
2020-12-08 17:54:47,346 - INFO - __main__: Attempting install of websockets
2020-12-08 17:54:54,439 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
2020-12-08 17:56:17,640 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-08 17:56:22,765 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-12-08 17:56:45,031 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:46,344 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:46,857 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:47,069 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:47,269 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:47,483 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:47,572 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:47,775 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:47,984 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:48,207 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:48,416 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:48,623 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:48,783 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:48,935 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:49,123 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:49,345 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:49,516 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:49,721 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:49,935 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:50,135 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:50,329 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:50,549 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:51,004 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:51,420 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:51,824 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:52,207 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:52,593 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:52,997 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:53,408 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:53,871 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:54,387 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:54,600 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:54,804 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:54,998 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:55,176 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:55,359 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:55,965 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:56,189 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:56,397 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:56,601 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:56,805 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:57,010 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:57,203 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:57,412 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:57,611 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:57,784 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:57,986 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:58,148 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:58,325 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:58,518 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:58,722 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:58,915 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:59,682 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:56:59,901 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:57:00,085 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:57:00,319 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:57:00,492 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:57:00,701 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:57:03,248 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:57:03,787 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:57:03,965 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
2020-12-08 17:57:04,164 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
##############################################################
2020-12-08 18:01:59,055 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"]] = arg
KeyError: 'args'
(id: 85047059)
2020-12-08 18:02:11,911 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"]] = arg
KeyError: 'args'
(id: 73678399)
2020-12-08 18:02:52,982 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"]] = arg
KeyError: 'args'
(id: 94608096)
2020-12-08 18:02:55,675 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"]] = arg
KeyError: 'args'
(id: 21434510)
2020-12-08 18:03:04,658 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"]] = arg
KeyError: 'args'
(id: 27677692)
2020-12-08 18:03:09,557 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"]] = arg
KeyError: 'args'
(id: 86062285)
2020-12-08 18:14:20,262 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"]] = arg
KeyError: 'args'
(id: 25430531)
##
2020-12-08 19:02:08,114 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
## Fhem für den test hochgefahren
2020-12-08 20:50:32,253 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
## mehrer set status ausgelöst ohne Fehlermeldungen
## das erste set status nach einem move befehl
2020-12-08 20:55:44,098 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"]] = arg
KeyError: 'args'
(id: 84850625)
## set status mit fehlermeldung
2020-12-08 20:56:44,986 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"]] = arg
KeyError: 'args'
(id: 93904326)
## Sauger über app zur Ladestation geschickt und dann set status ausgelöst
2020-12-08 21:00:34,262 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"]] = arg
KeyError: 'args'
(id: 72265899)
## kurz darauf nochmal set status ausgelöst
2020-12-08 21:00:37,341 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 168, in handle_set
Ich habe das Log mal hier reinkopiert, damit wir hier weiter diskutieren können.
//Edit: Scheinbar das Post Zeichenlimit erreicht...Fortsetzung im nächsten Post.
2020-12-08 16:47:24,905 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
Das ist sehr eigenartig, kannst du mir sagen was du da gemacht hast? Weil auf /root sollte niemals zugegriffen werden.
2020-12-08 17:56:46,344 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/FHEM/bindings/python/lib/miio/miio.py:117> exception=AttributeError("'list' object has no attribute 'lower'")>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/miio/miio.py", line 163, in send_command
if reply is not None and reply.lower() != "['ok']":
AttributeError: 'list' object has no attribute 'lower'
Den werde ich beheben.
Öffne bitte mal die Datei:
/opt/fhem/FHEM/bindings/python/lib/miio/miio.py
Dann in Zeile 168 folgendes einfügen:
logging.getLogger(__name__).error("Handle argument: " + str(arg))
Sieht dann so aus:
for arg in args[2:]:
# arg ... mode
# all_args[mode] = mode argument
logging.getLogger(__name__).error("Handle argument: " + str(arg))
all_args[cmd_def["args"][i]] = arg
i += 1
Dann bitte fhem Neustart machen und nochmals testen. Bitte dann nochmals das PythonBinding Log posten, aber nur den Fehlerteil inkl. der Ausgabe von "Handle argument".
Zitat von: dominik am 08 Dezember 2020, 21:39:27
Ok, dann mach bitte mal ein
sudo -u fhem pip3 uninstall fhempy
sudo pip3 uninstall fhempy
Dann poste bitte nochmals welche PythonBinding Devices du hast.
$ sudo -u fhem pip3 uninstall fhempy
Uninstalling fhempy-0.1.5:
Would remove:
/opt/fhem/.local/bin/fhempy
/opt/fhem/.local/lib/python3.7/site-packages/fhempy-0.1.5.dist-info/*
/opt/fhem/.local/lib/python3.7/site-packages/lib/*
Proceed (y/n)? y
Successfully uninstalled fhempy-0.1.5
$ sudo pip3 uninstall fhempy
Skipping fhempy as it is not installed.
Hier vorhanden sind: BindingsIo local_pybinding (disconnected),
Putzi_1 (PythonBinding offline), xiaomi_tokens (PythonBinding offline).
Screenshot Putzi_1 anbei.
Was muss ich nun tun?
ok, dann mach jetzt bitte einen FHEM Restart.
Hallo Dominik
ZitatDas ist sehr eigenartig, kannst du mir sagen was du da gemacht hast? Weil auf /root sollte niemals zugegriffen werden.
Das passiert nachdem ich ein backup eingespielt habe. Verschwindet dann auch erst nach einem raspberry reboot. Das Backup spiele ich immer so ein
sudo rm -r /opt/fhem
sudo mkdir /opt/fhem
sudo tar -xvzf /media/Medion/Linux/"$Version"/FHEM/"$Datei" -C /opt/fhem/
sudo chown -R fhem:dialout /opt/fhem
das Verzeichnis .local wird auch nicht beim Fhem backup mit kopiert. Erst nach einen Reboot wird es durch das device BindingIO angelegt. Vieleicht deshalb die Berechtigungsprobleme.
ZitatÖffne bitte mal die Datei:
/opt/fhem/FHEM/bindings/python/lib/miio/miio.py
Dann in Zeile 168 folgendes einfügen:
Diese Datei hat bei mir nur 168 Zeilen. Wenn ich dich richtig verstehe soll ich doch nur die eine Zeile einfügen. bei meiner Datei fehlt die die for schleife for arg in args[2:]:
Soll ich einfach mal das an meiner datei anfügen.
for arg in args[2:]:
# arg ... mode
# all_args[mode] = mode argument
logging.getLogger(__name__).error("Handle argument: " + str(arg))
all_args[cmd_def["args"][i]] = arg
i += 1
Gruß
Stephan
Sorry, ich meinte diese Datei:
/opt/fhem/FHEM/bindings/python/lib/utils.py
Zitat von: dominik am 08 Dezember 2020, 23:41:25
ok, dann mach jetzt bitte einen FHEM Restart.
Done. (Keine Änderung.)
Was muss ich nun tun?
ZitatSorry, ich meinte diese Datei:
/opt/fhem/FHEM/bindings/python/lib/utils.py
Hallo Dominik
Datei habe ich jetzt geändert. Hier mein heutiges Log. Ich habe alle schritte die ich gemacht habe im Log kommentiert.
Nach der Änderung in der Datei hatte ich wieder den Eintrag keine Berechtigung im Log siehe Eintrag 15:43:15.
Das BindingIO blieb dann auch auf disconected. Erst nach einen reboot ging es wieder.
2020-12-08 22:03:29,520 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-09 06:46:53,348 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-12-09 06:56:01,617 - INFO - lib.pkg_installer: Attempting install of fhempy
2020-12-09 06:56:11,108 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<PyBinding.onMessage() done, defined at /opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py:108> exception=SystemExit(1)>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 110, in onMessage
await self._onMessage(payload)
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 361, in _onMessage
raise se
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 143, in _onMessage
sys.exit(1)
SystemExit: 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
self._run_once()
File "/usr/lib/python3.7/asyncio/base_events.py", line 1775, in _run_once
handle._run()
File "/usr/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 112, in onMessage
sys.exit(1)
SystemExit: 1
2020-12-09 06:56:12,387 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-09 06:56:22,031 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-12-09 07:16:28,866 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-09 15:26:57,652 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-12-09 15:40:39,420 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-09 15:40:45,083 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
## Änderung an der Datei /opt/fhem/FHEM/bindings/python/lib/utils.py jetzt neustart
2020-12-09 15:43:07,847 - INFO - __main__: Attempting install of websockets
2020-12-09 15:43:15,568 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
## Raspberry pi Reboot weil BindingIO disconected
2020-12-09 15:46:48,469 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-09 15:47:17,058 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
## move Forward 4
2020-12-09 15:48:52,084 - ERROR - lib.utils: Handle argument: Forward
2020-12-09 15:48:52,085 - ERROR - lib.utils: Handle argument: 4
## set status das erste mal kein eintrag ins log
## set status das zweite mal
2020-12-09 15:50:06,367 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 15:50:06,377 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 6614412)
## set home
## move Befehle Sauger fährt zum Mülleimer
2020-12-09 15:53:07,930 - ERROR - lib.utils: Handle argument: Vacuum
2020-12-09 15:53:12,991 - ERROR - lib.utils: Handle argument: Silent
2020-12-09 15:54:47,063 - ERROR - lib.utils: Handle argument: Forward
2020-12-09 15:54:47,063 - ERROR - lib.utils: Handle argument: 5
2020-12-09 15:54:55,131 - ERROR - lib.utils: Handle argument: Right
2020-12-09 15:54:55,131 - ERROR - lib.utils: Handle argument: 0.82
2020-12-09 15:54:58,998 - ERROR - lib.utils: Handle argument: Forward
2020-12-09 15:54:58,999 - ERROR - lib.utils: Handle argument: 15
2020-12-09 15:55:17,045 - ERROR - lib.utils: Handle argument: Right
2020-12-09 15:55:17,045 - ERROR - lib.utils: Handle argument: 0.85
2020-12-09 15:55:20,943 - ERROR - lib.utils: Handle argument: Forward
2020-12-09 15:55:20,943 - ERROR - lib.utils: Handle argument: 9
2020-12-09 15:55:32,992 - ERROR - lib.utils: Handle argument: Right
2020-12-09 15:55:32,993 - ERROR - lib.utils: Handle argument: 3
## set status Befehl
## set status auch nach mehrmaligen klicken jetzt kein log eintrag
## set home und wärend der fahrt auf set status geklickt kein log
## Sauger state Docked jetzt wieder einen move Befehl
2020-12-09 15:59:39,862 - ERROR - lib.utils: Handle argument: Forward
2020-12-09 15:59:39,863 - ERROR - lib.utils: Handle argument: 5
## set status
## set status log eintrag kommt erst beim zweiten klick
## und das state bleibt immer auf Docked
2020-12-09 16:00:15,111 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:00:15,112 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 55497932)
## jetzt set start
## Sauger legt los und das state geht auf cleaning
## set status funktioniert ohne log eintrag
## sauger stopen
## set move
2020-12-09 16:04:09,293 - ERROR - lib.utils: Handle argument: Forward
2020-12-09 16:04:09,293 - ERROR - lib.utils: Handle argument: 4
## set status der aktuell angezeigte ist Idle
## set status erst beim zweiten klicken auf set kam die Meldung über Fhem
2020-12-09 16:04:58,909 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:04:58,911 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 35962919)
## set home kein log Eintrag
## move über die Handy app
## jetzt set status
2020-12-09 16:10:40,189 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:10:40,190 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 18054667)
## state bleibt auf Docked und die Meldung in Fhem wird angezeigt
## set state nachdem ich die Handy app ausgeschaltet habe Fernbedinung.
2020-12-09 16:12:35,123 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:12:35,125 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 95381176)
## jetzt per app saugen starten
2020-12-09 16:13:53,697 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:13:53,698 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 46661273)
## jetzt per app zum laden fahren
## das state im device wird auf Returning gestellt.
## wärend der fahrt zur ladestation ein set status erzeugt wieder die Meldung
2020-12-09 16:14:49,135 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:14:49,137 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 78238621)
## Sauger ist Docked jetzt ein set status
2020-12-09 16:16:33,338 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:16:33,339 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 41488255)
## Jetzt über Fhem starten
## jetzt funktioniert set state wieder ohne Log eintrag
## über app auf pause
## set status device zeigt immer noch Cleaning
## state des device geht auf Idle2
## move Befehl über FHEM
2020-12-09 16:20:49,531 - ERROR - lib.utils: Handle argument: Left
2020-12-09 16:20:49,532 - ERROR - lib.utils: Handle argument: 4
## Sauger ist schlecht geworden
## set status erster klick keine Änderung im device
## set status zweiter klick
2020-12-09 16:22:24,753 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:22:24,755 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 4309912)
Viele Grüße
Stephan
Zitat von: curt am 09 Dezember 2020, 09:01:12
Done. (Keine Änderung.)
Was muss ich nun tun?
Bitte nochmals um das Logfile nach dem Restart. Poste bitte auch die Ausgabe von
ps -efa|grep python
Zitat von: Stelaku am 09 Dezember 2020, 16:34:08
Hallo Dominik
Datei habe ich jetzt geändert. Hier mein heutiges Log. Ich habe alle schritte die ich gemacht habe im Log kommentiert.
Nach der Änderung in der Datei hatte ich wieder den Eintrag keine Berechtigung im Log siehe Eintrag 15:43:15.
Das BindingIO blieb dann auch auf disconected. Erst nach einen reboot ging es wieder.
2020-12-08 22:03:29,520 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-09 06:46:53,348 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-12-09 06:56:01,617 - INFO - lib.pkg_installer: Attempting install of fhempy
2020-12-09 06:56:11,108 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<PyBinding.onMessage() done, defined at /opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py:108> exception=SystemExit(1)>
Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 110, in onMessage
await self._onMessage(payload)
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 361, in _onMessage
raise se
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 143, in _onMessage
sys.exit(1)
SystemExit: 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
self._run_once()
File "/usr/lib/python3.7/asyncio/base_events.py", line 1775, in _run_once
handle._run()
File "/usr/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 112, in onMessage
sys.exit(1)
SystemExit: 1
2020-12-09 06:56:12,387 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-09 06:56:22,031 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-12-09 07:16:28,866 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-09 15:26:57,652 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-12-09 15:40:39,420 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-09 15:40:45,083 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
## Änderung an der Datei /opt/fhem/FHEM/bindings/python/lib/utils.py jetzt neustart
2020-12-09 15:43:07,847 - INFO - __main__: Attempting install of websockets
2020-12-09 15:43:15,568 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
## Raspberry pi Reboot weil BindingIO disconected
2020-12-09 15:46:48,469 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-09 15:47:17,058 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
## move Forward 4
2020-12-09 15:48:52,084 - ERROR - lib.utils: Handle argument: Forward
2020-12-09 15:48:52,085 - ERROR - lib.utils: Handle argument: 4
## set status das erste mal kein eintrag ins log
## set status das zweite mal
2020-12-09 15:50:06,367 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 15:50:06,377 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 6614412)
## set home
## move Befehle Sauger fährt zum Mülleimer
2020-12-09 15:53:07,930 - ERROR - lib.utils: Handle argument: Vacuum
2020-12-09 15:53:12,991 - ERROR - lib.utils: Handle argument: Silent
2020-12-09 15:54:47,063 - ERROR - lib.utils: Handle argument: Forward
2020-12-09 15:54:47,063 - ERROR - lib.utils: Handle argument: 5
2020-12-09 15:54:55,131 - ERROR - lib.utils: Handle argument: Right
2020-12-09 15:54:55,131 - ERROR - lib.utils: Handle argument: 0.82
2020-12-09 15:54:58,998 - ERROR - lib.utils: Handle argument: Forward
2020-12-09 15:54:58,999 - ERROR - lib.utils: Handle argument: 15
2020-12-09 15:55:17,045 - ERROR - lib.utils: Handle argument: Right
2020-12-09 15:55:17,045 - ERROR - lib.utils: Handle argument: 0.85
2020-12-09 15:55:20,943 - ERROR - lib.utils: Handle argument: Forward
2020-12-09 15:55:20,943 - ERROR - lib.utils: Handle argument: 9
2020-12-09 15:55:32,992 - ERROR - lib.utils: Handle argument: Right
2020-12-09 15:55:32,993 - ERROR - lib.utils: Handle argument: 3
## set status Befehl
## set status auch nach mehrmaligen klicken jetzt kein log eintrag
## set home und wärend der fahrt auf set status geklickt kein log
## Sauger state Docked jetzt wieder einen move Befehl
2020-12-09 15:59:39,862 - ERROR - lib.utils: Handle argument: Forward
2020-12-09 15:59:39,863 - ERROR - lib.utils: Handle argument: 5
## set status
## set status log eintrag kommt erst beim zweiten klick
## und das state bleibt immer auf Docked
2020-12-09 16:00:15,111 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:00:15,112 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 55497932)
## jetzt set start
## Sauger legt los und das state geht auf cleaning
## set status funktioniert ohne log eintrag
## sauger stopen
## set move
2020-12-09 16:04:09,293 - ERROR - lib.utils: Handle argument: Forward
2020-12-09 16:04:09,293 - ERROR - lib.utils: Handle argument: 4
## set status der aktuell angezeigte ist Idle
## set status erst beim zweiten klicken auf set kam die Meldung über Fhem
2020-12-09 16:04:58,909 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:04:58,911 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 35962919)
## set home kein log Eintrag
## move über die Handy app
## jetzt set status
2020-12-09 16:10:40,189 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:10:40,190 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 18054667)
## state bleibt auf Docked und die Meldung in Fhem wird angezeigt
## set state nachdem ich die Handy app ausgeschaltet habe Fernbedinung.
2020-12-09 16:12:35,123 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:12:35,125 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 95381176)
## jetzt per app saugen starten
2020-12-09 16:13:53,697 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:13:53,698 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 46661273)
## jetzt per app zum laden fahren
## das state im device wird auf Returning gestellt.
## wärend der fahrt zur ladestation ein set status erzeugt wieder die Meldung
2020-12-09 16:14:49,135 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:14:49,137 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 78238621)
## Sauger ist Docked jetzt ein set status
2020-12-09 16:16:33,338 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:16:33,339 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 41488255)
## Jetzt über Fhem starten
## jetzt funktioniert set state wieder ohne Log eintrag
## über app auf pause
## set status device zeigt immer noch Cleaning
## state des device geht auf Idle2
## move Befehl über FHEM
2020-12-09 16:20:49,531 - ERROR - lib.utils: Handle argument: Left
2020-12-09 16:20:49,532 - ERROR - lib.utils: Handle argument: 4
## Sauger ist schlecht geworden
## set status erster klick keine Änderung im device
## set status zweiter klick
2020-12-09 16:22:24,753 - ERROR - lib.utils: Handle argument: undefined
2020-12-09 16:22:24,755 - ERROR - lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/FHEM/bindings/python/lib/fhem_pythonbinding.py", line 320, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/FHEM/bindings/python/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/FHEM/bindings/python/lib/utils.py", line 169, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 4309912)
Viele Grüße
Stephan
Also irgendetwas stimmt da bei deiner Installation nicht....siehst du im BindingsIo Device ein "update"? Weil nur darueber kann dieser Logeintrag kommen
2020-12-09 06:56:01,617 - INFO - lib.pkg_installer: Attempting install of fhempy
Das hier
## Änderung an der Datei /opt/fhem/FHEM/bindings/python/lib/utils.py jetzt neustart
2020-12-09 15:43:07,847 - INFO - __main__: Attempting install of websockets
2020-12-09 15:43:15,568 - ERROR - __main__: Unable to install package websockets: The directory '/root/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/root/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
Ist mir auch unerklärlich. Websockts wird nur installiert wenn es nicht vorhanden ist, warum ist es vor dem Neustart vorhanden und danach nicht? Da muss doch mehr passiert sein.
Mit welchem User wird bei dir fhem ausgeführt? Außerdem müssten alle Dateien in /opt/fhem dem User fhem gehören, bitte das auch prüfen ("ls -la /opt/fhem/*").
2020-12-09 16:00:15,111 - ERROR - lib.utils: Handle argument: undefined
Wo das undefined herkommt, ist mir einfach noch nicht klar.
Konzentrieren wir uns mal auf den 1. Punkt und lösen den, damit wir hier nicht zu viel auf einmal versuchen.
Mach bitte ein
sudo -u fhem pip3 uninstall fhempy
und danach einen FHEM Neustart, dann poste nochmals das Log.
Hallo Dominik
Stephan@Haus:~ $ sudo -u fhem pip3 uninstall fhempy
Uninstalling fhempy-0.1.5:
Would remove:
/opt/fhem/.local/bin/fhempy
/opt/fhem/.local/lib/python3.7/site-packages/fhempy-0.1.5.dist-info/*
/opt/fhem/.local/lib/python3.7/site-packages/lib/*
Proceed (y/n)? y
Successfully uninstalled fhempy-0.1.5
Fhem shutdown restart
und jetzt das Log
2020-12-09 18:19:09,502 - INFO - lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-09 18:19:15,148 - INFO - lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
Im Device BindingIO habe ich kein update Command
ls -la /opt/fhem/
Stephan@Haus:~ $ ls -la /opt/fhem/
insgesamt 1316
drwxr-xr-x 18 fhem dialout 4096 Dez 8 16:53 .
drwxr-xr-x 4 root root 4096 Dez 8 16:46 ..
drwxr-xr-x 3 fhem dialout 4096 Dez 8 16:53 .cache
-rw-r--r-- 1 fhem dialout 354762 Dez 8 16:54 CHANGED
-rw-rw-rw- 1 fhem dialout 41442 Nov 27 21:15 configDB.pm
drwxrwxrwx 50 fhem dialout 4096 Mär 11 2017 contrib
-rw-r--r-- 1 fhem dialout 143698 Nov 28 2019 controls_fhem.txt
-rw-r--r-- 1 fhem dialout 18092 Nov 28 2019 COPYING
drwxrwxrwx 3 fhem dialout 4096 Mär 11 2017 demolog
drwxrwxrwx 4 fhem dialout 4096 Mär 11 2017 docs
drwxrwxrwx 7 fhem dialout 32768 Nov 27 21:16 FHEM
-rw-rw-rw- 1 fhem dialout 344381 Dez 9 15:37 fhem.cfg
-rw-rw-rw- 1 fhem dialout 25544 Dez 8 2019 fhem.cfg.demo
-rwxrwxrwx 1 fhem dialout 166203 Dez 8 16:54 fhem.pl
-rw-r--r-- 1 fhem dialout 18092 Nov 27 21:15 GPL_V2.txt
drwxr-xr-x 2 fhem dialout 4096 Nov 28 2019 GTags
-rw-r--r-- 1 fhem dialout 28513 Nov 28 2019 HISTORY
-rwxrwxrwx 1 fhem dialout 235 Jan 4 2019 lecron.sh
-rwxrwxrwx 1 fhem dialout 422 Jan 5 2019 lecron_tacktung.sh
-rwxrwxrwx 1 fhem dialout 399 Jan 4 2019 lescan.sh
drwxr-xr-x 3 fhem dialout 4096 Jul 22 19:47 lib
drwx------ 4 fhem dialout 4096 Dez 8 16:53 .local
drwxrwxrwx 2 fhem dialout 4096 Dez 9 18:29 log
-rw-r--r-- 1 fhem dialout 42672 Dez 8 16:54 MAINTAINER.txt
-rw-r--r-- 1 fhem dialout 5061 Nov 28 2019 Makefile
drwxr-xr-x 2 fhem dialout 4096 Nov 7 2019 Muellkalender
-rw-rw-rw- 1 fhem dialout 935 Nov 15 2015 README_DEMO.txt
-rw-r--r-- 1 fhem dialout 374 Nov 28 2019 README.SVN
drwxr-xr-x 7 fhem dialout 4096 Apr 10 2019 restoreDir
drwxr-xr-x 2 fhem dialout 4096 Apr 10 2019 skripte
drwxr-xr-x 3 fhem dialout 4096 Nov 18 14:42 t
-rw-r--r-- 1 fhem dialout 12 Mai 9 2017 test.sh
drwxr-xr-x 2 fhem dialout 4096 Mär 11 2017 unused
-rw-r--r-- 1 fhem dialout 1978 Nov 28 2019 UPGRADE
drwxr-xr-x 6 fhem dialout 4096 Nov 28 2019 webfrontend
drwxrwxrwx 8 fhem dialout 4096 Mär 11 2017 www
Ok, die Installation dürfte jetzt passen.
Bitte jetzt nochmals "status" abfragen und dazwischen über die App den Saugroboter bewegen um sicherzustellen, dass die Readings überhaupt aktualisiert werden.
Hallo Dominik
Wenn ich jetzt über Fhem oder über die app die Befehle wie z.b. starten pause stop home ausführe werden die readings immer neu geschrieben. Der set status funktioniert ohne Probleme.
Nur wenn ich jetzt den Sauger z.b. per app über die Fernbedinung fahre was ja set <dev> move ... aus Fhem endspricht und dann ein set status mache werden die readings nicht mehr aktualliesiert und die Meldung wird angezeigt mit den log Einträgen.
der set status funktioniert dann auch erst wieder wenn ich über Fhem einen von diesen Befehlen ausführe home start stop oder pause.
Gruß
Stephan
Auch wenn du nur über die App navigierst und danach status machst kommt der Fehler?
Das ist Richtig der Fehler kommt auch wenn ich nur über die App navigiere.
Und erst wenn ich über Fhem einen der Hauptbefehle wie start stop pause home mache geht der set status Befehl wieder.
Puh, also das ist ja schon sehr eigenartig. Wie kann sich ein Command per App auf FHEM auswirken? Das kann nur passieren, wenn dazwischen von FHEM automatisch schon ein status oder ähnliches getriggert wird.
Kannst du bitte probieren, direkt nach der Steuerung per App innerhalb weniger Sekunden ein status zu machen?
Ich habe gerade eine größere Anpassung an fhempy eingecheckt. Bitte vor den weiteren Tests ein Update durchführen.
Hallo Dominik
update gerade durchgeführt. wurde wie es aussieht abgebrochen und jetzt steht BindingIO auf disconnect.
2020.12.09 22:34:52 1 : pythonbinding
2020.12.09 22:34:52 1 : UPD FHEM/10_PythonBinding.pm
2020.12.09 22:34:52 1 : UPD FHEM/10_BindingsIo.pm
2020.12.09 22:34:52 1 : UPD FHEM/10_PythonModule.pm
2020.12.09 22:34:52 1 : UPD FHEM/bindings/python/fhempy
2020.12.09 22:34:52 1 : Got 14 bytes for FHEM/bindings/python/fhempy, expected 4096
2020.12.09 22:34:52 1 : aborting.
2020.12.09 22:34:52 3 : aktion_nach_update return value: -1
2020-12-09 22:34:52 Global global UPDATE
2020.12.09 22:35:01 3 : Pythonbinding_0: starting
2020.12.09 22:35:01 3 : Pythonbinding_0: using logfile: ./log/PythonBinding-2020-12-09.log
2020.12.09 22:35:01 3 : Pythonbinding_0: read: end of file reached while sysread
2020.12.09 22:35:01 3 : Pythonbinding_0: stopped
2020.12.09 22:35:11 1 : BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Verbindungsaufbau abgelehnt (111)
2020.12.09 22:35:21 3 : Pythonbinding_0: starting
2020.12.09 22:35:21 3 : Pythonbinding_0: using logfile: ./log/PythonBinding-2020-12-09.log
2020.12.09 22:35:21 3 : Pythonbinding_0: read: end of file reached while sysread
2020.12.09 22:35:21 3 : Pythonbinding_0: stopped
2020.12.09 22:35:22 1 : BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Verbindungsaufbau abgelehnt (111)
2020.12.09 22:35:32 1 : BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Verbindungsaufbau abgelehnt (111)
2020.12.09 22:35:41 3 : Pythonbinding_0: starting
2020.12.09 22:35:41 3 : Pythonbinding_0: using logfile: ./log/PythonBinding-2020-12-09.log
2020.12.09 22:35:41 3 : Pythonbinding_0: read: end of file reached while sysread
2020.12.09 22:35:41 3 : Pythonbinding_0: stopped
2020.12.09 22:35:43 1 : BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Verbindungsaufbau abgelehnt (111)
2020.12.09 22:35:53 1 : BindingsIo: ERROR local_pybinding - error while connecting: 127.0.0.1: Verbindungsaufbau abgelehnt (111)
Im log /log/PythonBinding-2020-12-09.log steht nichts für diese Zeiten drin es wird nicht beschrieben.
Letzte Zeitstempel 22:26 Uhr
Gruß
Stephan
Ok, da dürfte dann doch noch ein Fehler im controls file sein. Habe in einem anderen Thread die gleiche Rückmeldung.
Kannst du bitte mal ein
sudo rm -f /opt/fhem/FHEM/bindings/python/fhempy
machen und danach nochmals ein update.
//Edit: Fehler gefunden, bin am Beheben.
Bitte nochmals ein update machen.
Zitat von: dominik am 09 Dezember 2020, 17:17:03
Bitte nochmals um das Logfile nach dem Restart. Poste bitte auch die Ausgabe von
ps -efa|grep python
Bis auf das grep selbst ist da nichts zu sehen.
Aber mir fällt etwas anderes auf: Du schreibst zu Anfang, dass Python-3 Pflicht wäre.
# python -V
Python 2.7.16
root@fhem:/opt/fhem# cat /etc/issue
Raspbian GNU/Linux 10 \n \l
Aptitude search bringt allerdings
i A python2 - interactive high-level object-oriented language (Python2 version)
i A python3 - interactive high-level object-oriented language (default python3 version)
Jetzt bin ich etwas ratlos, was ist da zu tun?
Ich will nochmal sagen, dass das Ganze am 05./06.12. bei mir ja funktionierte.
Auf Log(s) habe ich jetzt verzichtet, vermutlich bringt das in der Phase nichts. Falls - bitte sagen welches.
Danke!
Hallo Dominik
Zitat
Puh, also das ist ja schon sehr eigenartig. Wie kann sich ein Command per App auf FHEM auswirken? Das kann nur passieren, wenn dazwischen von FHEM automatisch schon ein status oder ähnliches getriggert wird.
Kannst du bitte probieren, direkt nach der Steuerung per App innerhalb weniger Sekunden ein status zu machen?
Das update ist jetzt kpl. durchgeflaufen Fhem shutdown restart und den pi gleich auch einmal rebootet. Und nun nach Herzenslust getestet.
Ich konnte die Meldung aber sehr schnell wieder reproduzieren. Ich habe die app auf Fernbedienung stehen Anzeige im Handy mit den 4 Richtungspfeilen.
Wenn ich jetzt in Fhem auf status gehe kommt noch keine Meldung. Ich kann wie ein irrer auf das set icon im Device klicken (schnell hintereinander).
Sobald ich den Pfeil für die Fahrt nach vorne im Handy tippe und fast zeitgleich das set icon klicke (einmal) passiert noch nichts. Klicke ich jetzt nocheinmal auf das set icon in Fhem erscheint das Pop up Fenster mit der Medlung
Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
Ab jetzt kommt die Meldung immer wieder wenn ich auf das Icon set klicke.
Erst wenn ich auf über Fhem den Sauger auf pause stelle werden die readings aktualliesiert und ich kann wieder ohne Fehlermeldung das set Icon klicken.
Hier mal ein Log des Device von meinen Sauger.
2020-12-10_06:24:47 Martha_1 active
2020-12-10_06:24:48 Martha_1 ViomiVacuumState.Docked
2020-12-10_06:27:20 Martha_1 active
2020-12-10_06:27:25 Martha_1 ViomiVacuumState.Docked
2020-12-10_06:29:42 Martha_1 status
2020-12-10_06:30:13 Martha_1 status
2020-12-10_06:30:13 Martha_1 status: <miio.viomivacuum.ViomiVacuumStatus object at 0x7243e810>
2020-12-10_06:30:36 Martha_1 status: <miio.viomivacuum.ViomiVacuumStatus object at 0x7243eff0>
2020-12-10_06:31:05 Martha_1 pause
2020-12-10_06:31:07 Martha_1 ViomiVacuumState.Idle
2020-12-10_06:31:07 Martha_1 error_code: 0
2020-12-10_06:31:07 Martha_1 error: Unknown error 0
2020-12-10_06:31:10 Martha_1 status
2020-12-10_06:31:13 Martha_1 status
2020-12-10_06:31:14 Martha_1 status
2020-12-10_06:31:15 Martha_1 status
2020-12-10_06:31:16 Martha_1 status
2020-12-10_06:31:17 Martha_1 status
2020-12-10_06:31:17 Martha_1 status
2020-12-10_06:31:17 Martha_1 status
2020-12-10_06:31:17 Martha_1 status
2020-12-10_06:31:17 Martha_1 status
2020-12-10_06:31:18 Martha_1 status
2020-12-10_06:31:18 Martha_1 status
2020-12-10_06:32:01 Martha_1 status
2020-12-10_06:32:01 Martha_1 status: <miio.viomivacuum.ViomiVacuumStatus object at 0x7253ef10>
2020-12-10_06:32:28 Martha_1 status
2020-12-10_06:32:28 Martha_1 status: <miio.viomivacuum.ViomiVacuumStatus object at 0x7243e7b0>
2020-12-10_06:32:37 Martha_1 status: <miio.viomivacuum.ViomiVacuumStatus object at 0x723e71d0>
2020-12-10_06:33:05 Martha_1 status
2020-12-10_06:33:05 Martha_1 status: <miio.viomivacuum.ViomiVacuumStatus object at 0x7243e030>
2020-12-10_06:33:42 Martha_1 status: <miio.viomivacuum.ViomiVacuumStatus object at 0x723e7890>
2020-12-10_06:33:56 Martha_1 pause
2020-12-10_06:34:00 Martha_1 status
2020-12-10_06:34:01 Martha_1 status
2020-12-10_06:34:01 Martha_1 status
2020-12-10_06:34:01 Martha_1 status
2020-12-10_06:34:01 Martha_1 status
2020-12-10_06:34:02 Martha_1 status
2020-12-10_06:34:02 Martha_1 status
2020-12-10_06:34:02 Martha_1 status
2020-12-10_06:34:02 Martha_1 status
2020-12-10_06:34:02 Martha_1 status
2020-12-10_06:34:03 Martha_1 status
2020-12-10_06:34:03 Martha_1 status
2020-12-10_06:34:03 Martha_1 status
2020-12-10_06:34:03 Martha_1 status
2020-12-10_06:34:03 Martha_1 status
2020-12-10_06:34:04 Martha_1 status
2020-12-10_06:34:04 Martha_1 status
2020-12-10_06:34:04 Martha_1 status
2020-12-10_06:34:04 Martha_1 status
2020-12-10_06:34:05 Martha_1 status
2020-12-10_06:34:05 Martha_1 status
2020-12-10_06:34:05 Martha_1 status
2020-12-10_06:34:05 Martha_1 status
2020-12-10_06:34:05 Martha_1 status
2020-12-10_06:34:06 Martha_1 status
2020-12-10_06:34:06 Martha_1 status
2020-12-10_06:34:06 Martha_1 status
2020-12-10_06:34:06 Martha_1 status
2020-12-10_06:34:07 Martha_1 status
2020-12-10_06:34:12 Martha_1 home
2020-12-10_06:34:15 Martha_1 ViomiVacuumState.Returning
2020-12-10_06:34:15 Martha_1 error_code: 2104
2020-12-10_06:34:15 Martha_1 error: Unknown error 2104
2020-12-10_06:35:48 Martha_1 ViomiVacuumState.Docked
2020-12-10_06:35:48 Martha_1 error_code: 2105
2020-12-10_06:35:48 Martha_1 error: Fully charged
2020-12-10_06:41:28 Martha_1 status
2020-12-10_06:41:28 Martha_1 status
2020-12-10_06:41:28 Martha_1 status
2020-12-10_06:41:28 Martha_1 status
2020-12-10_06:41:29 Martha_1 status
2020-12-10_06:41:42 Martha_1 status
2020-12-10_06:41:42 Martha_1 status: <miio.viomivacuum.ViomiVacuumStatus object at 0x7243e410>
2020-12-10_06:41:53 Martha_1 home
2020-12-10_06:42:03 Martha_1 pause
2020-12-10_06:43:15 Martha_1 status: <miio.viomivacuum.ViomiVacuumStatus object at 0x7243e630>
2020-12-10_06:43:31 Martha_1 status
2020-12-10_06:43:31 Martha_1 status: <miio.viomivacuum.ViomiVacuumStatus object at 0x7395e7b0>
2020-12-10_06:44:20 Martha_1 status: <miio.viomivacuum.ViomiVacuumStatus object at 0x7243e770>
2020-12-10_06:45:25 Martha_1 ViomiVacuumState.Idle2
2020-12-10_06:45:25 Martha_1 error_code: 0
2020-12-10_06:45:25 Martha_1 error: Unknown error 0
2020-12-10_06:45:25 Martha_1 clean_area: 0
2020-12-10_06:45:46 Martha_1 pause
2020-12-10_06:45:54 Martha_1 status
2020-12-10_06:45:55 Martha_1 status
2020-12-10_06:45:55 Martha_1 status
2020-12-10_06:45:55 Martha_1 status
2020-12-10_06:45:56 Martha_1 status
2020-12-10_06:45:56 Martha_1 status
2020-12-10_06:45:56 Martha_1 status
2020-12-10_06:45:56 Martha_1 status
2020-12-10_06:45:56 Martha_1 status
Diese Einträge
<miio.viomivacuum.ViomiVacuumStatus object at 0x7243e410>
erscheinen immer zusammen mit der Fehlermeldung. Früher hatte ich die auch im log des Device. Dachte immer das sind Standortinformationen wo der Sauger gerade im Raum steht.
Parrallel mal das log /opt/fhem/log/PythonBinding-2020-12-10.log
2020-12-10 06:24:41,200 - INFO - fhempy.lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-10 06:24:46,261 - INFO - fhempy.lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-12-10 06:26:49,441 - INFO - fhempy.lib.fhem_pythonbinding: Starting pythonbinding...
2020-12-10 06:27:18,703 - INFO - fhempy.lib.fhem_pythonbinding: FHEM connection started: 127.0.0.1
2020-12-10 06:30:15,250 - ERROR - fhempy.lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 11693212)
2020-12-10 06:30:25,752 - ERROR - fhempy.lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 76431441)
2020-12-10 06:30:29,050 - ERROR - fhempy.lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 9576265)
2020-12-10 06:33:06,080 - ERROR - fhempy.lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 33187430)
2020-12-10 06:33:13,743 - ERROR - fhempy.lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 29223769)
2020-12-10 06:41:43,653 - ERROR - fhempy.lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 58965164)
2020-12-10 06:42:13,470 - ERROR - miio.miioprotocol: Got error when receiving: timed out
2020-12-10 06:42:13,471 - ERROR - fhempy.lib.utils: Error in asyncio thread
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 192, in send
data, addr = s.recvfrom(1024)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 192, in send
data, addr = s.recvfrom(1024)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 192, in send
data, addr = s.recvfrom(1024)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 192, in send
data, addr = s.recvfrom(1024)
socket.timeout: timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
return await asyncio.get_event_loop().run_in_executor(pool, function)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/viomivacuum.py", line 357, in home
self.send("set_charge", [1])
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/device.py", line 144, in send
command, parameters, retry_count, extra_parameters=extra_parameters
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 236, in send
extra_parameters=extra_parameters,
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 236, in send
extra_parameters=extra_parameters,
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 236, in send
extra_parameters=extra_parameters,
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 240, in send
raise DeviceException("No response from the device") from ex
miio.exceptions.DeviceException: No response from the device
2020-12-10 06:42:13,479 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/miio/miio.py:117> exception=DeviceException('No response from the device')>
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 192, in send
data, addr = s.recvfrom(1024)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 192, in send
data, addr = s.recvfrom(1024)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 192, in send
data, addr = s.recvfrom(1024)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 192, in send
data, addr = s.recvfrom(1024)
socket.timeout: timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/miio/miio.py", line 137, in send_command
reply = await utils.run_blocking(functools.partial(fct, *args))
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 29, in run_blocking
return await asyncio.get_event_loop().run_in_executor(pool, function)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/viomivacuum.py", line 357, in home
self.send("set_charge", [1])
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/device.py", line 144, in send
command, parameters, retry_count, extra_parameters=extra_parameters
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 236, in send
extra_parameters=extra_parameters,
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 236, in send
extra_parameters=extra_parameters,
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 236, in send
extra_parameters=extra_parameters,
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 240, in send
raise DeviceException("No response from the device") from ex
miio.exceptions.DeviceException: No response from the device
2020-12-10 06:43:32,709 - ERROR - fhempy.lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 16560249)
2020-12-10 06:44:22,865 - ERROR - fhempy.lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 82589016)
2020-12-10 06:45:08,611 - ERROR - fhempy.lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 6267236)
2020-12-10 06:45:11,205 - ERROR - fhempy.lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 33967588)
2020-12-10 06:45:37,379 - ERROR - fhempy.lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 77, in Set
return await utils.handle_set(self._conf_set, self, hash, args, argsh)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 168, in handle_set
all_args[cmd_def["args"][i]] = arg
KeyError: 'args'
(id: 53513368)
Alles andere Funktioniert echt super. Auch diese Meldung beeinträchtig die Bedienung des Moduls nicht. Diese konstellation kommt ja normal nicht vor.
Was mir auch noch aufgefallen ist, die Kommunikation zwischen Sauger und Fhem ist sehr schnell. Drücke direkt am Sauger die home taste wird mir das in Fhem inerhalb weniger Sekunden auch angezeigt. Das war in der alten Version nicht so. Da hat das schon mal ein paar Minuten gedauert bis der Status auf Return gegangen ist.
Viele Grüsse
Stephan
Hi,
die Information, dass die status Meldungen so schnell bei dir ankommen ist sehr wertvoll. Hast du das Attribut update_functions im Einsatz? Wenn nicht, sollte das Statusupdate naemlich nur alle 60s gemacht werden. Die Info, dass bei dir die Statusupdates aber sofort ankommen, bedeutet, dass da eine Endlosschleife drin ist die andauernd den Status abruft.
Bitte daher noch um Info ob du das Attribut update_functions nutzt.
Zitat von: curt am 10 Dezember 2020, 01:35:21
Bis auf das grep selbst ist da nichts zu sehen.
Aber mir fällt etwas anderes auf: Du schreibst zu Anfang, dass Python-3 Pflicht wäre.
# python -V
Python 2.7.16
root@fhem:/opt/fhem# cat /etc/issue
Raspbian GNU/Linux 10 \n \l
Aptitude search bringt allerdings
i A python2 - interactive high-level object-oriented language (Python2 version)
i A python3 - interactive high-level object-oriented language (default python3 version)
Jetzt bin ich etwas ratlos, was ist da zu tun?
Ich will nochmal sagen, dass das Ganze am 05./06.12. bei mir ja funktionierte.
Auf Log(s) habe ich jetzt verzichtet, vermutlich bringt das in der Phase nichts. Falls - bitte sagen welches.
Danke!
Python3 ist bei dir sicher installiert, sonst wuerde da eine Fehlermeldung von fhempy kommen.
python3 -V
Sollte die richtige Info liefern.
Kommt im Log noch immer diese Fehlermeldung
OSError: [Errno 98] error while attempting to bind on address ('0.0.0.0', 15733): address already in use
Wenn ja, mach bitte
pi@raspberry39:~ $ sudo fuser 15733/tcp
15733/tcp: 5008
pi@raspberry39:~ $ ps -p 5008
PID TTY TIME CMD
5008 ? 00:18:53 fhempy
Zitat
Hi,
die Information, dass die status Meldungen so schnell bei dir ankommen ist sehr wertvoll. Hast du das Attribut update_functions im Einsatz? Wenn nicht, sollte das Statusupdate naemlich nur alle 60s gemacht werden. Die Info, dass bei dir die Statusupdates aber sofort ankommen, bedeutet, dass da eine Endlosschleife drin ist die andauernd den Status abruft.
Bitte daher noch um Info ob du das Attribut update_functions nutzt.
Hallo Dominik
Das Attribut update_functions nutze ich nicht.
Ich habe gerade nochmal getestet, ohne das ich etwas mache wird alle 65 Sekunden in mein Device log der status gesetzt .
Wenn ich zufällig gerade dann auf start oder pause auf der app klicke wenn Fhem den status anfordert sieht das erstmal so aus als ob er so schnell aktualliesiert.
Dann habe ich den Sauger per Fernbedienung aus der Ladestation herausgefahren und nichts weiter gemacht. Im log vom Device Martha_1 wird weiter ca alle 65 Sekunden aktualliesiert.
gleichzeitig habe ich im log für /opt/fhem/log/PythonBinding-2020-12-10.log immer wieder reingeschaut nachdem sich der status neu geschrieben hat. es war keine Fehlermeldung.
Aber sobald ich selber einen set <dev> status über den set Icon anfordere kommt das pop up Fenster und es wird ein log Eintrag in /opt/fhem/log/PythonBinding-2020-12-10.log geschrieben
2020-12-10_21:36:19 Martha_1 status: <miio.viomivacuum.ViomiVacuumStatus object at 0x72494730>
2020-12-10_21:37:24 Martha_1 status: <miio.viomivacuum.ViomiVacuumStatus object at 0x72494510>
2020-12-10_21:38:29 Martha_1 status: <miio.viomivacuum.ViomiVacuumStatus object at 0x72494c50>
2020-12-10_21:39:35 Martha_1 ViomiVacuumState.Idle
2020-12-10_21:39:35 Martha_1 error_code: 0
2020-12-10_21:39:35 Martha_1 error: Unknown error 0
2020-12-10_21:41:45 Martha_1 battery: 99
Gruß
Stephan
Was meinst du eigentlich mit set icon?
Hallo @dominik,
Zitat von: dominik am 10 Dezember 2020, 20:43:30
Kommt im Log noch immer diese Fehlermeldung
OSError: [Errno 98] error while attempting to bind on address ('0.0.0.0', 15733): address already in use
Nein, habe ich nicht mehr.
Zitat von: dominik am 10 Dezember 2020, 20:43:30
Wenn ja, mach bitte
Ich mache trotzdem mal:
# python3 -V
Python 3.7.3
# fuser 15733/tcp
15733/tcp: 708
# ps -p 708
PID TTY TIME CMD
708 ? 00:00:01 python3
Log nach Reboot hänge ich an.
(P.S: Zitatebene korrigiert)
ZitatWas meinst du eigentlich mit set icon?
Moin Dominik
Ich hab mir schon gedacht das das zu Mißverständnissen kommt. Mit set ( ICON ) meine ich das ICON oben links in der Device übersicht. Hab mal ein Bild angehängt.
Das hat mich aber jetzt auf eine Idee gebracht.
Ich hab das ganze mal nicht mit der Device Übersicht gemacht sondern oben direkt in der Kommandozeile den Befehl set Martha_1 status eingegen und das dann auch schnell hintereinander.
Jetzt bekomme ich die Fehlermeldung nicht mehr reproduziert. Es gibt auch keinen log Eintrag in /opt/fhem/log/PythonBinding-2020-12-11.log
Was mir noch aufgefallen ist, und ich glaube das ist das Problem. Normalerweise wenn ich einen Befehl in der Device Übersicht mit den set ( ICON ) absetzte wird die Web Seite einmal neu geladen
und ich würde dann wenn ich erneut auf das Icon klicke den carpet_mode setzen. Das ist bei mir aber nicht der fall, wenn ich im drop down menü set Martha_1 status ausgewählt habe.
Wenn ich jetzt auf set klicke bleibt die Device übersicht gleich und ich kann erneut auf set klicken und dann kommt die Fehlermeldung wenn ich Martha_1 zuvor mit der Fernbedienung gefahren habe.
Viele Grüße
Stephan
Ich hab noch ein bisschen herumprobiert. Ich habe ein kpl. neuen Fhem Server Jungfreulich aufgesetzt. Da ist nichts weiter drauf als fempy.
Nach der Installation konnte ich den set status Befehl über das besagte Icon anklicken und das drop down menü wurde neu aufgebaut. Ohne Fehlermeldung.
Was aber in der Grundversion von der Datei viomivacuum.py nicht funktioniert ist der move Befehl. Da hast Du ja eine Änderung vorgenommen. post #12
Zitat
Ich habe einen Pull Request dazu erstellt:
https://github.com/rytilahti/python-miio/pull/872
Diese Datei habe ich dann mit root Rechten in das Verzeichnis
/opt/fhem/.local/lib/python3.7/site-packages/miio
Kopiert.
Fhem neu gestartet. Natürlich kommt jetzt die Medlung im log für fempy. Das es Berechtigungs Probleme gibt.
Could not install packages due to an EnvironmentError: [Errno 13] Keine Berechtigung: '/root/.cache/pip/wheels/6d/39/5c/8cce6617ff784b42b764a52b6331248cbcbf7006a2e01fe835'
Check the permissions.
Fhem wieder gestopt und die Rechte der Datei auf Fhem:dialout gesetzt.
Fhem wieder gestartet. Ohne Erfolg die Meldung mit der Berechtigung blieb.
Fhem wieder gestopt und für das ganze Fhem Verzeichnis die Berechtigung neu gesetzt.
sudo chown -R fhem:dialout /opt/fhem
Fhem wieder gestartet. Auch ohne Erfolg. Keine Berechtigung.
Erst nach einen reboot des pi´s ging local_pybindig auf opened.
Ab jetzt konnte ich den Saugere wieder mit set Martha_1 move Forward 4 manuell steuern.
Aber wie Du Dir bestimmt denken kannst kommt die pop up Meldung wenn ich auf das ICON für set Martha_1 status zweimal draufklicke.
Kann es sein das die Datei aus post #12 im update noch nicht mit drin ist, und deshalb bei Dir auch nicht den Fehler erzeugt ?
Viele Grüsse
Stephan
Zitat von: curt am 11 Dezember 2020, 03:19:52
Hallo @dominik,
Nein, habe ich nicht mehr.
Ich mache trotzdem mal:
# python3 -V
Python 3.7.3
# fuser 15733/tcp
15733/tcp: 708
# ps -p 708
PID TTY TIME CMD
708 ? 00:00:01 python3
Log nach Reboot hänge ich an.
(P.S: Zitatebene korrigiert)
Sieht doch schon gut aus, du hast nur mehr ein Timeout bei der Verbindung zum Vacuum. Token und IP sind richtig?
@Stelaku,
das mit den Berechtigungen ist sehr eigenartig. Aber ok, damit hängt es glaube ich nicht zusammen.
Das mehrmals auf das Set Icon klicken dürfte das Problem sein. Wenn ich da einmal klicke, dann lädt sich die FHEM Website neu und ich muss "status" wieder auswählen bevor ich set klicken kann. Das ist der Standard. Wenn du das so machst, bekommst du keinen Fehler?
Zitat von: dominik am 11 Dezember 2020, 18:30:00
Token und IP sind richtig?
IP ist richtig und von FHEM aus via ping erreichbar. Beim Token weiß ich nicht, wie ich das prüfen könnte. Zwischendrin hatte ich wohl nochmal den/einen Token mit gleicher Mailadresse und gleichem Gerät angefordert - da kam aber -so denke ich- der gleiche Token.
Ok, kann ich die Richtigkeit des Token prüfen? Falls nicht, wie weiter?
ZitatDas mehrmals auf das Set Icon klicken dürfte das Problem sein. Wenn ich da einmal klicke, dann lädt sich die FHEM Website neu und ich muss "status" wieder auswählen bevor ich set klicken kann. Das ist der Standard. Wenn du das so machst, bekommst du keinen Fehler?
Hallo Dominik
Das passiert leider bei mir nicht. Wenn ich auf set klicke wird die seite nicht neu geladen und ich kann ohne neue Auswahl im drop down sofort wieder auf set klicken. Das Standart Verhalten so wie Du es bei Dir beobachten kannst habe ich auch aber nur mit der Standart Datei viomivacuum.py. Nur mit der Standart Datei gehen die move Befehle bei mir nicht. Weil da ja die wie Du geschrieben hattest
ZitatIch weiß schon was fehlt, die Annotation im Code. Ich vermute clean_mode kannst du auch nicht setzen, oder?
Vieleicht kannst Du den Fehler bei Dir reproduzieren wenn Du die Datei
ZitatIch habe einen Pull Request dazu erstellt:
https://github.com/rytilahti/python-miio/pull/872
in Deiner Installation auch dort einfügst.
Viele Grüsse
Stephan
ZitatIP ist richtig und von FHEM aus via ping erreichbar. Beim Token weiß ich nicht, wie ich das prüfen könnte. Zwischendrin hatte ich wohl nochmal den/einen Token mit gleicher Mailadresse und gleichem Gerät angefordert - da kam aber -so denke ich- der gleiche Token.
Ok, kann ich die Richtigkeit des Token prüfen? Falls nicht, wie weiter?
Hallo curt
Du müsstes doch auch das Device xiaomi_tokens bei Dir haben.
Du solltest den Token über das Device einfach nochmal anfragen.
Ich hab das gerade bei mir ausprobiert und es hat erst ein neues reading für den token gegeben als ich das Device xiaomi_tokens einmal gelöscht habe und dann wieder neu mit
define xiaomi_tokens PythonModule xiaomi_tokens
angelegt habe.
Dann wie gehabt einmal den Benutzernamen eingebn
danach das passwort und zu guter letzt get token klicken.
Seite aktualliesieren und der token wird als reading angezeigt.
Viele Grüsse
Stephan
xiaomi_tokens speichert Passwort und Username aus Sicherheitsgründen nicht. Du musst also vor jeder Abfrage wieder Username und Passwort eingeben und erst dann get_tokens.
Ich hab leider nicht den Viomi, sondern den Xiaomi V1 Vacuum. Das ist aber eine sehr hilfreiche Info, dass es nur bei geänderter Datei so ist. Bedeutet das, dass du auch keinen set status Fehler hast, wenn du die alte Datei verwendest und über die App steuerst?
Leider nein. Ich habe gerade alles wieder auf null gestellt und ein kpl. neues fhem mit der standard viomivacuum.py datei inbetrieb genommen.
Wenn ich jetzt über die Fernbedienung den Sauger aus der Ladestation fahre und dann set status klicke wird die Seite neu geladen, aber das State des Device bleibt unverändert auf Docked.
Wenn ich jetzt nochmal im drop down status auswähle und set klicke kommt der Fehler beim zweiten klick. Verdammt ich dachte es liegt an der Datei. Leider nicht.
Ich weiß nicht in wie weit das hilft. Auf meiner live Instanz habe ich noch die fempy Version von letzter Woche. Auf der läuft alles ohne Fehlermeldungen.
Da wird bei jeden set status klick die Seite neu geladen und das state neu geschrieben.
Viele Grüsse
Stephan
ist eventuell in der javescript console im browser was zu erkennen?
Zitatist eventuell in der javescript console im browser was zu erkennen?
Hier mal ein Auszug aus der javascript console
Layout-Darstellung wurde erzwungen, bevor die Seite vollständig geladen war. Falls Stylesheet noch nicht geladen sind, kann dies zu einem kurzzeitigen Darstellung des Inhalts ohne Formatierung führen. jquery.min.js:4:29775
23:14:48.620 FW_queryValue:{ReadingsVal("Martha_1","carpet_mode","")} fhemweb.js:512:13
23:14:48.623 FW_queryValue:{AttrVal("Martha_1","room","")} fhemweb.js:512:13
23:14:48.725 Inform-channel opened (HTTP) with filter Martha_1 fhemweb.js:512:13
23:14:48.748 Rcvd: ["Martha_1","ViomiVacuumState.Docked","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Docked\u0022 class=\u0022col2\u002...(165) fhemweb.js:512:13
23:14:54.724 Rcvd: ["Martha_1","ViomiVacuumState.Docked","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Docked\u0022 class=\u0022col2\u002...(165) fhemweb.js:512:13
23:14:54.727 Rcvd: ["Martha_1-status","<miio.viomivacuum.ViomiVacuumStatus object at 0x725972d0>","<miio.viomivacuum.ViomiVacuumStatus object at 0x7259...(139) fhemweb.js:512:13
23:14:54.730 Rcvd: ["Martha_1-status-ts","2020-12-11 23:14:54","2020-12-11 23:14:54"] fhemweb.js:512:13
23:14:58.919 FW_queryValue:{ReadingsVal("Martha_1","status","")} fhemweb.js:512:13
23:14:58.921 FW_cmd:/fhem?cmd=help Martha_1&XHR=1 fhemweb.js:512:13
23:15:02.087 FW_cmd:/fhem?cmd.setMartha_1%3Dset%20Martha_1%20status%20&XHR=1 fhemweb.js:512:13
23:15:02.174 Rcvd: ["Martha_1","ViomiVacuumState.Docked","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Docked\u0022 class=\u0022col2\u002...(165) fhemweb.js:512:13
23:15:02.321 Rcvd: ["Martha_1","ViomiVacuumState.Docked","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Docked\u0022 class=\u0022col2\u002...(165) fhemweb.js:512:13
23:15:02.324 Rcvd: ["Martha_1-status","<miio.viomivacuum.ViomiVacuumStatus object at 0x72597430>","<miio.viomivacuum.ViomiVacuumStatus object at 0x7259...(139) fhemweb.js:512:13
23:15:02.325 Rcvd: ["Martha_1-status-ts","2020-12-11 23:15:02","2020-12-11 23:15:02"] fhemweb.js:512:13
## Die nächsten Vier Zeilen werden ausgegeben wenn das pop up Fenster mit der Medlung angezeigt wird.
23:15:03.844 FW_cmd:/fhem?cmd.setMartha_1%3Dset%20Martha_1%20status%20undefined&XHR=1 fhemweb.js:512:13
23:15:09.110 FW_cmd:/fhem?cmd.setMartha_1%3Dset%20Martha_1%20status%20undefined&XHR=1 fhemweb.js:512:13
23:15:12.476 FW_cmd:/fhem?cmd.setMartha_1%3Dset%20Martha_1%20status%20undefined&XHR=1 fhemweb.js:512:13
23:15:17.829 FW_cmd:/fhem?cmd.setMartha_1%3Dset%20Martha_1%20status%20undefined&XHR=1 fhemweb.js:512:13
23:15:29.491 Rcvd: ["Martha_1","ViomiVacuumState.Docked","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Docked\u0022 class=\u0022col2\u002...(165) fhemweb.js:512:13
23:15:29.492 Rcvd: ["Martha_1-status","<miio.viomivacuum.ViomiVacuumStatus object at 0x72597a50>","<miio.viomivacuum.ViomiVacuumStatus object at 0x7259...(139) fhemweb.js:512:13
23:15:29.492 Rcvd: ["Martha_1-status-ts","2020-12-11 23:15:29","2020-12-11 23:15:29"] fhemweb.js:512:13
Und hier mal ein mitschnitt wenn Martha_1 zur Ladestation zurückfährt und ich dabei immer wieder auf set status klicke. Ohne Pop up Fenster und Fehlermeldung
23:30:40.566 FW_cmd:/fhem?cmd.setMartha_1%3Dset%20Martha_1%20status%20&XHR=1 fhemweb.js:512:13
23:30:40.652 Rcvd: ["Martha_1","ViomiVacuumState.Returning","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Returning\u0022 class=\u0022col...(174) fhemweb.js:512:13
23:30:44.628 FW_cmd:/fhem?cmd.setMartha_1%3Dset%20Martha_1%20status%20&XHR=1 fhemweb.js:512:13
23:30:44.710 Rcvd: ["Martha_1","ViomiVacuumState.Returning","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Returning\u0022 class=\u0022col...(174) fhemweb.js:512:13
23:30:48.604 FW_cmd:/fhem?cmd.setMartha_1%3Dset%20Martha_1%20status%20&XHR=1 fhemweb.js:512:13
23:30:48.691 Rcvd: ["Martha_1","ViomiVacuumState.Returning","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Returning\u0022 class=\u0022col...(174) fhemweb.js:512:13
23:30:50.027 FW_cmd:/fhem?cmd.setMartha_1%3Dset%20Martha_1%20status%20&XHR=1 fhemweb.js:512:13
23:30:50.110 Rcvd: ["Martha_1","ViomiVacuumState.Returning","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Returning\u0022 class=\u0022col...(174) fhemweb.js:512:13
23:30:51.155 FW_cmd:/fhem?cmd.setMartha_1%3Dset%20Martha_1%20status%20&XHR=1 fhemweb.js:512:13
23:30:51.244 Rcvd: ["Martha_1","ViomiVacuumState.Returning","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Returning\u0022 class=\u0022col...(174) fhemweb.js:512:13
23:30:54.708 FW_cmd:/fhem?cmd.setMartha_1%3Dset%20Martha_1%20status%20&XHR=1 fhemweb.js:512:13
23:30:54.792 Rcvd: ["Martha_1","ViomiVacuumState.Returning","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Returning\u0022 class=\u0022col...(174) fhemweb.js:512:13
23:31:09.117 Rcvd: ["Martha_1","ViomiVacuumState.Returning","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Returning\u0022 class=\u0022col...(174) fhemweb.js:512:13
23:31:09.118 Rcvd: ["Martha_1-accesspoint_bssid","dc:39:6f:a4:49:ff","dc:39:6f:a4:49:ff"] fhemweb.js:512:13
23:31:09.119 Rcvd: ["Martha_1-accesspoint_bssid-ts","2020-12-11 23:31:09","2020-12-11 23:31:09"]
Viele Grüsse
Stephan
Zitat von: Stelaku am 11 Dezember 2020, 19:55:34
Du müsstes doch auch das Device xiaomi_tokens bei Dir haben.
Du solltest den Token über das Device einfach nochmal anfragen.
Ich hab das gerade bei mir ausprobiert und es hat erst ein neues reading für den token gegeben als ich das Device xiaomi_tokens einmal gelöscht habe und dann wieder neu
Zitat von: dominik am 11 Dezember 2020, 20:16:01
xiaomi_tokens speichert Passwort und Username aus Sicherheitsgründen nicht. Du musst also vor jeder Abfrage wieder Username und Passwort eingeben und erst dann get_tokens.
Hallo @Stelaku @dominik
bedauerlicherweise funktioniert das nicht, es wird kein neues Token als Attribut angelegt. Dominik, hast Du da auch was verändert?
Auf den schnellen Blick ins Log fällt mir
"Unknown argument ?, choose one of username password country:de,cn,sg get_tokens:noArg"
auf.
Falls erforderlich kann ich das fragliche Log heute oder morgen Abend nachreichen.
P.S: Falls die Meldung auf die Mailadresse abstellt: Hier liegt @gmx.net vor.)
Hallo curt
Ich habe es gerade nochmal bei mir ausprobiert mit aktuellem fempy.
Delete xiaomi_tokens
save config
shutdown restart
define xiaomi_tokens PythonModule xiaomi_tokens
set xiaomi_tokens username <Meine Mail Adresse>
set xiaomi_tokens password <Mein Passwort>
set xiaomi_tokens get_tokens
und nach ein paar Sekunden wenn Du die Seite mit F5 aktualisierst kommt das reading mit den token.
Viele Grüsse
Stephan
xiaomi_tokens: Genau, man muss danach F5 drücken, da FHEM neue Readings erst nach einem Reload der Seite anzeigt.
@Stephan
Zur weiteren Eingrenzung des Fehler, ist es richtig, dass der Fehler nur auftritt, wenn die FHEM Seite nicht neu geladen wird? Sobald die Seite neu geladen wird, tritt der Fehler nicht auf?
Dann hattest du noch das Thema, dass "ViaomiStatus(.....)......" zurückgeliefert wurde, wann ist das der Fall?
Wird in der alten Version die FHEM Seite nach jedem "status" neu geladen?
Mach bitte auch mal beim BindingsIo Device verbose=5 und schick mir dann das fhem Log im Fehlerfall - das kann durchaus groß werden, gerne per PN. Gleiches bitte auch am Live System, da sollte dann ersichtlich sein wo der Unterschied ist.
Hallo Dominik
Ich glaube es wird immer heißer
ZitatZur weiteren Eingrenzung des Fehler, ist es richtig, dass der Fehler nur auftritt, wenn die FHEM Seite nicht neu geladen wird? Sobald die Seite neu geladen wird, tritt der Fehler nicht auf?
das stimmt, ich habe es gerade getestet. Wenn ich einmal auf set status klicke wird die Seite nicht neu geladen und ich kann gleich nochmal set klicken, was dann den Fehler erzeugt.
Mache ich das selbe und drücke immer nach einen set status die F5 taste kommt der Fehler nicht. Und das Device zeigt seinen aktuellen status.
ZitatWird in der alten Version die FHEM Seite nach jedem "status" neu geladen?
genau das passiert in der alten Version. Set status angeklickt , Seite wird neu geladen.
Anbei noch meine beiden log´s in Verbose 5 für BindingsIO einmal mit meiner live Instanz alte fempy Version und meine Test Instanz mit der aktuellen fempy Version.
das log mit der Fehlermeldung ist ab 13:49:24 der Fehler zu sehen.
Hier liegt das Problem
BindingsIo: <<< WS: {"args":["Martha_1","status","undefined"]
Es wird "undefined" von FHEM als Argument mitgegeben. Kann es sein, dass das nur vorkommt wenn kein Reading aktualisiert wird? Oder hast du den Fehler auch reproduzieren können, wenn ein Reading aktualisiert wird?
Hallo Dominik
ZitatEs wird "undefined" von FHEM als Argument mitgegeben. Kann es sein, dass das nur vorkommt wenn kein Reading aktualisiert wird? Oder hast du den Fehler auch reproduzieren können, wenn ein Reading aktualisiert wird?
Wenn der Fehler kommt wird auch kein reading aktualisieren. Sprich Martha_1 ist nicht im Dock aber die Anzeige in Fhem bleibt auf Docked. Auch wenn ich mit F5 die Seite neu aufbauen lasse.
Den Fehler konnte ich nicht reproduzieren wenn die reading neu gesetzt werden.
Wenn der Sauger auf Cleaning steht und ich den set status klicke wird die Seite auch nicht neu geladen aber die readings werden aktualiesiert. Kann man schön sehen am reading clean_area.
Das wird immer neu gesetzt.
Viele Grüsse
Stephan
Kannst du die Ausgabe der JavaScript Console bitte mal im Fehlerfall posten?
Und mach bitte noch folgenden Test:
/opt/fhem/FHEM/bindings/python/fhempy/lib/miio/miio.py
Diese Zeile suchen (sollte ca. 137 sein):
reply = await utils.run_blocking(functools.partial(fct, *args))
danach einfügen
await fhem.readingsSingleUpdate(self.hash, "testreading", "ok", 1)
Bitte auf die Einrückung achten, das ist bei Python wichtig.
Bin gespannt ob es damit immer funktioniert, so wäre meine Erwartung.
Hallo Dominik
ZitatKannst du die Ausgabe der JavaScript Console bitte mal im Fehlerfall posten?
Klar mache ich gerne. Da habe ich dreimal hintereinander auf set status geklickt
21:03:06.507 Rcvd: ["Martha_1","ViomiVacuumState.Docked","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Docked\u0022 class=\u0022col2\u002...(165) fhemweb.js:512:13
21:03:06.508 Rcvd: ["Martha_1-testreading","ok","ok"] fhemweb.js:512:13
21:03:06.508 Rcvd: ["Martha_1-testreading-ts","2020-12-12 21:03:07","2020-12-12 21:03:07"] fhemweb.js:512:13
21:03:06.570 Rcvd: ["Martha_1","ViomiVacuumState.Docked","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Docked\u0022 class=\u0022col2\u002...(165) fhemweb.js:512:13
## status im drop down ausgewählt
21:03:06.571 Rcvd: ["Martha_1-status","<miio.viomivacuum.ViomiVacuumStatus object at 0x725104f0>","<miio.viomivacuum.ViomiVacuumStatus object at 0x7251...(139) fhemweb.js:512:13
## set das erste mal angeklickt ohne Fhelermeldung
21:03:06.572 Rcvd: ["Martha_1-status-ts","2020-12-12 21:03:07","2020-12-12 21:03:07"] fhemweb.js:512:13
## set das zweite mal angeklickt jetzt kommt die Fehlermeldung ( pop up Fenster )
21:03:11.274 FW_cmd:/fhem?cmd.setMartha_1%3Dset%20Martha_1%20status%20undefined&XHR=1 fhemweb.js:512:13
## set das dritte mal angeklickt selbe Fehlermeldung. Die Seite hat sich jedesmal nicht neu geladen
21:03:19.825 FW_cmd:/fhem?cmd.setMartha_1%3Dset%20Martha_1%20status%20undefined&XHR=1 fhemweb.js:512:13
## Hier kannst Du sehen das sich der status des Device nicht geändert hat, obwohl status angefordert wurde.
## Der Sauger steht jetzt vor der Ladestation und nicht Docked. In der alten Version wird mir in dieser Situation online als Status des Device angezeigt.
21:03:36.526 Rcvd: ["Martha_1","ViomiVacuumState.Docked","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Docked\u0022 class=\u0022col2\u002...(165) fhemweb.js:512:13
## Dein Testreading wurde angelegt.
21:03:36.528 Rcvd: ["Martha_1-testreading","ok","ok"] fhemweb.js:512:13
21:03:36.531 Rcvd: ["Martha_1-testreading-ts","2020-12-12 21:03:37","2020-12-12 21:03:37"] fhemweb.js:512:13
21:03:38.717 Rcvd: ["Martha_1","ViomiVacuumState.Docked","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Docked\u0022 class=\u0022col2\u002...(165) fhemweb.js:512:13
21:03:38.719 Rcvd: ["Martha_1-testreading","ok","ok"] fhemweb.js:512:13
21:03:38.721 Rcvd: ["Martha_1-testreading-ts","2020-12-12 21:03:39","2020-12-12 21:03:39"] fhemweb.js:512:13
21:03:38.723 Rcvd: ["Martha_1","ViomiVacuumState.Docked","<div id=\u0022Martha_1\u0022 title=\u0022ViomiVacuumState.Docked\u0022 class=\u0022col2\u002...(165) fhemweb.js:512:13
21:03:38.724 Rcvd: ["Martha_1-status","<miio.viomivacuum.ViomiVacuumStatus object at 0x725101b0>","<miio.viomivacuum.ViomiVacuumStatus object at 0x7251...(139) fhemweb.js:512:13
21:03:38.726 Rcvd: ["Martha_1-status-ts","2020-12-12 21:03:39","2020-12-12 21:03:39"] fhemweb.js:512:13
ZitatUnd mach bitte noch folgenden Test:
/opt/fhem/FHEM/bindings/python/fhempy/lib/miio/miio.py
Diese Zeile suchen (sollte ca. 137 sein):
Habe ich gemacht. Das reading testreading ist jetzt in den readings zu sehen zeigt ok an und wird jedesmal rot wenn ich set status das erstemal vor der Fehlermeldung anklicke. Beim zweitenmal
kommt dann wieder das pop up Fenster. Die Fhem Seite wird nicht automatisch neu geladen.
Wenn ich immer nach dem ersten set status klick auf F5 drücke kommt die Fehlermeldung wie schon gehabt nicht mehr.
Viele Grüsse
Stephan
Ok, danke für den Test. Dann hat es nichts mit der Reading Aktualisierung zu tun.
Der Test war jetzt mit der originalen miio Library, also wo move nicht geht. Richtig?
Ich suche mal weiter...btw, wie lange ist dein letztes FHEM Update am Live System her?
Zitat
Ok, danke für den Test. Dann hat es nichts mit der Reading Aktualisierung zu tun.
Der Test war jetzt mit der originalen miio Library, also wo move nicht geht. Richtig?
Ich suche mal weiter...btw, wie lange ist dein letztes FHEM Update am Live System her?
Nein der Test war mit der modifizierten miio Library. Bei der nichtmodifizierten kann ich den Fehler aber auch reproduzieren.
Auf meiner live Instanz habe ich fempy am 27.11.2020 per update eingespielt.
Die Versionsnummer von den Modulen lautet z.b. BindingsIo v1.0.0
Gruß
Stephan
Diese Meldung sollte mit dem Fix in der miio Library aber nicht mehr kommen
21:03:06.571 Rcvd: ["Martha_1-status","<miio.viomivacuum.ViomiVacuumStatus object at 0x725104f0>","<miio.viomivacuum.ViomiVacuumStatus object at 0x7251...(139) fhemweb.js:512:13
Siehst du im Status nur das <miio.viomivacuum....>? Das sollte eigentlich nicht sein.
Kannst du bitte mal die
/opt/fhem/FHEM/bindings/python/fhempy/lib/miio.py
mal durch diese Version ersetzen
https://raw.githubusercontent.com/dominikkarall/fhempy/3776c7a5098138a98bcc1f6531df0fbdc3d53d48/FHEM/bindings/python/lib/miio/miio.py
sudo wget https://raw.githubusercontent.com/dominikkarall/fhempy/3776c7a5098138a98bcc1f6531df0fbdc3d53d48/FHEM/bindings/python/lib/miio/miio.py -O /opt/fhem/FHEM/bindings/python/fhempy/lib/miio.py
Das wäre nämlich die alte Version. Bin gespannt ob die funktioniert.
ZitatSiehst du im Status nur das <miio.viomivacuum....>? Das sollte eigentlich nicht sein.
Hallo Dominik
Ich kann den status <miio.viomivacuum.ViomiVacuumStatus object at 0x739d5ed0> bei mir sehen der wird in der alten wie in der neuen Version immer angezeigt wenn ich über Fhem den move Befehl setze.
Ich habe auch die standart viomivacuum.py Datei ausprobiert auch dort bekomme ich diesen status zurück wenn ich über die app den Sauger fernsteuere.
ZitatKannst du bitte mal die
/opt/fhem/FHEM/bindings/python/fhempy/lib/miio.py
mal durch diese Version ersetzen
Ist erledigt. aber leider ohne Erfolg. Wenn ich nach einen move befehl den status über set anfordere wird die web seite nicht neu geladen und beim zweiten klick kommt die Meldung.
Ebenfalls auch mit der standart viomivacuum.py Datei ausprobiert. Wurde der Sauger per Fernbedienung bewegt kommt die Meldung beim zweiten set klicken.
Viele grüsse
Stephan
Zitat von: Stelaku am 13 Dezember 2020, 00:33:00
Ich kann den status <miio.viomivacuum.ViomiVacuumStatus object at 0x739d5ed0> bei mir sehen der wird in der alten wie in der neuen Version immer angezeigt wenn ich über Fhem den move Befehl setze.
Ich habe auch die standart viomivacuum.py Datei ausprobiert auch dort bekomme ich diesen status zurück wenn ich über die app den Sauger fernsteuere.
Das muss ich mir separat anschauen, das sollte nicht sein.
Zitat
Ist erledigt. aber leider ohne Erfolg. Wenn ich nach einen move befehl den status über set anfordere wird die web seite nicht neu geladen und beim zweiten klick kommt die Meldung.
Ebenfalls auch mit der standart viomivacuum.py Datei ausprobiert. Wurde der Sauger per Fernbedienung bewegt kommt die Meldung beim zweiten set klicken.
Ich bin mir nicht sicher, aber könnte mir auch vorstellen, dass Anpassungen im FHEM Webumfeld dazu führen.
Kannst du bitte mal die fhemweb.js auf eine ältere Version umstellen? Da gab es ein paar Änderungen in letzter Zeit, wobei ich die Auswirkungen leider nicht ganz einschätzen kann, da ich den Code dort nicht so gut kenne.
Kannst du mal die Version aus deinem Live System in das Testsystem einspielen? /opt/fhem/www/pgm2/fhem/fhemweb.js ist der Dateipfad.
Hallo Dominik
ZitatKannst du mal die Version aus deinem Live System in das Testsystem einspielen? /opt/fhem/www/pgm2/fhem/fhemweb.js ist der Dateipfad.
Habe ich gemacht. Nur die Datei fhemweb.js war in meiner live Instanz sowie in meiner Test Instanz an diesem Ort /opt/fhem/www/pgm2/fhemweb.js. War bestimmt nur ein Tipfehler ?
Die Datei fhemweb.js mit den Zeitstempel vom 27.11.2020 befindet sich jetzt an der stelle wo auch die fhemweb.js war aus meiner Test Instanz. Der Zeitstempel ist da jetzt auch der 27.11.2020.
Aber leider ist die Meldung immer noch reproduzierbar. Auch nach einem pi reboot und Browser neustart mit löschen aller Verläufe etc.
Viele Grüsse
Stephan
Hi,
puh, irgendwie kommen wir da nicht weiter. Kannst du bitte die miio.py von fhempy aus der alten Installation ebenfalls ins Testsystem kopieren?
Zitatpuh, irgendwie kommen wir da nicht weiter. Kannst du bitte die miio.py von fhempy aus der alten Installation ebenfalls ins Testsystem kopieren?
Das habe ich gemacht. die Datei aus der live instanz
/opt/fhem/FHEM/bindings/python/lib/miio/miio.py
Kopiert in die Testversion. Da habe ich zwei Orte gefunden an der die Datei liegt. Einmal dieser Pfad
Zitat
/opt/fhem/FHEM/bindings/python/fempy/lib/miio.py
Danach hat sich nichts am Fehlerbild geändert.
Dann habe ich die miio.py in den zweiten Pfad, der Testversion durch die aus der live Instanz ersetzt.
/opt/fhem/FHEM/bindings/python/fempy/lib/miio/miio.py
Und wie soll ich es sagen der Fehler ist weg :D.
Wenn ich auf set status klicke wird zwar die Web Seite nicht neu geladen, so das ich immer noch wie ein irrer auf das set Icon klicken kann, aber der Fehler wird nicht mehr angezeigt.
Bei jeden klick auf set wird dieses reading
cmd_reply_val <miio.viomivacuum.ViomiVacuumStatus object at 0x72dec550>
immer neu gesetzt. es ändern sich immer die Zahlen hinter 0x........ .
Und der Status des Device ändert sich auf online.
Im log PythonBinding-2020-12-13.log gibt es dann auch keine Einträge.
Das ist doch für einen Sonntag schonmal ein klasse Erfolgserlebnis.
Vielen dank
Viele Grüsse
Stephan
Ok :) so kommen wir weiter.
Kannst du mir bitte die miio.py die du kopiert hast hier reinkopieren? Dann weiß ich welche Version das ist und kann von dort wegarbeiten.
Schon geschehen
Ich weiß leider noch immer nicht warum das bei dir so ist. Vor allem, warum nach einem Set die Seite nicht neu geladen wird. Das sollte eigentlich immer der Fall sein.
Kannst du bitte mal status auswählen und dann den HTML Code hier posten?
Hallo Dominik
Also ich bin nicht mehr ganz wach aber ich habe gerade ein bisschen herumgespielt und viel im Forum gelesen. Es sieht fast so aus als ob die Fehlermeldung doch was mit der fhemweb.js Datei zu tun hat.
Ich habe die neue Datei die Morgen im update verfügbar sein wird auf das backup gespielt wo ich vorher den Fehler sofort reproduzieren kann. Mit der neuen fhemweb.js Datei ist alles wieder wie in meinem
Live System. die Seite wird immer neu geladen nach einem set status.
Ich werde das Morgen noch mehrmals wieder holen um ganz sicher zu sein.
ZitatNachtrag: im svn ist eine gefixte Fassung, gibt's ab morgen früh per update oder direkt unter https://svn.fhem.de/trac/browser/trunk/fhem/www/pgm2/fhemweb.js
Passt, bin schon auf das Resultat gespannt. Ich habe fhemweb.js auch schon ausführlich studiert, bin da aber noch nicht ganz durchgestiegen.
Hallo Dominik
Ich habe jetzt den ganzen Nachmittag herumprobiert und bin nicht wirklich zu einem Ergebnis gekommen. Die anfänglich Euphorie von gestern wurde heute nicht bestätigt.
Erster Versuch:
Backup meiner Live Instanz auf den Test pi geschrieben. Update durchgeführt shutdown restart und Browser Verläufe ... gelöscht. Alles wieder hochfahren lassen mit dem Ergebnis das die Fehlermeldung brav an der selben Stelle wieder aufpoppte.
Zweiter Versuch:
Backup meiner Test Instanz aufgespielt und ebenfalls ein update durchgeführt. Natürlich wie zu erwarten das gleich Problem. Jetzt aber die fhemweb.js Datei von Gestern, die ja normalerweise die selbe
sein sollte die heute über das update reingekommen ist drüber kopiert. alle rechte wieder auf fhem:dialout, Fhem gestartet und siehe da der Fehler ist wie gestern weg. Nur das jetzt beim Event Monitore keine Events mehr angezeigt werden was vor den einspielen der fhemweb.js noch ging. Einmal Erfolg gehabt die Events durch einen longpoll websocket wieder angezeigt zu bekommen. Auch mehrfaches löschen des Browser Cache war ohne Erfolg.
Dritter Versuch:
Alles wieder auf Null. kpl. neues Fhem installiert fempy eingebunden. Der erste set Befehl wurde
Abgesetzt Seite hat sich neu geladen. Nur das Device blieb auf Docked. Status neu ausgewählt und set geklickt. Seite hat sich nicht neu geladen. Nochmal auf set geklickt. Der Fehler wurde wieder angezeigt.
Auch hier die fhemweb.js von gestern eingespielt. Mit den Ergebnis das zwar der Fehler nicht mehr angezeigt wurde aber eben der Event Monitor keine Events mehr angezeigt hat.
Ich habe zwei Dateien vom HTML Code angehängt. Einmal befor ich auf set klicke und einmal nachdem ich auf set geklickt habe und das pop up Fenster zu sehen ist.
Viele Grüsse
Stephan
@Dominik @Stelaku
Zitat von: Stelaku am 12 Dezember 2020, 10:45:52
Hallo curt
Ich habe es gerade nochmal bei mir ausprobiert mit aktuellem fempy.
Delete xiaomi_tokens
save config
shutdown restart
define xiaomi_tokens PythonModule xiaomi_tokens
set xiaomi_tokens username <Meine Mail Adresse>
set xiaomi_tokens password <Mein Passwort>
set xiaomi_tokens get_tokens
und nach ein paar Sekunden wenn Du die Seite mit F5 aktualisierst kommt das reading mit den token.
<seufzt> Nein, da kommt genau nichts, einziges Reading ist state=active. Daran ändert Aktualisierung auch nichts.
Ich hätte schon gern die Anbindung an FHEM zurück, das ging ja schon mal (einen halben Tag bis zum Update).
In der Anlage gepacktes Log (PW als x).
Moin curt
Probier doch mal bitte Dich in der Mijo Home app auf Deinem Handy einmal abzumelden und dann wieder anzumelden. Nur um Deine Benutzerdaten mal zu überprüfen.
In der app gehst Du dann auf Profil unten rechts. Klickst dann ganz oben auf Dein Profilbild (Namen) . Und ganz unten steht dann abmelden.
Falls Du Dich dann nicht mehr anmelden kannst sind Deine Benutzerdaten nicht mehr richtig. Dann erstellst Du einfach ein neues Konto verbindest den Sauger mit der app und versuchst den token dann mit den neuen Benutzerdaten zu erhalten.
Viele Grüsse
Stephan
Zitat von: Stelaku am 16 Dezember 2020, 07:20:31
Probier doch mal bitte Dich in der Mijo Home app auf Deinem Handy einmal abzumelden und dann wieder anzumelden. Nur um Deine Benutzerdaten mal zu überprüfen.
Danke für den Hinweis und die Wegerläuterung.
Ich kann mich mit Mailadresse und Password dort problemlos neu anmelden.
Eventuell den Server vorher noch setzen. de/cn?
Zitat von: dominik am 16 Dezember 2020, 08:26:16
Eventuell den Server vorher noch setzen. de/cn?
Bitte konkreter und ausführlicher.
(Ich soll set xiaomi_tokens countrys vor allem anderen auf de setzen?)
Zitat von: curt am 16 Dezember 2020, 08:36:00
Bitte konkreter und ausführlicher.
(Ich soll set xiaomi_tokens countrys vor allem anderen auf de setzen?)
Ja, set xiaomi_tokens country cn.
Sofern cn für dich richtig ist, das musst du in der Xiaomi App schauen.
Hallo Dominik
Ich wollte mich nochmal melden. Es sind jetzt ja ein paar Tage vergangen und so manche update´s in Fhemweb gewesen.
Heute habe ich nochmal ein update in meiner Test Instanz durchlaufen lassen in der die fhemweb.js auch wieder mit im update war.
Die Fehlermeldung ist jetzt nicht mehr reproduzierbar.
Wenn ich den Sauger per move Forward aus der Ladestation herausfahre und dann die set status Abfrage anklicke, wird das drop down wie gehabt nicht neu geladen und ich kann gleich wieder auf set status klicken.
Aber diesmal kommt das pop up Fenster nicht mehr. Die status Anfrage wird zwar auch nicht vom Sauger beantwortet. Denn das Reading state bleibt unverändert auf ViomiVacuumState.Docked.
Erst nach ca. 3 Minuten ändert sich das Reading state auf ViomiVacuumState.Idle.
Im Pyhtonbinding log. ist kein Eintrag in dieser Zeit.
Viele Grüsse und ein schönes Weihnachtsfest.
Stephan
Hi,
danke für die Info. Das bedeutet aber, der Fehler ist noch immer vorhanden, nur kommt keine Fehlermeldung, richtig?
Frohe Weihnachten auch!
Hallo Dominik
Das ist richtig. Der set status Befehl wird nicht verarbeitet wenn der Sauger zuvor manuell gefahren wurde.
Im normalen Betrieb wird der set status Befehl gesendet und ich erhalte kurz darauf neue aktuelle Readings über z.b. Battery, clean_area und so weiter.
Gruß
Stephan
Freunde des gewischten Küchenbodens,
Zitat von: curt am 16 Dezember 2020, 07:57:37
Zitat
Probier doch mal bitte Dich in der Mijo Home app auf Deinem Handy einmal abzumelden und dann wieder anzumelden. Nur um Deine Benutzerdaten mal zu überprüfen.
Danke für den Hinweis und die Wegerläuterung.
Ich kann mich mit Mailadresse und Password dort problemlos neu anmelden.
Es ging nicht vor und nicht zurück. Ich war stinkesauer (nein, nicht auf Euch, Euch bin ich dankbar) und beschloss, mir Weihnachten nicht verderben zu lassen: Dann haben halt die Chinesen den Einmarschplan in mein Haus ...
Ich spiele Updates des Betriebssystems sowie von FHEM eigentlich immer zeitnah ein. Und nun überkam es mich: Mal wieder probieren. Ok, Token-Device neu anlegen, dann User/Pass und Token abholen:
define xiaomi_tokens PythonModule xiaomi_tokens
set xiaomi_tokens username USERNAME@MAIL.COM
set xiaomi_tokens password PASSWORD
set xiaomi_tokens get_tokens
Hmmm, tut nicht. Aber das kenne ich ja nun. Ok, nochmal auf dem ollen S4 bei der App abmelden und neu anmelden ... wird nichts bringen, das brachte noch nie was. User/Pass stimmen. Immerhin.
Eher aus unterdrückter Wut spielte ich dann das o.g. Procedere nochmals durch ... tut wieder nicht. Und nochmals durchspielen - offenbar ist es das in unserer Branche berühmte magische Zaubersalz: Huch, da steht ja jetzt doch ein Token?
Au fein, schnell in das noch vorhandene Device von Putzi eintragen!
Args, tut nicht. Ok, vielleicht schläft Putzi zu tief - mal Putzi wecken (händisch, Anfahren an Ladestation). Neh, tut auch nicht. Boah, wasnDreck.
Dann kam ich eher genervt auf die Idee, FHEM vermittels
shutdown restart neu zu starten, kostet ja nix.
Na holla die Waldfee - auf einmal purzeln die Readings nur so. :)
Ihr dürft Euch mit mir freuen.
Nun kommt die Frage aller Fragen:
Was kann ich denn jetzt damit so alles machen?
Ok, ich sehe dann wohl den Status, kann Putzi starten sowie zum Laden schicken. Aber geht da noch mehr? Vermutlich, denn @Stelaku hatte mir eher theoretisch mal gezeigt, dass so eine Art "1 Meter vorwärts, dann 45° drehen" geht. Aber geht noch mehr? Was geht alles?
Also eigentlich würde ich sehr schön finden, wenn es eine Liste der Möglichkeiten gäbe. Jaja, ich weiß. Sagen wir mal: Den Anfang einer solchen Liste.
Meine letzte Frage mag unbotmäßig klingen, ist aber nicht so gemeint - es geht nur um das Verständnis:
Es gibt da doch noch ein anderes Modul für diese Xiaomi-Sauger, das hantiert auch mit dem Token rum. Was passiert eigentlich, wenn man den Token da reinwirft?
Zitat von: Stelaku am 23 Dezember 2020, 18:39:59
Hallo Dominik
Das ist richtig. Der set status Befehl wird nicht verarbeitet wenn der Sauger zuvor manuell gefahren wurde.
Im normalen Betrieb wird der set status Befehl gesendet und ich erhalte kurz darauf neue aktuelle Readings über z.b. Battery, clean_area und so weiter.
Gruß
Stephan
Das ist ärgerlich. Sollte es dich stark stören, suche ich noch weiter, ansonsten würde ich das Thema vorerst mal beiseite legen.
@curt, super, dass es nun klappt! :)
Alle Befehle die du als "set" Command setzen kannst, sollten auch funktionieren. Die "Liste" der Befehl kannst du also einfach im FHEM Web einsehen.
Ob das andere Modul auch funktioniert, kommt auf deinen Saugroboter drauf an. Wenn er damit geht, dann empfehle ich das andere Modul zu verwenden, da dort Saugroboter gleich mit allen Funktionen integriert sind. Im miio Modul müsstest du ein paar update_functions setzen um alle Readings immer aktuell zu halten.
ZitatDas ist ärgerlich. Sollte es dich stark stören, suche ich noch weiter, ansonsten würde ich das Thema vorerst mal beiseite legen.
Hallo Dominik
Das ist überhaupt kein Problem. Es funktioniert ja alles so weit. Dieses Phänomen ist ja nur in einem extremen Sonderfall zu beobachten.
Vielen dank für Deine wirklich tolle Arbeit an diesem Modul.
Hallo Curt
Ich freue mich auch sehr das es jetzt bei Dir funktioniert.
Was Du da mit jetzt alles anstellen kannst wird nur durch Deiner Phantasie Grenzen gesetzt.
Ich habe bei mir ja einen kleinen Fahrstuhl für den Sauger gebaut, damit er zwei Stufen in ein höheres Geschoss fahren kann. Da ist es schon sehr
schön den Sauger, wenn er denn nach oben oder nach unten mit dem Fahrstuhl fährt, auf pause zu stellen.
Sonst randaliert er die ganze Zeit immer gegen die Fahrstuh Rehling und ist dann wenn er unten oder oben angekommen ist kpl. verwirrt.
Was auch sehr nett ist, wenn ich nach Hause komme wird über die Anwesenheit meines Handy´s ein Befehl gesetzt, der den Sauger zum Mülleimer fahren lässt.
Ja und zu guter letzt sollte meine Alarmanlage durch den Sauger nicht ausgelöst werden. Das wird dank der Anbindung an Fhem auch super gewährleistet.
ZitatMeine letzte Frage mag unbotmäßig klingen, ist aber nicht so gemeint - es geht nur um das Verständnis:
Es gibt da doch noch ein anderes Modul für diese Xiaomi-Sauger, das hantiert auch mit dem Token rum. Was passiert eigentlich, wenn man den Token da reinwirft?
Da habe ich bis jetzt noch keinen Erfolg mit gehabt. Bis auf ein connect nach anlegen des Device ist bei mir nichts weiter geschehen. Es werden readings angezeigt mit der Firmware Version.
Nur ein steuern des Saugers ist bis heute nicht möglich. Brauch ja auch nicht. Funktioniert mit fempy ja sehr gut.
Ich wünsche euch einen guten rutsch ins neue Jahr.
Viele Grüße
Stephan
Noch zur Info, ihr könnt jede Funktion (set Befehl) regelmäßig mit update_functions ausführen lassen. Z.B. um die Filterwerte laufend zu aktualisieren oder die aktuelle Saugstärke, etc.
@Stelaku
In dem 72_Xiaomi ist "unser" Robot nun (ansatzweise) integriert: Das ist ein noch laufender Prozess.
@dominik
In den Thread zu 72_Xiaomi (noch besser: im zuständigen Wiki-Artikel) müsste Dein Weg zum Token eigentlich auch beschrieben werden. Denn Dein Weg funktioniert. - Die hantieren da mit wilden Konstruktionen von alten Apps usw.
@dominik
"list xiaomi_tokens" wirft aktuell einen Fehler:
STATE Failed to execute function Define: Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in _onMessage
fct_timeout,
File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
return fut.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_tokens/xiaomi_tokens.py", line 46, in Define
self.create_async_task(functools.partial(self.obtain_tokens))
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 97, in create_async_task
task = asyncio.create_task(coro)
File "/usr/lib/python3.7/asyncio/tasks.py", line 325, in create_task
return loop.create_task(coro)
File "/usr/lib/python3.7/asyncio/base_events.py", line 405, in create_task
task = tasks.Task(coro, loop=self)
TypeError: a coroutine was expected, got functools.partial(<bound method xiaomi_tokens.obtain_tokens of <fhempy.lib.xiaomi_tokens.xiaomi_tokens.xiaomi_tokens object at 0xb5b66a10>>)
Hi,
sollte in 0.1.18 behoben sein.
Hallo Dominik,
seit ein paar Tagen gehe ich mit fhempy auf Entdeckungsreise, um zu erkunden, was für mich brauchbar sein könnte :)
Erstmal DANKE, was du in kurzer Zeit aus dem Boden gestampft hast.
Da ich so einige XIAOMI Devices in Betrieb habe ist das natürlich ein interessanter Teilbereich hier.
Das Modul mit der Übersicht aller Tokens ist natülich sehr praktisch und wird mir in der Zukunft die Suche nach "wie ging das gleich wieder" ersparen 8)
Das Modul Yeelight hat gegenüber der alten Implementierung den Vorteil, dass es auch "funktioniert", wenn eine Lampe durch den normalen Lichtschalter gerade keinen Strom hat. In der alten Implementierung steht in diesem Fall im set immer ein ekelhafter Syntax Error. Allerdings erschließen sich mir die mit fhempy angebotenen Set-Methoden noch nicht so richtig, da die meisten weitere Argumente erfordern. Mit "toggle" kan ich zwar ein- und ausschalten, bei on und off brauche ich aber schon Argumente und rgb verstehe ich gar nicht.
Hier ist mal ein jsonlist2 von einem LED Strip:
{
"Arg":"da_LEDStrip",
"Results": [
{
"Name":"da_LEDStrip",
"PossibleSets":"raw_command info:noArg status:noArg on off set_brightness set_color_temp set_rgb set_developer_mode:on,off set_save_state_on_change:on,off set_name toggle:noArg set_default:noArg",
"PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 update_functions IODev event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading DMX_B DMX_G DMX_R andFHEM_alias assistantName:textField cmdIcon devStateIcon devStateIcon:textField-long devStateStyle fp_Dach fp_Eingang fp_Erdgeschoss fp_ErsterStock fp_Garten fp_Keller gassistantName:textField genericDeviceType:ac_unit,aircondition,airfreshener,airpurifier,awning,bathtub,bed,blender,blinds,boiler,camera,carbon_monoxide_detector,charger,closet,coffee_maker,coffeemaker,cooktop,curtain,dehumidifier,dehydrator,dishwasher,door,drawer,dryer,fan,faucet,fireplace,fryer,garage,gate,grill,heater,hood,humidifier,kettle,light,lock,remotecontrol,mop,mower,microwave,multicooker,network,outlet,oven,pergola,petfeeder,pressurecooker,radiator,refrigerator,router,scene,securitysystem,settop,sensor,shutter,shower,smoke_detector,sousvide,sprinkler,standmixer,switch,tv,thermostat,vacuum,valve,washer,waterheater,waterpurifier,watersoftener,window,yogurtmaker,aircooler,audio_video_receiver,freezer,speaker,streaming_box,streaming_stick,streaming_soundbar,soundbar homebridgeMapping:textField-long icon lightSceneParamsToSave msgContactAudio msgContactLight msgContactMail msgContactPush msgContactScreen msgParams msgPriority msgRecipient msgRecipientAudio msgRecipientLight msgRecipientMail msgRecipientPush msgRecipientScreen msgRecipientText msgTitle msgTitleShrt msgType:text,push,mail,screen,light,audio,queue realRoom:textField realtimePicker room_map sortby webCmd webCmdLabel:textField-long widgetOverride userattr",
"Internals": {
"DEF": "miio yeelight 192.168.178.104 9a98aafb28a19466986a19fd052be27c",
"FUUID": "5ff056e6-f33f-cc40-1c99-7bb21411a45c8360",
"FVERSION": "10_PythonModule.pm:0.182830/2019-01-16",
"IODev": "local_pybinding",
"NAME": "da_LEDStrip",
"NR": "1261",
"PYTHONTYPE": "miio",
"STATE": "active",
"TYPE": "PythonModule"
},
"Readings": {
"accesspoint_bssid": { "Value":"44:4E:6D:5B:9E:D0", "Time":"2021-01-02 12:20:23" },
"accesspoint_rssi": { "Value":"-60", "Time":"2021-01-08 12:39:44" },
"accesspoint_ssid": { "Value":"BUWO", "Time":"2021-01-02 12:20:23" },
"brightness": { "Value":"14", "Time":"2021-01-02 12:20:22" },
"color_mode": { "Value":"YeelightMode.ColorTemperature", "Time":"2021-01-02 17:23:16" },
"color_temp": { "Value":"4540", "Time":"2021-01-02 17:23:16" },
"developer_mode": { "Value":"1", "Time":"2021-01-02 12:20:22" },
"firmware_version": { "Value":"1.4.2_0050", "Time":"2021-01-02 12:20:23" },
"hardware_version": { "Value":"MW300", "Time":"2021-01-02 12:20:23" },
"is_on": { "Value":"0", "Time":"2021-01-08 11:01:29" },
"mac_address": { "Value":"78:11:DC:A2:15:CE", "Time":"2021-01-02 12:20:23" },
"model": { "Value":"yeelink.light.strip1", "Time":"2021-01-02 12:20:23" },
"network_interface_gw": { "Value":"192.168.178.1", "Time":"2021-01-02 12:20:23" },
"network_interface_gw_mac": { "Value":"44:4E:6D:5B:9E:CD", "Time":"2021-01-02 12:20:23" },
"network_interface_localIp": { "Value":"192.168.178.104", "Time":"2021-01-02 12:20:23" },
"network_interface_mask": { "Value":"255.255.255.0", "Time":"2021-01-02 12:20:23" },
"presence": { "Value":"online", "Time":"2021-01-02 12:20:23" },
"rgb": { "Value":"", "Time":"2021-01-02 17:23:16" },
"save_state_on_change": { "Value":"0", "Time":"2021-01-02 12:20:22" },
"state": { "Value":"active", "Time":"2021-01-02 12:20:22" }
},
"Attributes": {
"IODev": "local_pybinding",
"room": "Dach,YeeLight",
"verbose": "5"
}
} ],
"totalResultsReturned":1
}
Wirst du hier noch verfeinern oder ist das alles ein eher generischer Ansatz?
Ich habe auch noch zu den Peers und Bluetooth einige Unklarheiten, die in diesem Thread eigentlich OT sind. Ich weiß nur nicht wohin damit:
- einen Peer konnte ich auf einem weitern Raspi anlegen und er wurde in FHEM auch erkannt und erzeugt, bei Update bekomme ich aber folgende Meldung im FHEM Log (obwohl er laut Reading auf dem aktuellen Versionsstand ist):
2021.01.08 11:54:50 1: ws:192.168.178.77:15733 disconnected, waiting to reappear (fhempy_peer_192_168_178_77)
2021.01.08 11:54:50 1: BindingsIo: ERROR fhempy_peer_192_168_178_77 - error while connecting: 192.168.178.77: Verbindungsaufbau abgelehnt (111)
- Benötige ich für jede Instanz (fhem,peers) je ein define für mein Handy, wenn ich es mit Bluetooth Presence Checker lokalisieren möchte?
- BLE Presence: Ich kann mit "sudo find /opt/fhem -name bluepy-helper" nichts finden (mit dem adequaten Kommando auf meinem Peer übrigens auch nicht). Wie kann ich den Helper installieren?
- Was müsste eigentlich mit dem Modul discover_ble erkennbar sein? Ich habe es angelegt, sehe aber nichts, außer das es "active" ist. Sollte es BLE Devices von selbst finden? Ist aber wahrscheinlich eine Folge des fehlenden Helpers, oder?
Da ich im Binding Log eine paarFehler sehe, hänge ich es hier mal mit rein:
2021-01-08 07:48:57,634 - ERROR - upnp: Error in handle_msg
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/discover_upnp/discover_upnp.py", line 126, in handle_msg
del listenerFilter["found_devices"][usn]
KeyError: 'uuid:3DCC7100-F76C-11DD-87AF-305890619AC8::urn:schemas-upnp-org:device:MediaRenderer:1'
2021-01-08 07:48:57,739 - ERROR - upnp: Error in handle_msg
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/discover_upnp/discover_upnp.py", line 126, in handle_msg
del listenerFilter["found_devices"][usn]
KeyError: 'uuid:3DCC7100-F76C-11DD-87AF-305890619AC8::urn:schemas-upnp-org:device:MediaRenderer:1'
2021-01-08 07:48:57,763 - ERROR - upnp: Error in handle_msg
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/discover_upnp/discover_upnp.py", line 126, in handle_msg
del listenerFilter["found_devices"][usn]
KeyError: 'uuid:3DCC7100-F76C-11DD-87AF-305890619AC8::urn:schemas-upnp-org:device:MediaRenderer:1'
2021-01-08 08:01:31,036 - ERROR - asyncio: Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0xb08dc8f0>
2021-01-08 10:15:30,734 - INFO - fhempy.lib.pkg_installer: Attempting install of fhempy
2021-01-08 10:17:00,072 - INFO - fhempy.lib.fhem_pythonbinding: Starting fhempy...
2021-01-08 10:17:00,091 - INFO - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
2021-01-08 10:18:39,195 - INFO - fhempy.lib.fhem_pythonbinding: Starting fhempy...
2021-01-08 10:18:39,214 - INFO - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
2021-01-08 10:18:49,502 - INFO - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127.0.0.1
2021-01-08 10:18:53,832 - ERROR - da_LEDStrip: Annotation is not class: typing.Tuple[int, int, int]
/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/miio/miio.py:73: UserWarning: Please consider using python-yeelight for more complete support.
self._device = self._miio_device_class(ip=self._miio_ip, token=self._miio_token)
2021-01-08 10:19:01,445 - ERROR - MEDIONRadio_MediaRenderer: Device exists already, do not create a new one
2021-01-08 10:19:04,538 - ERROR - fhempy.lib.fhem: Timeout - NO RESPONSE for command: foreach my $fhem_dev (sort keys %main::defs) { return 1 if(defined($main::defs{$fhem_dev}{TYPE}) && $main::defs{$fhem_dev}{TYPE} eq 'BindingsIo' && $main::defs{$fhem_dev}{IP} eq '192.168.178.77');;}return 0;;
2021-01-08 11:07:41,427 - ERROR - wz_Lampe: Annotation is not class: typing.Tuple[int, int, int]
2021-01-08 11:07:46,436 - ERROR - wz_Lampe: Failed to send_command: info
2021-01-08 11:07:46,436 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:08:51,461 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:09:56,479 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:11:01,505 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:12:06,518 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:13:11,531 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:14:16,552 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:15:21,571 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:16:26,592 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:17:31,612 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:17:51,458 - ERROR - wz_Lampe: Failed to send_command: info
2021-01-08 11:18:36,632 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:19:41,883 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:20:46,902 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:21:51,924 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:22:56,944 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:24:01,958 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:25:06,982 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:26:12,000 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:27:17,018 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:27:56,485 - ERROR - wz_Lampe: Failed to send_command: info
2021-01-08 11:28:22,038 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:29:27,053 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:30:32,065 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:31:37,084 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:32:42,105 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:33:47,125 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:34:52,141 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:35:57,157 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:37:02,178 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:38:01,505 - ERROR - wz_Lampe: Failed to send_command: info
2021-01-08 11:38:07,195 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:39:12,216 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:40:17,236 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:41:23,932 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:42:28,945 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:43:33,961 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:44:38,978 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:45:44,000 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:46:49,017 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:46:51,971 - ERROR - fhempy.lib.fhem: Timeout - NO RESPONSE for command: readingsBulkUpdateIfChanged($defs{'da_LEDStrip'},'is_on','0');;
2021-01-08 11:46:52,117 - ERROR - fhempy.lib.fhem: Timeout - NO RESPONSE for command: readingsBulkUpdateIfChanged($defs{'MEDIONRadio_MediaRenderer'},'media_duration','');;
2021-01-08 11:47:54,041 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:48:06,521 - ERROR - wz_Lampe: Failed to send_command: info
2021-01-08 11:48:59,058 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:50:04,075 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:51:09,092 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:52:14,110 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:53:19,123 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:54:24,141 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:55:29,155 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:56:34,178 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:57:39,195 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:58:11,535 - ERROR - wz_Lampe: Failed to send_command: info
2021-01-08 11:58:44,214 - ERROR - wz_Lampe: Failed to send_command: status
2021-01-08 11:59:07,072 - INFO - fhempy.lib.pkg_installer: Attempting install of fhempy
2021-01-08 11:59:15,462 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<PyBinding.onMessage() done, defined at /opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py:123> exception=SystemExit(1)>
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 125, in onMessage
await self._onMessage(payload)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 377, in _onMessage
raise se
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 158, in _onMessage
sys.exit(1)
SystemExit: 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
self._run_once()
File "/usr/lib/python3.7/asyncio/base_events.py", line 1775, in _run_once
handle._run()
File "/usr/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 127, in onMessage
sys.exit(1)
SystemExit: 1
2021-01-08 11:59:16,532 - INFO - fhempy.lib.fhem_pythonbinding: Starting fhempy...
2021-01-08 11:59:16,551 - INFO - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
2021-01-08 11:59:26,016 - INFO - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127.0.0.1
2021-01-08 11:59:27,195 - ERROR - da_LEDStrip: Annotation is not class: typing.Tuple[int, int, int]
/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/miio/miio.py:73: UserWarning: Please consider using python-yeelight for more complete support.
self._device = self._miio_device_class(ip=self._miio_ip, token=self._miio_token)
2021-01-08 11:59:27,213 - ERROR - wz_Lampe: Annotation is not class: typing.Tuple[int, int, int]
Anmerkungen:
- wz_Lampe ist die Yeelight Lampe ohne Strom
- FHEM-Update war heute um 10:15 Uhr
Danke schon mal :)
Keiner der Punkte ist eilig.
Viele Grüße
Dieter
Hi,
hier die Antworten:
- miio: Du kannst on, off auch ohne Parameter nutzen. Die Erklärung der Parameter sollte jeweils nach Auswahl im set erscheinen. Beispiel on: transition mode
Nun ist klar, dass transation und mode noch nicht viel aussagen, die Implementierung ist aber so generisch, dass jegliche Weiterentwicklungen in miio automatisch auch in FHEM funktionieren. Wenn man genauer wissen will was es ist, kann man noch im Source Code von miio nachschauen, Beispiel: https://github.com/rytilahti/python-miio/blob/master/miio/yeelight.py#L162
- fhempy Update: Das ist normal, bei einem Update wird die Verbindung kurz getrennt, da der Remote Peer neu gestartet wird.
Bitte erstell für die Bluetooth Fragen einen eigenen Thread (fhempy: Bluetooth Fragen), da das hier sonst zu OT wird. Schick mir gerne eine PN mit dem Link auf den Thread, dann antworte ich dir dort.
Danke für die Antworten :)
Meine Bluetooth-Fragen sind nun in einem neuen Thread (https://forum.fhem.de/index.php/topic,117689.0.html)
Bzgl. Yeelight und den settern on und off habe ich festgestellt, dass bei mir gar nichts passiert. Auch wenn ich 0 oder 1 als Transition Mode setze passiert hier nichts. Nur mit toggle kann ich den Yeelight Strip ein und ausschalten. Die Readings sehen gut aus und "is_on" wird beim Toggle korrekt aktualisiert.
Viele Grüße
Dieter
Verstehe ich richtig, dass ein normales "on" ohne weitere Argumente nicht geht? Bekommst du im PythonBinding Log eventuell einen Fehler dazu?
Ja, alles richtig verstanden. Leider keinen einzigen Eintrag im Log. Verbose ist auf 5.
on 0 0 klappt auch nicht?
Aah: on 0 0 funktioniert und off 0 auch
Sehr gut, dann weiß ich schon ungefähr woran es liegt. Parameter die nicht angegeben werden, muss ich beim Aufruf der Funktion weglassen und das Risiko eingehen, dass diese Optional sind. Vielleicht kann ich das so umbauen.
Übrigens, was steht bei dir im Hilfetext unter dem set ... on? Steht da "Arguments: transition mode" oder "Arguments: transition=0 mode=0"?
bei on steht "Arguments: transition mode" - das hatte/hätte ich als einen Begriff interpretiert
bei off steht nur "Arguments: transition" - aha, deshalb reicht hier eine Null
Ok, das kann ich vielleicht anpassen, dass dort auch der Default Wert steht.
Ich baue das mal morgen ein, dann sollte es auch ohne Argumente gehen.
on 10 1 oder so müsste eigentlich auch gehen.
Guten Morgen Dominik,
ja on 10 1 geht z.B. auch
Hallo Dominik,
jetzt bin ich erfolgrauch auf Version 0.1.25 und habe es nochmal mit set für on und off ausprobiert.
Sollte es schon ohne Argumente gehen? Ich muss immer noch die Argumente mit angeben.
Einziger Unterschied:
Nun steht "Arguments: transition=0 mode=0" bei on, "Arguments: transition=0" bei off und auch bei anderen set Kommandos noch etwas mehr brauchbare Info.
Viele Grüße
Dieter
Ok, dann muss ich mir das nochmals anschauen, sollte nämlich gehen.
Hallo Dominik,
vielen Dank erstmal für deinen Support. Ich habe mir nun die 10 Seiten mal durchgelesen.
Dann habe ich angefangen das Modul in meinen FHEM anzulegen. Es hat meines Erachtens auch alles soweit geklappt.
Dann habe versucht meinen Dreame D9 (Saugroboter aus demXiaomi Ökosystem) und konnte ihn auch einbinden mit dem entsprechenden Token aus "xiaomi_tokens"(Hier empfehlt es sich statt der E-Mail Adresse den Usernamen aus der Xiaomi Home APP zu nehmen statt der E-Mail. Ist eine lange Zahl). das hat auch geklappt aber es kommen nur ein paar readings rein.
defmod miio_vacuum_382944668 PythonModule miio vacuum 192.168.178.189 6*************
attr miio_vacuum_382944668 IODev local_pybinding
attr miio_vacuum_382944668 room Saugroboter
setstate miio_vacuum_382944668 active
setstate miio_vacuum_382944668 2021-03-02 11:14:58 accesspoint_bssid ********
setstate miio_vacuum_382944668 2021-03-02 13:25:46 accesspoint_rssi -57
setstate miio_vacuum_382944668 2021-03-02 11:14:58 accesspoint_ssid *********
setstate miio_vacuum_382944668 2021-03-02 11:14:58 firmware_version 3.5.8_1072
setstate miio_vacuum_382944668 2021-03-02 11:14:58 hardware_version Linux
setstate miio_vacuum_382944668 2021-03-02 11:14:58 mac_address ************
setstate miio_vacuum_382944668 2021-03-02 11:14:58 model dreame.vacuum.p2009
setstate miio_vacuum_382944668 2021-03-02 11:14:58 network_interface_gw 192.168.178.1
setstate miio_vacuum_382944668 2021-03-02 11:14:58 network_interface_localIp 192.168.178.189
setstate miio_vacuum_382944668 2021-03-02 11:14:58 network_interface_mask 255.255.255.0
setstate miio_vacuum_382944668 2021-03-02 11:15:19 presence offline
setstate miio_vacuum_382944668 2021-03-02 13:34:51 state active
mit "journalctl -u fhempy.service -f" bekomme ich nur folgenden output:
Mär 02 13:47:17 raspberrypi fhempy[1262]: 2021-03-02 13:47:17,426 - ERROR - miio_vacuum_382944668: Failed to send_command: status
Mär 02 13:47:25 raspberrypi fhempy[1262]: 2021-03-02 13:47:25,840 - INFO - asyncio: poll 59999.213 ms took 8385.619 ms: 1 events
Mär 02 13:47:29 raspberrypi fhempy[1262]: 2021-03-02 13:47:29,475 - INFO - asyncio: poll 51604.024 ms took 3625.210 ms: 1 events
Mär 02 13:48:17 raspberrypi fhempy[1262]: 2021-03-02 13:48:17,502 - INFO - asyncio: poll 47936.592 ms took 47985.100 ms: timeout
Mär 02 13:48:37 raspberrypi fhempy[1262]: 2021-03-02 13:48:37,705 - ERROR - miio.miioprotocol: Got error when receiving: timed out
Mär 02 13:48:37 raspberrypi fhempy[1262]: 2021-03-02 13:48:37,707 - INFO - asyncio: poll 446199.593 ms took 20194.595 ms: 1 events
Mär 02 13:48:37 raspberrypi fhempy[1262]: 2021-03-02 13:48:37,711 - ERROR - miio_vacuum_382944668: Failed to send_command: status
Mär 02 13:49:37 raspberrypi fhempy[1262]: 2021-03-02 13:49:37,801 - INFO - asyncio: poll 59998.946 ms took 60059.185 ms: timeout
Mär 02 13:49:57 raspberrypi fhempy[1262]: 2021-03-02 13:49:57,986 - ERROR - miio.miioprotocol: Got error when receiving: timed out
Mär 02 13:49:57 raspberrypi fhempy[1262]: 2021-03-02 13:49:57,987 - INFO - asyncio: poll 365901.344 ms took 20176.564 ms: 1 events
Mär 02 13:49:57 raspberrypi fhempy[1262]: 2021-03-02 13:49:57,989 - ERROR - miio_vacuum_382944668: Failed to send_command: status
Mär 02 13:50:58 raspberrypi fhempy[1262]: 2021-03-02 13:50:58,084 - INFO - asyncio: poll 59998.944 ms took 60059.175 ms: timeout
Mär 02 13:51:18 raspberrypi fhempy[1262]: 2021-03-02 13:51:18,280 - ERROR - miio.miioprotocol: Got error when receiving: timed out
Mär 02 13:51:18 raspberrypi fhempy[1262]: 2021-03-02 13:51:18,282 - INFO - asyncio: poll 285617.916 ms took 20187.843 ms: 1 events
Mär 02 13:51:18 raspberrypi fhempy[1262]: 2021-03-02 13:51:18,286 - ERROR - miio_vacuum_382944668: Failed to send_command: status
Kannst du mir weiter helfen?
VG
Madstar2409
Ich vermute der Saugroboter liefert einen Status zurück der in python-miio noch nicht implementiert ist. Kannst du das Gerät steuern? Was passiert wenn du ein Command an das Gerät schickst? Bzw. auch mal "consumption" oder so ausprobieren, da sollte auch was zurück kommen.
Kommandos funktionieren nicht. In den Logs sehe ich auch nichts außer die genannten ERROR Meldungen. Ich habe mal ein bisschen im Netz gestöbert. Ich bin dabei auf dieses Skript gestoßen.
https://github.com/microfrost1/xiaomi_vacuum/commit/896a5f5b5bc649abd90dca67a607f0139cdaec9b
Könnte man das Skript adaptieren für dein Modul?
VG
Madstar2409
Probier mal
defmod miio_vacuum_382944668 PythonModule miio dreamevacuum 192.168.178.189 6*************
also statt vacuum steht dreamevacuum, bitte davor das bestehende Device loeschen
Falls es noch nicht funktioniert, muessen wir leider noch auf das Update der miio Library warten. Der Support wurde erst vor 6 Tagen hinzugefuegt und ein neues Package gibt es noch nicht.
Habe ich getestet. Bekomme "Unknown module PhytonModule".
In welchen Intervallen wird die library aktualisiert?
Sorry, ich meinte define statt defmod.
Habe ich schon verstanden. Trotzdem gleiche Meldung. In welchen Pfad liegen die Python Skripte eigentlich? Könnte ich es manuell hinzufügen?
Aber Moment, wenn du unknown Module für PythonModule bekommst, dann ist fhempy nicht installiert!? Mit Vacuum geht's?
Du hast recht. Ein Eingabefehler von mir. Jetzt konnte ich das Gerät anlegen aber es kommen keine Readings rein.
Ok, dann müssen wir auf ein Update von python-miio (https://github.com/rytilahti/python-miio) warten. Wenn da ein neues Release kommt, kann ich auch fhempy miio aktualisieren.
Zitat von: dominik am 04 März 2021, 20:05:03
Ok, dann müssen wir auf ein Update von python-miio (https://github.com/rytilahti/python-miio) warten. Wenn da ein neues Release kommt, kann ich auch fhempy miio aktualisieren.
Python Miio 0.5.5 ist seit 2 Tagen raus. Kannst du bitte fhempy updaten? ;-)
Danke im Voraus
MFG
Mad
Hallo Dominik,
ich habe mich mal durch die ganzen Seiten durchgelesen und wollte es jetzt mal probieren.
Ich habe alles eingerichtet.
Die Verbingdung steht.
Internals:
BindingType Python
CFGFN
DEF Python
DeviceName ws:127.0.0.1:15733
FD 61
FUUID 606c5ed6-f33f-5815-ac3e-d8e0c540298f3a57
IP 127.0.0.1
NAME local_pybinding
NR 66676
NTFY_ORDER 50-local_pybinding
PARTIAL
PORT 15733
STATE opened
TYPE BindingsIo
WEBSOCKET 1
localBinding 1
nextOpenDelay 10
READINGS:
2021-04-06 15:47:47 info ready
2021-04-06 15:47:47 state opened
2021-04-06 15:47:47 version 0.1.57
args:
local_pybinding
BindingsIo
Python
argsh:
Attributes:
room hidden
Gerät ist eingerichtet:
Internals:
CFGFN
DEF miio airpurifier 192.168.178.58 xxxxxx
FUUID 606c5f67-f33f-5815-9ffc-ff7fcdfaf3a3bf77
IODev local_pybinding
NAME AirPurifier3CTest
NR 66749
PYTHONTYPE miio
STATE active
TYPE PythonModule
READINGS:
2021-04-06 15:18:39 accesspoint_bssid xxxxx
2021-04-06 15:18:39 accesspoint_primary 11
2021-04-06 15:18:39 accesspoint_rssi -42
2021-04-06 15:18:39 accesspoint_ssid xxxxx
2021-04-06 15:33:45 fan_level 1
2021-04-06 15:18:39 firmware_version 2.0.8
2021-04-06 15:18:39 hardware_version esp32
2021-04-06 15:33:45 led_brightness LedBrightness.Dim
2021-04-06 15:18:39 mac_address xxxx
2021-04-06 15:18:39 model zhimi.airpurifier.mb4
2021-04-06 15:18:39 network_interface_gw 192.168.178.1
2021-04-06 15:18:39 network_interface_localIp 192.168.178.58
2021-04-06 15:18:39 network_interface_mask 255.255.255.0
2021-04-06 15:47:48 presence offline
2021-04-06 15:45:50 state active
args:
AirPurifier3CTest
PythonModule
miio
airpurifier
192.168.178.58
xxxxx
argsh:
Attributes:
IODev local_pybinding
Es wird erkannt und auch einige Readings korrekt ausgelesen. Wird aber immer als offline angezeigt.
Im log erhalte ich folgendes:
-- Logs begin at Sat 2021-03-13 15:53:44 CET. --
Apr 06 15:44:28 fhemserver systemd[1]: fhempy.service: Scheduled restart job, restart counter is at 105.
Apr 06 15:44:28 fhemserver systemd[1]: Stopped FHEM PythonBinding.
Apr 06 15:44:28 fhemserver systemd[1]: Started FHEM PythonBinding.
Apr 06 15:44:30 fhemserver fhempy[27792]: 2021-04-06 15:44:30,181 - INFO - fhempy.lib.fhem_pythonbinding: Starting fhempy...
Apr 06 15:44:30 fhemserver fhempy[27792]: 2021-04-06 15:44:30,217 - INFO - fhempy.lib.fhem_pythonbinding: Advertise fhempy on local netw ork
Apr 06 15:44:31 fhemserver fhempy[27792]: 2021-04-06 15:44:31,046 - INFO - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
Apr 06 15:44:40 fhemserver fhempy[27792]: 2021-04-06 15:44:40,880 - INFO - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127. 0.0.1
Apr 06 15:44:40 fhemserver fhempy[27792]: 2021-04-06 15:44:40,916 - WARNING - asyncio: Executing <Handle <TaskWakeupMethWrapper object at 0 x75ba0f10>(<Future finis...events.py:396>) created at /usr/lib/python3.7/asyncio/streams.py:408> took 0.300 seconds
Apr 06 15:44:40 fhemserver fhempy[27792]: 2021-04-06 15:44:40,925 - INFO - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 192. 168.178.45
Apr 06 15:44:41 fhemserver fhempy[27792]: 2021-04-06 15:44:41,134 - INFO - fhempy.lib.pkg_installer: Attempting install of python-miio>= 0.5.4
Apr 06 15:47:27 fhemserver fhempy[27792]: 2021-04-06 15:47:27,114 - INFO - fhempy.lib.pkg_installer: Attempting install of fhempy
Apr 06 15:47:36 fhemserver fhempy[27792]: 2021-04-06 15:47:36,734 - ERROR - asyncio: Task exception was never retrieved
Apr 06 15:47:36 fhemserver fhempy[27792]: future: <Task finished coro=<PyBinding.onMessage() done, defined at /home/pi/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py :126> exception=SystemExit(1) created at /usr/lib/python3.7/asyncio/tasks.py:325>
Apr 06 15:47:36 fhemserver fhempy[27792]: source_traceback: Object created at (most recent call last):
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/home/pi/.local/bin/fhempy", line 121, in <module>
Apr 06 15:47:36 fhemserver fhempy[27792]: fpb.run()
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/home/pi/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 471, in run
Apr 06 15:47:36 fhemserver fhempy[27792]: asyncio.get_event_loop().run_forever()
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/usr/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
Apr 06 15:47:36 fhemserver fhempy[27792]: self._run_once()
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/usr/lib/python3.7/asyncio/base_events.py", line 1767, in _run_once
Apr 06 15:47:36 fhemserver fhempy[27792]: handle._run()
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/usr/lib/python3.7/asyncio/events.py", line 88, in _run
Apr 06 15:47:36 fhemserver fhempy[27792]: self._context.run(self._callback, *self._args)
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/home/pi/.local/lib/python3.7/site-packages/websockets/server.py", line 191, in handler
Apr 06 15:47:36 fhemserver fhempy[27792]: await self.ws_handler(self, path)
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/home/pi/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 67, in pybinding
Apr 06 15:47:36 fhemserver fhempy[27792]: asyncio.create_task(pb.onMessage(message))
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/usr/lib/python3.7/asyncio/tasks.py", line 325, in create_task
Apr 06 15:47:36 fhemserver fhempy[27792]: return loop.create_task(coro)
Apr 06 15:47:36 fhemserver fhempy[27792]: Traceback (most recent call last):
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/home/pi/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 128, in onMessage
Apr 06 15:47:36 fhemserver fhempy[27792]: await self._onMessage(payload)
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/home/pi/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 391, in _onMessage
Apr 06 15:47:36 fhemserver fhempy[27792]: raise se
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/home/pi/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 170, in _onMessage
Apr 06 15:47:36 fhemserver fhempy[27792]: sys.exit(1)
Apr 06 15:47:36 fhemserver fhempy[27792]: SystemExit: 1
Apr 06 15:47:36 fhemserver fhempy[27792]: During handling of the above exception, another exception occurred:
Apr 06 15:47:36 fhemserver fhempy[27792]: Traceback (most recent call last):
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/usr/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
Apr 06 15:47:36 fhemserver fhempy[27792]: self._run_once()
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/usr/lib/python3.7/asyncio/base_events.py", line 1767, in _run_once
Apr 06 15:47:36 fhemserver fhempy[27792]: handle._run()
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/usr/lib/python3.7/asyncio/events.py", line 88, in _run
Apr 06 15:47:36 fhemserver fhempy[27792]: self._context.run(self._callback, *self._args)
Apr 06 15:47:36 fhemserver fhempy[27792]: File "/home/pi/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 130, in onMessage
Apr 06 15:47:36 fhemserver fhempy[27792]: sys.exit(1)
Apr 06 15:47:36 fhemserver fhempy[27792]: SystemExit: 1
Apr 06 15:47:37 fhemserver systemd[1]: fhempy.service: Main process exited, code=exited, status=1/FAILURE
Apr 06 15:47:37 fhemserver systemd[1]: fhempy.service: Failed with result 'exit-code'.
Apr 06 15:47:37 fhemserver systemd[1]: fhempy.service: Service RestartSec=100ms expired, scheduling restart.
Apr 06 15:47:37 fhemserver systemd[1]: fhempy.service: Scheduled restart job, restart counter is at 106.
Apr 06 15:47:37 fhemserver systemd[1]: Stopped FHEM PythonBinding.
Apr 06 15:47:37 fhemserver systemd[1]: Started FHEM PythonBinding.
Apr 06 15:47:38 fhemserver fhempy[29683]: 2021-04-06 15:47:38,464 - INFO - fhempy.lib.fhem_pythonbinding: Starting fhempy...
Apr 06 15:47:38 fhemserver fhempy[29683]: 2021-04-06 15:47:38,503 - INFO - fhempy.lib.fhem_pythonbinding: Advertise fhempy on local network
Apr 06 15:47:39 fhemserver fhempy[29683]: 2021-04-06 15:47:39,346 - INFO - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
Apr 06 15:47:47 fhemserver fhempy[29683]: 2021-04-06 15:47:47,227 - INFO - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 192.168.178.45
Apr 06 15:47:47 fhemserver fhempy[29683]: 2021-04-06 15:47:47,247 - WARNING - asyncio: Executing <Handle <TaskWakeupMethWrapper object at 0x75bd08f0>(<Future finis...events.py:396>) cre ated at /usr/lib/python3.7/asyncio/streams.py:408> took 0.281 seconds
Apr 06 15:47:47 fhemserver fhempy[29683]: 2021-04-06 15:47:47,260 - INFO - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127.0.0.1
Apr 06 15:47:48 fhemserver fhempy[29683]: 2021-04-06 15:47:48,836 - ERROR - AirPurifier3CTest: Failed to send_command: status
Apr 06 15:47:51 fhemserver fhempy[29683]: 2021-04-06 15:47:51,623 - ERROR - AirPurifier3CTest: Failed to send_command: info
Python läuft als Python 3.7.3
Hast du mir einen Tipp?
Hallo Dominik,
ich habe es nochmal weiter getestet. Habe das unisntall über PIP durchgeführt, da ich mir nicht sicher war.
Bekomme jetzt folgende Meldungen
2021-04-07 09:33:42,364 - INFO - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
Traceback (most recent call last):
File "FHEM/bindings/python/bin/fhempy", line 121, in <module>
fpb.run()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 468, in run
pybinding, "0.0.0.0", port, ping_timeout=None, ping_interval=None
File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
return future.result()
File "/usr/lib/python3.7/asyncio/tasks.py", line 603, in _wrap_awaitable
return (yield from awaitable.__await__())
File "/opt/fhem/.local/lib/python3.7/site-packages/websockets/server.py", line 965, in __await_impl__
server = await self._create_server()
File "/usr/lib/python3.7/asyncio/base_events.py", line 1378, in create_server
% (sa, err.strerror.lower())) from None
OSError: [Errno 98] error while attempting to bind on address ('0.0.0.0', 15733): address already in use
und
Apr 07 09:26:12 fhemserver systemd[1]: Started FHEM PythonBinding.
Apr 07 09:26:13 fhemserver fhempy[29451]: 2021-04-07 09:26:13,984 - INFO - fhempy.lib.fhem_pythonbinding: Starting fhempy...
Apr 07 09:26:14 fhemserver fhempy[29451]: 2021-04-07 09:26:14,020 - INFO - fhempy.lib.fhem_pythonbinding: Advertise fhempy on local network
Apr 07 09:26:14 fhemserver fhempy[29451]: 2021-04-07 09:26:14,850 - INFO - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
Apr 07 09:27:25 fhemserver fhempy[29451]: 2021-04-07 09:27:25,436 - INFO - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127.0.0.1
Apr 07 09:27:25 fhemserver fhempy[29451]: 2021-04-07 09:27:25,465 - WARNING - asyncio: Executing <Handle <TaskWakeupMethWrapper object at 0x75b79910>(<Future finis...events.py:396>) created at /usr/lib/python3.7/asyncio/streams.py:408> took 0.289 seconds
Apr 07 09:32:01 fhemserver fhempy[29451]: 2021-04-07 09:32:01,195 - ERROR - fhempy.lib.fhem_pythonbinding: Connection closed error
Apr 07 09:32:01 fhemserver fhempy[29451]: Traceback (most recent call last):
Apr 07 09:32:01 fhemserver fhempy[29451]: File "/home/pi/.local/lib/python3.7/site-packages/websockets/protocol.py", line 827, in transfer_data
Apr 07 09:32:01 fhemserver fhempy[29451]: message = await self.read_message()
Apr 07 09:32:01 fhemserver fhempy[29451]: File "/home/pi/.local/lib/python3.7/site-packages/websockets/protocol.py", line 895, in read_message
Apr 07 09:32:01 fhemserver fhempy[29451]: frame = await self.read_data_frame(max_size=self.max_size)
Apr 07 09:32:01 fhemserver fhempy[29451]: File "/home/pi/.local/lib/python3.7/site-packages/websockets/protocol.py", line 971, in read_data_frame
Apr 07 09:32:01 fhemserver fhempy[29451]: frame = await self.read_frame(max_size)
Apr 07 09:32:01 fhemserver fhempy[29451]: File "/home/pi/.local/lib/python3.7/site-packages/websockets/protocol.py", line 1051, in read_frame
Apr 07 09:32:01 fhemserver fhempy[29451]: extensions=self.extensions,
Apr 07 09:32:01 fhemserver fhempy[29451]: File "/home/pi/.local/lib/python3.7/site-packages/websockets/framing.py", line 105, in read
Apr 07 09:32:01 fhemserver fhempy[29451]: data = await reader(2)
Apr 07 09:32:01 fhemserver fhempy[29451]: File "/usr/lib/python3.7/asyncio/streams.py", line 677, in readexactly
Apr 07 09:32:01 fhemserver fhempy[29451]: raise IncompleteReadError(incomplete, n)
Apr 07 09:32:01 fhemserver fhempy[29451]: asyncio.streams.IncompleteReadError: 0 bytes read on a total of 2 expected bytes
Apr 07 09:32:01 fhemserver fhempy[29451]: The above exception was the direct cause of the following exception:
Apr 07 09:32:01 fhemserver fhempy[29451]: Traceback (most recent call last):
Apr 07 09:32:01 fhemserver fhempy[29451]: File "/home/pi/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 66, in pybinding
Apr 07 09:32:01 fhemserver fhempy[29451]: async for message in websocket:
Apr 07 09:32:01 fhemserver fhempy[29451]: File "/home/pi/.local/lib/python3.7/site-packages/websockets/protocol.py", line 439, in __aiter__
Apr 07 09:32:01 fhemserver fhempy[29451]: yield await self.recv()
Apr 07 09:32:01 fhemserver fhempy[29451]: File "/home/pi/.local/lib/python3.7/site-packages/websockets/protocol.py", line 509, in recv
Apr 07 09:32:01 fhemserver fhempy[29451]: await self.ensure_open()
Apr 07 09:32:01 fhemserver fhempy[29451]: File "/home/pi/.local/lib/python3.7/site-packages/websockets/protocol.py", line 803, in ensure_open
Apr 07 09:32:01 fhemserver fhempy[29451]: raise self.connection_closed_exc()
Apr 07 09:32:01 fhemserver fhempy[29451]: websockets.exceptions.ConnectionClosedError: code = 1006 (connection closed abnormally [internal]), no reason
Apr 07 09:32:01 fhemserver fhempy[29451]: 2021-04-07 09:32:01,199 - INFO - fhempy.lib.fhem_pythonbinding: Restart binding
Apr 07 09:32:01 fhemserver systemd[1]: fhempy.service: Main process exited, code=exited, status=1/FAILURE
Apr 07 09:32:01 fhemserver systemd[1]: fhempy.service: Failed with result 'exit-code'.
Apr 07 09:32:01 fhemserver systemd[1]: fhempy.service: Service RestartSec=100ms expired, scheduling restart.
Apr 07 09:32:01 fhemserver systemd[1]: fhempy.service: Scheduled restart job, restart counter is at 110.
Apr 07 09:32:01 fhemserver systemd[1]: Stopped FHEM PythonBinding.
Apr 07 09:32:01 fhemserver systemd[1]: Started FHEM PythonBinding.
Apr 07 09:32:02 fhemserver fhempy[464]: 2021-04-07 09:32:02,884 - INFO - fhempy.lib.fhem_pythonbinding: Starting fhempy...
Apr 07 09:32:02 fhemserver fhempy[464]: 2021-04-07 09:32:02,918 - INFO - fhempy.lib.fhem_pythonbinding: Advertise fhempy on local network
Apr 07 09:32:03 fhemserver fhempy[464]: 2021-04-07 09:32:03,743 - INFO - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
Apr 07 09:33:42 fhemserver fhempy[464]: 2021-04-07 09:33:42,884 - INFO - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127.0.0.1
Apr 07 09:33:42 fhemserver fhempy[464]: 2021-04-07 09:33:42,904 - WARNING - asyncio: Executing <Handle <TaskWakeupMethWrapper object at 0x75b8da70>(<Future finis...events.py:396>) created at /usr/lib/python3.7/asyncio/streams.py:408> took 0.281 seconds
Bräuchte Hilfe!
Hallo Dominik,
habe es jetzt hinbekommen.
Leider erhalte ich keine Daten bzw es funktioniert kein Befehl.
HIer das Log:
2021-04-07 20:14:23 PythonModule AirPurifier3CTest on
2021.04.07 20:14:26 3 : MQTT2_DEVICE set MQTT2_DVES_01DE2C on
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:26 4 : BindingsIo: >>> WS: {"awaitId": 22523105, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBeginUpdate($defs{'AirPurifier3CTest'});;"}
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:26 5 : processMessage: {"awaitId": 22523105, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBeginUpdate($defs{'AirPurifier3CTest'});;"}
2021.04.07 20:14:26 4 : BindingsIo: <<< WS: {"error":0,"awaitId":22523105,"result":"2021-04-07 20:14:26"}
2021.04.07 20:14:26 5 : SW: 7b226572726f72223a302c2261776169744964223a32323532333130352c22726573756c74223a22323032312d30342d30372032303a31343a3236227d
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:26 4 : BindingsIo: >>> WS: {"awaitId": 41328151, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'average_aqi','');;"}
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:26 5 : processMessage: {"awaitId": 41328151, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'average_aqi','');;"}
2021.04.07 20:14:26 4 : BindingsIo: <<< WS: {"result":null,"awaitId":41328151,"error":0}
2021.04.07 20:14:26 5 : SW: 7b22726573756c74223a6e756c6c2c2261776169744964223a34313332383135312c226572726f72223a307d
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:26 4 : BindingsIo: >>> WS: {"awaitId": 92597957, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'humidity','');;"}
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:26 5 : processMessage: {"awaitId": 92597957, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'humidity','');;"}
2021.04.07 20:14:26 4 : BindingsIo: <<< WS: {"awaitId":92597957,"result":null,"error":0}
2021.04.07 20:14:26 5 : SW: 7b2261776169744964223a39323539373935372c22726573756c74223a6e756c6c2c226572726f72223a307d
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:26 4 : BindingsIo: >>> WS: {"awaitId": 67114349, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'temperature','');;"}
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:26 5 : processMessage: {"awaitId": 67114349, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'temperature','');;"}
2021.04.07 20:14:26 4 : BindingsIo: <<< WS: {"error":0,"awaitId":67114349,"result":null}
2021.04.07 20:14:26 5 : SW: 7b226572726f72223a302c2261776169744964223a36373131343334392c22726573756c74223a6e756c6c7d
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:26 4 : BindingsIo: >>> WS: {"awaitId": 17606306, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'fan_level','1');;"}
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:26 5 : processMessage: {"awaitId": 17606306, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'fan_level','1');;"}
2021.04.07 20:14:26 4 : BindingsIo: <<< WS: {"error":0,"awaitId":17606306,"result":null}
2021.04.07 20:14:26 5 : SW: 7b226572726f72223a302c2261776169744964223a31373630363330362c22726573756c74223a6e756c6c7d
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:26 4 : BindingsIo: >>> WS: {"awaitId": 47682985, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'led','');;"}
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:26 5 : processMessage: {"awaitId": 47682985, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'led','');;"}
2021.04.07 20:14:26 4 : BindingsIo: <<< WS: {"awaitId":47682985,"result":null,"error":0}
2021.04.07 20:14:26 5 : SW: 7b2261776169744964223a34373638323938352c22726573756c74223a6e756c6c2c226572726f72223a307d
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:26 4 : BindingsIo: >>> WS: {"awaitId": 22625057, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'led_brightness','LedBrightness.Dim');;"}
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:26 5 : processMessage: {"awaitId": 22625057, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'led_brightness','LedBrightness.Dim');;"}
2021.04.07 20:14:26 4 : BindingsIo: <<< WS: {"result":null,"awaitId":22625057,"error":0}
2021.04.07 20:14:26 5 : SW: 7b22726573756c74223a6e756c6c2c2261776169744964223a32323632353035372c226572726f72223a307d
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:26 4 : BindingsIo: >>> WS: {"awaitId": 99876465, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'buzzer_volume','');;"}
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:26 5 : processMessage: {"awaitId": 99876465, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'buzzer_volume','');;"}
2021.04.07 20:14:26 4 : BindingsIo: <<< WS: {"error":0,"awaitId":99876465,"result":null}
2021.04.07 20:14:26 5 : SW: 7b226572726f72223a302c2261776169744964223a39393837363436352c22726573756c74223a6e756c6c7d
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:26 4 : BindingsIo: >>> WS: {"awaitId": 58849204, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'favorite_level','');;"}
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:26 5 : processMessage: {"awaitId": 58849204, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'favorite_level','');;"}
2021.04.07 20:14:26 4 : BindingsIo: <<< WS: {"awaitId":58849204,"result":null,"error":0}
2021.04.07 20:14:26 5 : SW: 7b2261776169744964223a35383834393230342c22726573756c74223a6e756c6c2c226572726f72223a307d
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:26 4 : BindingsIo: >>> WS: {"awaitId": 68364599, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'use_time','');;"}
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:26 5 : processMessage: {"awaitId": 68364599, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'use_time','');;"}
2021.04.07 20:14:26 4 : BindingsIo: <<< WS: {"result":null,"awaitId":68364599,"error":0}
2021.04.07 20:14:26 5 : SW: 7b22726573756c74223a6e756c6c2c2261776169744964223a36383336343539392c226572726f72223a307d
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:26 4 : BindingsIo: >>> WS: {"awaitId": 85321391, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'purify_volume','');;"}
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:26 5 : processMessage: {"awaitId": 85321391, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'purify_volume','');;"}
2021.04.07 20:14:26 4 : BindingsIo: <<< WS: {"result":null,"awaitId":85321391,"error":0}
2021.04.07 20:14:26 5 : SW: 7b22726573756c74223a6e756c6c2c2261776169744964223a38353332313339312c226572726f72223a307d
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:26 4 : BindingsIo: >>> WS: {"awaitId": 73922346, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'filter_rfid_product_id','');;"}
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:26 5 : processMessage: {"awaitId": 73922346, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'filter_rfid_product_id','');;"}
2021.04.07 20:14:26 4 : BindingsIo: <<< WS: {"result":null,"awaitId":73922346,"error":0}
2021.04.07 20:14:26 5 : SW: 7b22726573756c74223a6e756c6c2c2261776169744964223a37333932323334362c226572726f72223a307d
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:26 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:26 4 : BindingsIo: >>> WS: {"awaitId": 86108279, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'filter_rfid_tag','');;"}
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:26 5 : processMessage: {"awaitId": 86108279, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'filter_rfid_tag','');;"}
2021.04.07 20:14:26 4 : BindingsIo: <<< WS: {"error":0,"result":null,"awaitId":86108279}
2021.04.07 20:14:26 5 : SW: 7b226572726f72223a302c22726573756c74223a6e756c6c2c2261776169744964223a38363130383237397d
2021.04.07 20:14:26 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:27 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:27 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:27 4 : BindingsIo: >>> WS: {"awaitId": 58718439, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'filter_type','');;"}
2021.04.07 20:14:27 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:27 5 : processMessage: {"awaitId": 58718439, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'filter_type','');;"}
2021.04.07 20:14:27 4 : BindingsIo: <<< WS: {"awaitId":58718439,"result":null,"error":0}
2021.04.07 20:14:27 5 : SW: 7b2261776169744964223a35383731383433392c22726573756c74223a6e756c6c2c226572726f72223a307d
2021.04.07 20:14:27 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:27 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:27 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:27 4 : BindingsIo: >>> WS: {"awaitId": 77110550, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsEndUpdate($defs{'AirPurifier3CTest'},1);;"}
2021.04.07 20:14:27 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:27 5 : processMessage: {"awaitId": 77110550, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsEndUpdate($defs{'AirPurifier3CTest'},1);;"}
2021.04.07 20:14:27 4 : BindingsIo: <<< WS: {"error":0,"awaitId":77110550,"result":null}
2021.04.07 20:14:27 5 : SW: 7b226572726f72223a302c2261776169744964223a37373131303535302c22726573756c74223a6e756c6c7d
2021.04.07 20:14:27 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 11822667, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBeginUpdate($defs{'AirPurifier3CTest'});;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 11822667, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBeginUpdate($defs{'AirPurifier3CTest'});;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"error":0,"awaitId":11822667,"result":"2021-04-07 20:14:30"}
2021.04.07 20:14:30 5 : SW: 7b226572726f72223a302c2261776169744964223a31313832323636372c22726573756c74223a22323032312d30342d30372032303a31343a3330227d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 66388217, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'average_aqi','');;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 66388217, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'average_aqi','');;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"error":0,"result":null,"awaitId":66388217}
2021.04.07 20:14:30 5 : SW: 7b226572726f72223a302c22726573756c74223a6e756c6c2c2261776169744964223a36363338383231377d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 82135233, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'humidity','');;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 82135233, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'humidity','');;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"error":0,"awaitId":82135233,"result":null}
2021.04.07 20:14:30 5 : SW: 7b226572726f72223a302c2261776169744964223a38323133353233332c22726573756c74223a6e756c6c7d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 27564392, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'temperature','');;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 27564392, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'temperature','');;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"error":0,"awaitId":27564392,"result":null}
2021.04.07 20:14:30 5 : SW: 7b226572726f72223a302c2261776169744964223a32373536343339322c22726573756c74223a6e756c6c7d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 88665215, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'fan_level','1');;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 88665215, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'fan_level','1');;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"error":0,"awaitId":88665215,"result":null}
2021.04.07 20:14:30 5 : SW: 7b226572726f72223a302c2261776169744964223a38383636353231352c22726573756c74223a6e756c6c7d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 74564090, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'led','');;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 74564090, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'led','');;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"result":null,"awaitId":74564090,"error":0}
2021.04.07 20:14:30 5 : SW: 7b22726573756c74223a6e756c6c2c2261776169744964223a37343536343039302c226572726f72223a307d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 44498405, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'led_brightness','LedBrightness.Dim');;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 44498405, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'led_brightness','LedBrightness.Dim');;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"error":0,"result":null,"awaitId":44498405}
2021.04.07 20:14:30 5 : SW: 7b226572726f72223a302c22726573756c74223a6e756c6c2c2261776169744964223a34343439383430357d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 23824724, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'buzzer_volume','');;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 23824724, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'buzzer_volume','');;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"awaitId":23824724,"result":null,"error":0}
2021.04.07 20:14:30 5 : SW: 7b2261776169744964223a32333832343732342c22726573756c74223a6e756c6c2c226572726f72223a307d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 15039709, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'favorite_level','');;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 15039709, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'favorite_level','');;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"error":0,"result":null,"awaitId":15039709}
2021.04.07 20:14:30 5 : SW: 7b226572726f72223a302c22726573756c74223a6e756c6c2c2261776169744964223a31353033393730397d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 95212624, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'use_time','');;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 95212624, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'use_time','');;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"error":0,"awaitId":95212624,"result":null}
2021.04.07 20:14:30 5 : SW: 7b226572726f72223a302c2261776169744964223a39353231323632342c22726573756c74223a6e756c6c7d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 61051049, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'purify_volume','');;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 61051049, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'purify_volume','');;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"awaitId":61051049,"result":null,"error":0}
2021.04.07 20:14:30 5 : SW: 7b2261776169744964223a36313035313034392c22726573756c74223a6e756c6c2c226572726f72223a307d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 36568786, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'filter_rfid_product_id','');;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 36568786, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'filter_rfid_product_id','');;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"awaitId":36568786,"result":null,"error":0}
2021.04.07 20:14:30 5 : SW: 7b2261776169744964223a33363536383738362c22726573756c74223a6e756c6c2c226572726f72223a307d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 70908668, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'filter_rfid_tag','');;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 70908668, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'filter_rfid_tag','');;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"awaitId":70908668,"result":null,"error":0}
2021.04.07 20:14:30 5 : SW: 7b2261776169744964223a37303930383636382c22726573756c74223a6e756c6c2c226572726f72223a307d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 91438504, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'filter_type','');;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 91438504, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'filter_type','');;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"error":0,"awaitId":91438504,"result":null}
2021.04.07 20:14:30 5 : SW: 7b226572726f72223a302c2261776169744964223a39313433383530342c22726573756c74223a6e756c6c7d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 43828185, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsEndUpdate($defs{'AirPurifier3CTest'},1);;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 43828185, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsEndUpdate($defs{'AirPurifier3CTest'},1);;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"error":0,"result":null,"awaitId":43828185}
2021.04.07 20:14:30 5 : SW: 7b226572726f72223a302c22726573756c74223a6e756c6c2c2261776169744964223a34333832383138357d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead
2021.04.07 20:14:30 5 : BindingsIo: DevIo_SimpleRead NoTimeout
2021.04.07 20:14:30 4 : BindingsIo: >>> WS: {"awaitId": 91558634, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBeginUpdate($defs{'AirPurifier3CTest'});;readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'presence','online');;readingsEndUpdate($defs{'AirPurifier3CTest'},1);;"}
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: start handling - 1
2021.04.07 20:14:30 5 : processMessage: {"awaitId": 91558634, "NAME": "AirPurifier3CTest", "msgtype": "command", "command": "readingsBeginUpdate($defs{'AirPurifier3CTest'});;readingsBulkUpdateIfChanged($defs{'AirPurifier3CTest'},'presence','online');;readingsEndUpdate($defs{'AirPurifier3CTest'},1);;"}
2021.04.07 20:14:30 4 : BindingsIo: <<< WS: {"awaitId":91558634,"result":null,"error":0}
2021.04.07 20:14:30 5 : SW: 7b2261776169744964223a39313535383633342c22726573756c74223a6e756c6c2c226572726f72223a307d
2021.04.07 20:14:30 5 : BindingsIo: QUEUE: finished handling - 0
Hier das Device
Internals:
CFGFN
DEF miio airpurifiermiot 192.168.178.58 XXXXXXXXXXXXXXXXXXXXXXX
FUUID 606db757-f33f-5815-0acd-662306217abdfa2a
IODev local_pybinding
NAME AirPurifier3CTest
NR 9745
PYTHONTYPE miio
STATE active
TYPE PythonModule
READINGS:
2021-04-07 15:44:58 accesspoint_bssid XXXXXXXXXXXXXXXXXXXXXXX
2021-04-07 15:44:58 accesspoint_primary 11
2021-04-07 15:44:58 accesspoint_rssi -52
2021-04-07 15:44:58 accesspoint_ssid XXXXXXXXXXXXXXXXXXXXXXX
2021-04-07 15:44:58 fan_level 1
2021-04-07 15:44:58 firmware_version 2.0.8
2021-04-07 15:44:58 hardware_version esp32
2021-04-07 15:44:58 led_brightness LedBrightness.Dim
2021-04-07 15:44:58 mac_address XXXXXXXXXXXXXXXXXXXXXXX
2021-04-07 15:44:58 model zhimi.airpurifier.mb4
2021-04-07 15:44:58 network_interface_gw 192.168.178.1
2021-04-07 15:44:58 network_interface_localIp 192.168.178.58
2021-04-07 15:44:58 network_interface_mask 255.255.255.0
2021-04-07 15:44:58 presence online
2021-04-07 15:44:57 state active
args:
AirPurifier3CTest
PythonModule
miio
airpurifiermiot
192.168.178.58
XXXXXXXXXXXXXXXXXXXXXXX
argsh:
Attributes:
IODev local_pybinding
room !
Habe ich noch einen Fehler?
Hi,
sorry für die späte Rückmeldung. Bin seit ein paar Wochen nahezu Tag und Nacht beschäftigt und habe daher im Moment wenig Zeit für FHEM.
Die Readings wurden aber bereits einmal aktualisiert, oder? Ich werde heute noch die miio Library auf 0.5.5.2 aktualisieren, vielleicht gab es dort einen Fehler. Bitte dann morgen um nochmaligen Test.
Hi,
hatte leider auch nicht wirklich Zeit. Habe das Update gemacht. Hat leider nicht funktioniert.
Im Log erhalte ich folgende Meldung:
2021-04-23 15:25:44,974 - INFO - fhempy.lib.pkg_installer: Attempting install of fhempy
2021-04-23 15:25:53,787 - ERROR - asyncio: Task exception was never retrieved
future: <Task finished coro=<PyBinding.onMessage() done, defined at /opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py:126> exception=SystemExit(1) created at /usr/lib/python3.7/asyncio/tasks.py:325>
source_traceback: Object created at (most recent call last):
File "FHEM/bindings/python/bin/fhempy", line 121, in <module>
fpb.run()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 471, in run
asyncio.get_event_loop().run_forever()
File "/usr/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
self._run_once()
File "/usr/lib/python3.7/asyncio/base_events.py", line 1767, in _run_once
handle._run()
File "/usr/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "/opt/fhem/.local/lib/python3.7/site-packages/websockets/server.py", line 191, in handler
await self.ws_handler(self, path)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 67, in pybinding
asyncio.create_task(pb.onMessage(message))
File "/usr/lib/python3.7/asyncio/tasks.py", line 325, in create_task
return loop.create_task(coro)
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 128, in onMessage
await self._onMessage(payload)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 391, in _onMessage
raise se
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 170, in _onMessage
sys.exit(1)
SystemExit: 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.7/asyncio/base_events.py", line 539, in run_forever
self._run_once()
File "/usr/lib/python3.7/asyncio/base_events.py", line 1767, in _run_once
handle._run()
File "/usr/lib/python3.7/asyncio/events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 130, in onMessage
sys.exit(1)
SystemExit: 1
2021-04-23 15:25:55,501 - INFO - fhempy.lib.fhem_pythonbinding: Starting fhempy...
2021-04-23 15:25:55,548 - INFO - fhempy.lib.fhem_pythonbinding: Waiting for FHEM connection
2021-04-23 15:26:04,188 - INFO - fhempy.lib.fhem_pythonbinding: Incoming FHEM connection: 127.0.0.1
2021-04-23 15:26:05,752 - WARNING - asyncio: Executing <Handle <TaskWakeupMethWrapper object at 0x72688d70>(<Future finis...events.py:396>) created at /usr/lib/python3.7/asyncio/tasks.py:368> took 0.450 seconds
@dominik
Seit einigen Tagen nenne ich einen Saug-Wischroboter Viomi S9 mein eigen.defmod Viomi PythonModule miio viomivacuum 192.168.100.148 <token>
attr Viomi IODev local_pybinding
attr Viomi room Labor
setstate Viomi active
setstate Viomi 2021-08-03 18:34:51 IODev Pythonbinding_15733
setstate Viomi 2021-08-03 18:11:47 accesspoint_bssid 18:a6:f7:9e:11:cd
setstate Viomi 2021-08-03 18:11:47 accesspoint_rssi -54
setstate Viomi 2021-08-03 18:11:47 accesspoint_ssid <wlan-ssid>
setstate Viomi 2021-08-03 18:11:47 firmware_version 1.6.2_2251
setstate Viomi 2021-08-03 18:11:47 mac_address 64:90:c1:6f:a5:34
setstate Viomi 2021-08-03 18:11:47 model viomi.vacuum.v18
setstate Viomi 2021-08-03 18:11:47 network_interface_gw 192.168.100.2
setstate Viomi 2021-08-03 18:11:47 network_interface_localIp 192.168.100.148
setstate Viomi 2021-08-03 18:11:47 network_interface_mask 255.255.255.0
setstate Viomi 2021-08-03 18:11:51 presence offline
setstate Viomi 2021-08-03 18:29:23 state active
Offensichtlich sind nur noch Anweisungen über die Cloud erlaubt. Ein paar Daten sind ihm trotzdem herauszulocken:'piid': 2, 'siid': 2, 'value': 0
'piid': 4, 'siid': 2, 'value': 0
'piid': 11, 'siid': 2, 'value': 1
'piid': 12, 'siid': 2, 'value': 3
'piid': 13, 'siid': 2, 'value': 0
'piid': 15, 'siid': 2, 'value': 11
'piid': 16, 'siid': 2, 'value': 8
'piid': 17, 'siid': 2, 'value': 0
'piid': 19, 'siid': 2, 'value': 1
'piid': 1, 'siid': 3, 'value': 100
'piid': 1, 'siid': 4, 'value': 0
'piid': 3, 'siid': 4, 'value': 1
'piid': 6, 'siid': 4, 'value': 1
'piid': 8, 'siid': 4, 'value': 98
'piid': 9, 'siid': 4, 'value': 177
'piid': 10, 'siid': 4, 'value': 99
'piid': 11, 'siid': 4, 'value': 357
'piid': 12, 'siid': 4, 'value': 98
'piid': 13, 'siid': 4, 'value': 177
'piid': 14, 'siid': 4, 'value': 100
'piid': 15, 'siid': 4, 'value': 180
'piid': 17, 'siid': 4, 'value': 1
'piid': 18, 'siid': 4, 'value': 2
'piid': 23, 'siid': 4, 'value': 0
'piid': 24, 'siid': 4, 'value': -7200
'piid': 25, 'siid': 4, 'value': 0
'piid': 26, 'siid': 4, 'value': 690
'piid': 27, 'siid': 4, 'value': 8
'piid': 28, 'siid': 4, 'value': '00000'
'piid': 29, 'siid': 4, 'value': 0
'piid': 30, 'siid': 4, 'value': 1
'piid': 31, 'siid': 4, 'value': 'de'
'piid': 32, 'siid': 4, 'value': 1627727920
'piid': 33, 'siid': 4, 'value': 'curMapUrl'
'piid': 34, 'siid': 4, 'value': 1627733086
'piid': 39, 'siid': 4, 'value': 1
'piid': 40, 'siid': 4, 'value': 0
'piid': 41, 'siid': 4, 'value': 1
'piid': 42, 'siid': 4, 'value': 'error'
'piid': 15, 'siid': 5, 'value': 0
'piid': 16, 'siid': 5, 'value': 22
'piid': 17, 'siid': 5, 'value': 0
'piid': 18, 'siid': 5, 'value': 6
'piid': 19, 'siid': 5, 'value': 0
'piid': 20, 'siid': 5, 'value': 0
'piid': 21, 'siid': 5, 'value': 0
'piid': 22, 'siid': 5, 'value': ''
'piid': 1, 'siid': 6, 'value': '0,0'
'piid': 1, 'siid': 7, 'value': 1
'piid': 2, 'siid': 7, 'value': 1627727920
'piid': 4, 'siid': 7, 'value': 'error'
'piid': 10, 'siid': 7, 'value': '0123'
'piid': 11, 'siid': 7, 'value': '[["2021/08/01/6480218025/329433889_225730220.bkmap","2021/08/01/6480218025/329433889_225729918.record",1627727920,"Karte1",1]]'
'piid': 13, 'siid': 7, 'value': '0123'
'piid': 14, 'siid': 7, 'value': 0
'piid': 15, 'siid': 7, 'value': '0123'
'piid': 16, 'siid': 7, 'value': 0
'piid': 3, 'siid': 8, 'value': 'error'
'piid': 4, 'siid': 8, 'value': 'girl_de'
'piid': 5, 'siid': 8, 'value': 0
'piid': 6, 'siid': 8, 'value': 100
Alle actions/Methoden werden mit timeouts beantwortet.
Versucht habe ich miio, miiocli und mirobo.
Gruß Jens
Erstmal vielen Dank für das tolle Modul. Ich habe es soweit nun zum laufen gebracht. Meine beiden Xiaomi Kameras sind integriert. Nun wollte ich gerne die Hausüberwachung bei den Kameras aktivieren bzw. deaktivieren, allerdings finde ich den passenden Befehl dafür nicht. Kann mir jemand auf die Sprünge helfen?
Hallo
Ich bekomme leider meine token aus der Xiaomi Cloud nicht extrahiert
das steht im logroot: Error logging on to Xiaomi cloud (0): Cannot logon to Xiaomi cloud: 'userId'
Userid und passwort wurden richtig gesetzt mehrmals device gelöscht und neu angelegt.
Deshalb habe ich erstmal per windows app den token extrahiert
und das Device angelegt funktioniert so weit bin mir aber nicht sicher ob das so paßt
defmod licht_schreibtisch fhempy miio plug 192.168.178.34 xxxxxxxxxxxxxxxxxxxxxxxxxxx
Andre
Die Login Methode hatte sich geändert. Ich hatte dazu einen Fix eingespielt.
Falls du noch Probleme hast, bitte melden.
Wegen der Kamera: Prüfe bitte ob du die Kamera mit miio cli steuern kannst? Wenn du dort die passenden Befehle findest, dann bitte um Rückmeldung. Mein Code ist sehr generisch und somit wird alles unterstützt was python-miio (https://github.com/rytilahti/python-miio) kann.
Hallo zusammen,
vielleicht kann mir jemand von euch weiterhelfen.
Ich hab einen Roborock Staubi (V5) und wollte diesen nun mittels dem miio Modul in FHEM einhängen.
Den Token habe ich mir über das fhempy xiaomi_tokens geholt. Das hat geklappt.
Allerdings wenn ich nun den Staubi mit dem define:
define miio_vacuum_1 fhempy miio vacuum 192.168.1.51 67xxxxxxxx
setuuid miio_vacuum_1 624ac43c-f33f-6abf-a4c1-923009ba96702590
attr miio_vacuum_1 IODev fhempy_local
attr miio_vacuum_1 room fhempy
einfüge in meine Config, dann bekomme ich nach einem shutdown restart folgende Fehlermeldung im Status des Moduls angezeigt:
Failed to execute function Define: Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 379, in _onMessage
ret = await asyncio.wait_for(
File "/usr/lib/python3.9/asyncio/tasks.py", line 481, in wait_for
return fut.result()
File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/miio/miio.py", line 46, in Define
if device_class.get_device_group().name == self._miio_devtype:
File "/opt/fhem/.local/lib/python3.9/site-packages/miio/integrations/vacuum/roborock/vacuum.py", line 931, in get_device_group
@dg.resultcallback()
AttributeError: 'DeviceGroup' object has no attribute 'resultcallback'
Beim define hab ich schon mehrere Varianten (verschiedene Types) ausprobiert. Bis auf eine Variante bekomme ich immer die gleiche Meldung.
Beim define:
define miio_vacuum_1 fhempy miio g1vacuum 192.168.1.51 67xxxxxxxx
gibt es keine Fehler. Allerdings lässt sich auch sonst nichts machen (keine Sets und keine Readings außer State)
Was mache ich denn da falsch?
Danke im Voraus!
BigThunder
Das ist leider ein Fehler in der Library.
Probier folgendes...
/opt/fhem/.local/lib/python3.9/site-packages/miio/integrations/vacuum/roborock/vacuum.py
@dg.resultcallback ändern in @dg.result_callback
Danach fhempy restart. Danach sollte es klappen.
Hallo Dominik,
erstmal vielen Dank für das super Modul.
Nun mein Problem:
Ich habe eine Lampe als yeelight definiert. Ich kann sie ein und ausschalten, Helligkeit geht auch.
Wenn ich RGB setzen möchte erhalte ich immer die Meldung
Usage: set bedlamp set_rgb rgb
In welcher Form musss ich die RGB Werte eingeben?
Wenn ich miiocli direkt nutze funktioniert es mit
set_rgb 128 128 128
Hi,
ich habe mir es gerade angeschaut. Das wird noch nicht gehen, da der Datentyp Tuple verlangt wird, den ich aktuell noch nicht konvertiere.
Teste bitte die neue Version, ist in paar Minuten online, dort habe ich es testweise implementiert.
set bedlamp set_rgb (128,128,128)
sollte dann gehen.
Zitat von: dominik am 25 April 2022, 23:37:02
Teste bitte die neue Version, ist in paar Minuten online, dort habe ich es testweise implementiert.
set bedlamp set_rgb (128,128,128)
sollte dann gehen.
HI,
habe ich getestet. Die Meldung kommt nicht mehr, aber leider wird die Farbe auch nicht geändert.
Falls du nochmals Zeit hättest und schauen könntest wäre es super.
Gruß
guenni
Hi Dominik,
hattest du evtl nochmal Zeit zu schauen an was es liegen könnte?
Wäre super wenn RGB ginge.
Gruß
guenni
Zitat von: Guenni1404 am 26 April 2022, 21:10:19
HI,
habe ich getestet. Die Meldung kommt nicht mehr, aber leider wird die Farbe auch nicht geändert.
Falls du nochmals Zeit hättest und schauen könntest wäre es super.
Gruß
guenni
Danke für den Reminder!
Bitte ein Update auf 0.1.320 machen und folgendermaßen ausprobieren:
set bedlamp set_rgb 128,128,128
Hi Dominik,
nach dem Update bekomme ich keine Verbindung mehr.
Im Log steht:
Traceback (most recent call last):
File "FHEM/bindings/python/bin/fhempy", line 100, in <module>
import fhempy.lib.fhem_pythonbinding as fpb
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 16, in <module>
from .core.zeroconf import zeroconf
ModuleNotFoundError: No module named 'fhempy.lib.core'
2022-05-08 20:19:38,369 - INFO - __main__: Attempting install of fhempy>=0.1.12
2022-05-08 20:19:50,876 - INFO - __main__: Successfully installed fhempy>=0.1.12
2022-05-08 20:19:50,880 - ERROR - __main__: Failed to import fhempy, exit now...
Nachdem ich es gelöscht und nochmal neu gestartet habe kam diese Fehlermeldung:
Traceback (most recent call last):
File "FHEM/bindings/python/bin/fhempy", line 100, in <module>
import fhempy.lib.fhem_pythonbinding as fpb
ModuleNotFoundError: No module named 'fhempy'
2022-05-08 20:38:23,653 - INFO - __main__: Attempting install of fhempy>=0.1.12
2022-05-08 20:38:38,565 - INFO - __main__: Successfully installed fhempy>=0.1.12
2022-05-08 20:38:38,568 - ERROR - __main__: Failed to import fhempy, exit now...
2022-05-08 20:39:38,921 - ERROR - __main__: Failed to load fhempy
Hast du eine Idee?
Hmm...mach mal
sudo -u fhem bash
pip3 install --upgrade fhempy
Hi Dominik,
hat funktioniert. fhempy läuft wieder.
RGB funktioniert leider nicht.
Im Log steht folgendes wenn ich set_rgb 128,128,128 ausführe:
TypeError: Type Tuple cannot be instantiated; use tuple() instead
2022-05-08 21:36:33,434 - ERROR - bedlamp_Jenny: Exception raised by task: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/miio/miio.py:137> exception=TypeError('Type Tuple cannot be instantiated; use tuple() instead') created at /usr/lib/python3.7/asyncio/tasks.py:325>
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 183, in _handle_task_result
task.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/miio/miio.py", line 161, in send_command
args.append(ann(params[par_name]))
File "/usr/lib/python3.7/typing.py", line 668, in __call__
raise TypeError(f"Type {self._name} cannot be instantiated; "
TypeError: Type Tuple cannot be instantiated; use tuple() instead
Bitte noch ein Test mit 0.1.329
Hallo Dominik,
Zitat von: dominik am 08 Mai 2022, 23:02:51
Bitte noch ein Test mit 0.1.329
RGB funktioniert. Dafür geht jetzt die Helligkeit (set_brightness) nicht mehr, die vorher funktioniert hat.
Fehler im Log:
2022-05-09 19:47:57,648 - ERROR - bedlamp_Jenny: Exception raised by task: <Task finished coro=<miio.send_command() done, defined at /opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/miio/miio.py:137> exception=AttributeError("type object '_empty' has no attribute '_name'") created at /usr/lib/python3.7/asyncio/tasks.py:325>
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/generic.py", line 183, in _handle_task_result
task.result()
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/miio/miio.py", line 153, in send_command
elif ann._name == "Tuple":
AttributeError: type object '_empty' has no attribute '_name'
Wäre super wenn du es korrigieren könntest, so das beides funktioniert.
Trotzdem danke für die ganze Arbeit.
Gruß
guenni
Das bekommen wir hin ;)
Update folgt noch heute Abend.
Super!!!
Besten Dank
Bitte mit Version 0.1.330 testen.
Jetzt funktioniert alles. Besten Dank !
Hallo Dominik,
mir sind noch zwei Sachen aufgefallen. Im Log bekomme ich immer folgende Meldung
2022-05-13 00:25:39,509 - ERROR - bedlamp_1: Failed to send_command: info
2022-05-13 00:25:39,712 - ERROR - bedlamp_2: Failed to send_command: info
2022-05-13 00:25:39,803 - ERROR - bedlamp_3: Failed to send_command: info
2022-05-13 00:25:44,209 - ERROR - airpuritest: Failed to send_command: info
Das wiederholt sich alle 10 Minuten.
Das zweite ist, wenn ein Gerät über WLAN nicht erreichbar ist, kommt folgende Logeintrag:
2022-05-13 00:35:14,273 - ERROR - ricecooker: Failed to call status
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/miio/miio.py", line 164, in send_command
reply = await utils.run_blocking(functools.partial(call_fct, *args))
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 34, in run_blocking
return await asyncio.get_event_loop().run_in_executor(pool, function)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/click_common.py", line 183, in _wrap
self._fetch_info()
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/device.py", line 153, in _fetch_info
devinfo = DeviceInfo(self.send("miIO.info"))
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/device.py", line 108, in send
command, parameters, retry_count, extra_parameters=extra_parameters
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 161, in send
self.send_handshake()
File "/opt/fhem/.local/lib/python3.7/site-packages/miio/miioprotocol.py", line 74, in send_handshake
raise DeviceException("Unable to discover the device %s" % self.ip)
miio.exceptions.DeviceException: Unable to discover the device 192.168.178.60
Ist es möglich diesen Logeintrag zu unterbinden? Dadurch "müllt" das Logfile zu.
Gruß
guenni
Hi,
die info Commands kannst du unterdrücken in dem du das Attribut
update_functions = status:60
setzt. Dann macht es keine info Abfragen mehr.
Das Fehlerlog werde ich auch beheben. Ich mache nun für "status" Abfragen keinen Fehler mehr, sondern setze das Device dann auf offline. Update ist morgen online.
Hallo dominik,
ich möchte gerade mein System umziehen. Bisher hatte ich meinen Reiskocher eingebunden indem ich im miio Verzeichnis die Anpassung manuell eingepflegt habe.
https://github.com/sschirr/python-miio
Das hatte auch wunderbar funktioniert und ich konnte es anlegen und wurde erkannt
defmod ricecooker fhempy miio multicooker ip token
Bei meinem Umzug habe ich die neuste Version von fhempy installiert. Das miio Verzeichnis angepasst und dann über xiaomi_tokens angelegt.
List:
Internals:
CFGFN
DEF miio device 192.168.178.xxx XXX
FHEMPYTYPE miio
FUUID 648739bf-f33f-952a-51d6-bf1cc32ea47b2307
IODev fhempy_local
NAME miio_device_333526512
NR 11243
PYTHONTYPE miio
STATE active
TYPE fhempy
eventCount 2
READINGS:
2023-06-12 17:29:05 presence offline
2023-06-12 17:29:04 state active
args:
miio_device_333526512
fhempy
miio
device
192.168.178.xx
xxx
argsh:
Attributes:
group miio
room fhempy
Dabei wird es als device angelegt. Wenn ich Info absetze kommt folgendes im Log:
2023-06-12 17:31:15,224 - ERROR - miio_device_333526512: Exception raised by task: <Task finished name='Task-3273' coro=<FhemModule._run_coro() done, defined at /opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/generic.py:216> exception=KeyError('status')>
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/generic.py", line 224, in _handle_task_result
task.result()
File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/generic.py", line 218, in _run_coro
await coro
File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/miio/miio.py", line 208, in send_command
await self.send_command("status", None)
File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/miio/miio.py", line 139, in send_command
fct = self._device._device_group_commands[fct_name].func
KeyError: 'status'
Wenn ich es in multicooker umbenenne passiert leider nichts.
Was muss ich machen, damit es wieder funktioniert? Oder was muss ich vom alten System ins neue übernehmen, damit er die richtigen Daten hat?
Gruß
guenni
Hi Dominik,
ich habe jetzt festgestell, wenn ich die Dateien vom Altsystem )Stand Mitte Dezember 2022) nehme funktioniert es sofort wieder nach einem neustart. Vielleicht hilft es ja
10_BindingsIo.pm
10_fhempy.pm
10_fhempyServer.pm
10_PythonBinding.pm
10_PythonModule.pm
Ich bekomme den Xiaomi Mop2 Pro, sowie einen älteren xiaomi Roborock V1 nicht zum laufen.
Beide sind mit dem 72_XiaomiDevice.pm bereits eingebunden, wobei der Mop2 Pro nur als connected angezeigt wird und nicht gesteuert werden kann, dieses nur am Rande um zu zeigen das die tokens beider passen.
Fhempy läuft und google_weather sowie das Geizhalz modul laufen einwandfrei.
Im DeviceOverview :
Module failed to load: miio Maybe you need to update fhempy on this or remote peer. Stacktrace: Traceback (most recent call last): File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in handle_function module_object = await self.import_module(hash) File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 574, in import_module functools.partial(importlib.import_module, pymodule) File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 72, in run_blocking return await asyncio.get_event_loop().run_in_executor(pool, function) File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1006, in _gcd_import File "", line 983, in _find_and_load File "", line 967, in _find_and_load_unlocked File "", line 677, in _load_unlocked File "", line 728, in exec_module File "", line 219, in _call_with_frames_removed File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/miio/miio.py", line 8, in from miio.click_common import DeviceGroupMeta ModuleNotFoundError: No module named 'miio'
Internals:
CFGFN
DEF miio vacuum 191.168.178.44 xxxxx
FHEMPYTYPE miio
FUUID 64b83d9c-f33f-bfeb-3ba0-34b5e2c4429bcc10
IODev fhempy_local
NAME Robo
NR 1770
PYTHONTYPE miio
STATE Module failed to load: miio
Maybe you need to update fhempy on this or remote peer.
Stacktrace:
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in handle_function
module_object = await self.import_module(hash)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 574, in import_module
functools.partial(importlib.import_module, pymodule)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 72, in run_blocking
return await asyncio.get_event_loop().run_in_executor(pool, function)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/miio/miio.py", line 8, in <module>
from miio.click_common import DeviceGroupMeta
ModuleNotFoundError: No module named 'miio'
TYPE fhempy
eventCount 3
READINGS:
2023-07-19 21:47:50 state Module failed to load: miio
Maybe you need to update fhempy on this or remote peer.
Stacktrace:
Traceback (most recent call last):
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in handle_function
module_object = await self.import_module(hash)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 574, in import_module
functools.partial(importlib.import_module, pymodule)
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 72, in run_blocking
return await asyncio.get_event_loop().run_in_executor(pool, function)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/miio/miio.py", line 8, in <module>
from miio.click_common import DeviceGroupMeta
ModuleNotFoundError: No module named 'miio'
args:
Robo
fhempy
miio
vacuum
191.168.178.44
xxxx
argsh:
Attributes:
alias Robo
room fhempy
Kann damit leider nix anfangen, hoffe mir kann geholfen werden, Installation ist auf Fhem.
Gruß
Karsten
Update:
hatte vakuum statt vacuum bei der erstellung geschrieben, oben nochmal neu geschrieben/ aktualisiert mit:
define Robo fhempy miio vacuum 191.168.178.44 xxxxxx
Hallo coolheizer
Ich habe den Xiaomi Mop2 pro auch und wir haben den mit einer abgeänderten Version des 72_XiaomiDevice.pm Modul zum laufen bekommen.
Vieleicht hilft Dir das ja weiter. Alle Infos dazu findenst Du hier
https://forum.fhem.de/index.php?topic=118170.msg1115923#msg1115923 (https://forum.fhem.de/index.php?topic=118170.msg1115923#msg1115923)
und hier der letzte bei mir funktionierende Stand des Moduls
72_XiaomiDevice.pm (https://forum.fhem.de/index.php?msg=1129780)
Hallo Stephan,
sicher das du den Mop2 Pro hast und nicht den Mop Pro?
Der Mop Pro hat ein etwas ovales Türmchen, der Mop2 Pro hat ein rundes Türmchen.
Im angelegten Device wird als Model "ijai.vacuum.v3" bei mir angezeigt.
Die datei 72_XiaomiDevice.pm hatte ich schon vor über 1 Jahr erfolglos getestet.
Die 72_XiaomiDevice.pm ist aus 02.2021, den Mop2 Pro gibt es erst seit letztem Jahr.
Was bedeutet der Fehler(fhempy):
ModuleNotFoundError: No module named 'miio'
es scheint das dieses Modul nicht gefunden wird, muss ich Händisch noch Dateien kopieren?
du hast leider recht der turm von meinem Sauger ist Oval.
Schade. dann haben wir doch nicht den selben. Meinen habe ich schon 2020 gekauft.
Bekomme es leider nicht zum laufen, habe jetzt auf Bullseye aktualisiert somit auch aktuelles Python:
Module failed to load: miio Maybe you need to update fhempy on this or remote peer. Stacktrace: Traceback (most recent call last): File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in handle_function module_object = await self.import_module(hash) File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/fhem_pythonbinding.py", line 573, in import_module module_object = await utils.run_blocking( File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/utils.py", line 72, in run_blocking return await asyncio.get_event_loop().run_in_executor(pool, function) File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run result = self.fn(*self.args, **self.kwargs) File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1030, in _gcd_import File "", line 1007, in _find_and_load File "", line 986, in _find_and_load_unlocked File "", line 680, in _load_unlocked File "", line 790, in exec_module File "", line 228, in _call_with_frames_removed File "/opt/fhem/.local/lib/python3.9/site-packages/fhempy/lib/miio/miio.py", line 8, in from miio.click_common import DeviceGroupMeta ModuleNotFoundError: No module named 'miio'
Er findet scheinbar kein miio Modul.
Hallo Dominik,
danke für das super Modul. Allerdings habe ich ein Problem mit meinem Reiskocher.
Bei miio selber wird er mit den Parametern
--ip 192.168.178.60 --token XXXTOKENXXX start langer_String_des_Kochprogrmms
Bei dir verlangt er
Start cooking a profile.
Arguments: profile: str duration: int schedule: int akw: bool
Besteht die Möglichkeit das anzupassen?
Gruß
guenni