Xiaomi WiFi Devices Modul (Vacuum/Airpurifier/Fan) - 72_XiaomiDevice (Support)

Begonnen von Markus M., 11 Juni 2017, 12:48:58

Vorheriges Thema - Nächstes Thema

Andy89

man was für eine doofer Fehler. Tatsächlich lag es bei Power am großen T(rue) und F(alse).
Kaum wird beides klein geschrieben funktioniert auch ein on und off.

Jetzt können also nach und nach alle anderen Funktionen integriert werden. Ich weiß aber nicht, wie man das am klügsten in das Modul integriert. Wenn ich überall abfrage, ob es sich um den 3H Purifiert handelt, wäre es fast sinnvoll, das ganze zu abstrahieren und ein Sub-Modul (gibt es sowas überhaupt?) daraus zu machen.

also wer es bei sich ausprobieren will. In meiner vorherigen Datei nach 3H suchen und die großen True und False in kleine true und false umwandeln. Dann geht zumindest schon mal das an- und ausschalten.  ;D ;D ;D
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Andy89

wie ich eben schon geschrieben habe, lag es nur an der Kleinigkeit. Dadurch, dass das nun funkionierte, habe ich direkt alle anderen Setter integriert.
wie auch beim letzten Mal gilt: ich habe es getestet, weiß aber nicht, ob alles sauber läuft => deswegen vorher ein Backup machen.

Mein AirPurifier 3H lässt sich damit auslesen und nun auch steuern.

@Markus: wie bekommen wie das nun ins aktuelle SVN-Repo? Da ich kein Developer bin, kann ich das nicht updaten - vorher sollten das eh noch ein paar Leute testen.

Beste Grüße
Andy
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

scooty

#1877
Zitat von: lichtimc am 12 April 2020, 03:39:18
Hi,

wie @stoxx und @pumabaer würde ich mich auch über eine korrekte Einbindung des zhimi.humidifier.cb1 freuen.

Hallo,

ich habe mich 'mal daran versucht, mit wenig Wissen über Perl aber umso mehr Elan.
;)

Anbei das ergänzte komplette Modul und ein Patch (allerdings auf Basis der aktuellen FHEM Version des Moduls ohne den 3H Patch) für den zhimi.humidifier.cb1 "Evaporation Humidifier".

Als Attribut "subType" ist damit "EvpHumidifier" (für "Evaporation Humidifier") auswählbar.

Set-Befehle:
Automatik Modus einstellen:
set Luftbefeuchter mode auto

Lufttrockenmodus einstellen:
set Luftbefeuchter dry on/off

Oberste Grenze für Luftfeuchtigkeit setzen (funktioniert für den "auto" Mode obwohl in der App nicht setzbar):
set Luftbefeuchter limit_hum [Wert zwischen 30 und 80]

LED-Dimmstufe einstellen funktioniert auch:
set Luftbefeuchter led bright/dim/off


Readings:

depth Wasserfüllstand
temperature Temperatur
use_time Betriebszeit des Geräts in Sekunden


Alles dokumentiert in der Modul-Doku (auch das bisher schon funktionierende).

Was fehlt sind die in der App möglichen Einstellungen für Timer (brauche ich auch nicht, dafür habe ich ja FHEM) und für "Störungsalarm".

Weitere Anmerkungen:
Am besten das Device, das die alte Modulversion verwendet hat, löschen, diese Modulversion einspielen (natürlich Backup vorher machen!), FHEM neu starten und das Gerät mit der neuen Modulversion neu anlegen.

Zeile 292 im Code gibt mir immer noch Rätsel auf:
$attr{$name}{stateFormat} = "power" if( defined($attr{$name}) && defined($attr{$name}{subType}) && $attr{$name}{subType} eq "EvpHumidifier" && !defined($attr{$name}{stateFormat}));
Nach meiner Interpretation sollte, wenn Attribut "subType" auf "EvpHumidifier" eingestellt ist, das Attribut "stateFormat" auf den Wert "power" gesetzt werden. Tut es aber nicht. Habe es jetzt zwar anders gelöst ("state" wird beim Aktualisieren der Daten automatisch auf den Wert des Readings "power" gesetzt, s. ab Zeile 2190 im Code) aber vielleicht hat ja jemand eine Erklärung/Verbesserung dafür? Ein eigens Attribut "stateFormat" funktioniert natürlich weiter.

Und warum das Reading "wifi_state" auf dem Wert "connecting" stehen bleibt, statt auf "online" zu wechseln ist mir auch ein Rätsel, kann ich aber mit leben.

Wie gesagt, mein Elan ist größer als mein Perl Wissen, und daher kann ich nur sehr eingeschränkt Support geben.
Würde mich also sehr freuen, wenn @markus-m. oder andere "Wissendere" meine Anregungen aufnehmen und das Gerät ins SVN-Modul integrieren.

Viele Grüße,
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

TWART016

Hallo Andy,

besten Dank. Bei mir im Testsystem läuft die Version ohne Probleme.

Nur child_lock wird trotzdem falsch angezeigt. Ist mir aber nicht so wichtig, nutze das nicht.

Das Reading power steht immer auf on. Bei einem set off im Modul springt das Reading kurz auf off und dann wieder auf on.

Weiß jemand was die Readings filter_used, filter_volume bedeuten?

Andy89

Zitat von: TWART016 am 16 April 2020, 23:09:41
Hallo Andy,

besten Dank. Bei mir im Testsystem läuft die Version ohne Probleme.

Nur child_lock wird trotzdem falsch angezeigt. Ist mir aber nicht so wichtig, nutze das nicht.

Das Reading power steht immer auf on. Bei einem set off im Modul springt das Reading kurz auf off und dann wieder auf on.

Weiß jemand was die Readings filter_used, filter_volume bedeuten?
das ist komisch. bei mir läuft das child_lock. ich hab die intervalSettings aber mit 90 Sekunden sehr runtergeschraubt. ich weiß nicht, ob es daran liegt. Auch, dass das on/off bei dir nicht richtig angezeigt wird. Komisch! Aber richtig gesteuert wird er dennoch? Also er geht aus?

filter_volume => im gefilterte Luft in qm (Purify volume: 8606 m³)
filter_used => wie viel Zeit Stunden, der Purifier schon lief (Filter hours used: 59)

Die Werte in den Klammern sind aus dem Beitrag: https://github.com/rytilahti/python-miio/pull/634
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Markus M.

Ich versuche mal dieses Wochenende die Zeit zu finden das als neuen Subtype hinzuzufügen ;)
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

scooty

Zitat von: Markus M. am 17 April 2020, 13:04:21
Ich versuche mal dieses Wochenende die Zeit zu finden das als neuen Subtype hinzuzufügen ;)
Hallo Markus,

meinst Du jetzt den 3H Luftreiniger oder (auch) den von mir "verbrochenen" Evaporation Humidifier?
;)

Viele Grüße,
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

Markus M.

FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

scooty

Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

TWART016

Zitat von: Andy89 am 16 April 2020, 23:27:42
das ist komisch. bei mir läuft das child_lock. ich hab die intervalSettings aber mit 90 Sekunden sehr runtergeschraubt. ich weiß nicht, ob es daran liegt. Auch, dass das on/off bei dir nicht richtig angezeigt wird. Komisch! Aber richtig gesteuert wird er dennoch? Also er geht aus?
Steuern kann ich ihn komplett.
Gestern Abend habe ich Child_lock an und wieder ausgeschalten und ist es jetzt auch noch. Das Rading wurde heute um 11 und 15 Uhr aktualisiert, auch dort ist es on.


Zitat von: Andy89 am 16 April 2020, 23:27:42
filter_volume => im gefilterte Luft in qm (Purify volume: 8606 m³)
filter_used => wie viel Zeit Stunden, der Purifier schon lief (Filter hours used: 59)
Ich verstehe ein paar Readings nicht, in der commandref gibt es nichts dazu.
Was ist der Unterschied zwischen device_uptime, usage.
Gibt es einen Unterschied zwischen led off und led_brightness off?

Ist es bei euch so, dass am Display 23° steht, das Modul immer 22,9°, und dann in 0,5 er Schritten.

Andy89

Zitat von: TWART016 am 17 April 2020, 21:40:01
Steuern kann ich ihn komplett.
Gestern Abend habe ich Child_lock an und wieder ausgeschalten und ist es jetzt auch noch. Das Rading wurde heute um 11 und 15 Uhr aktualisiert, auch dort ist es on.
ich weiß echt nicht, woran das liegen könnte.. evtl müsste man da mal nen Log Eintrag erstellen lassen, der bei verbose 5 sichtbar wird.


Zitat von: TWART016 am 17 April 2020, 21:40:01
Ich verstehe ein paar Readings nicht, in der commandref gibt es nichts dazu.
Was ist der Unterschied zwischen device_uptime, usage.
Gibt es einen Unterschied zwischen led off und led_brightness off?

Ist es bei euch so, dass am Display 23° steht, das Modul immer 22,9°, und dann in 0,5 er Schritten.
die commandref habe ich nicht angepasst - sorry.
Device uptime ist die zeit, die das Gerät online ist. Wenn man ihn stromlos macht, fängt die von vorne an. Usage ist die tatsächlich gelaufene Zeit der Filterung.

Es gibt keinen Unterschied dazwischen - oder mir ist keiner eingefallen. ich weiß nicht, warum man das LED on/off nutzen sollte, wenn man auch direkt die Helligkeit steuern kann. Das war halt so im python Modul bzw in der "API" des Luftreinigers.

Meine Temperatur ist noch "komischer": 21.799999
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Markus M.

Hier ist eine Kombi eurer neuen Geräte. Bitte testen ob noch alles funktioniert.
Wegen der Temperaturen solltet ihr mal mit Verbose 5 nachsehen was die Geräte senden.


Todo: Set zwischen den Geräten angleichen und das nutzlose LED on/off Reading rausnehmen ;)
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

kotaro

Zitat von: kotaro am 09 April 2020, 22:27:37
Hey Ho,

Ich wollte Mal fragen, ob es möglich ist, die Werte pull_map oder load_map von Valetudo Re einbinden könnte. Das wäre Klasse. Da ich eine für das OG Und eine für das EG habe...

Mit den Reading wäre es toll, um dies für DOIF nutzen zu können...

Danke euch

Sorry, wenn ich nerve, wollte nur fragen, ob da irgendwas geplant ist, hinten übergefallen ist, oder irrelevant wegen Valetudo?
Man könnte ja als reading-Value Original, valetudo oder valetudore nutzen?

lg und schönes WE

TWART016

Zitat von: Markus M. am 18 April 2020, 18:19:38
Hier ist eine Kombi eurer neuen Geräte. Bitte testen ob noch alles funktioniert.
Wegen der Temperaturen solltet ihr mal mit Verbose 5 nachsehen was die Geräte senden.


Todo: Set zwischen den Geräten angleichen und das nutzlose LED on/off Reading rausnehmen ;)

Bei mir scheint alles Problemlos zu funktionieren.

Jetzt zeigt er mir auch andere Temperaturwerte korrekt an. Ich beobachte das weiterhin. Trotzdem habe ich noch zum meinem Technoline Temperatursensor 0,5°C Unterschied.
{
                          'value' => '23.6',
                          'code' => 0,
                          'piid' => 8,
                          'did' => 'temperature',
                          'siid' => 3
                        },

zippo2k

Hi guys,

irgendetwas mach ich hier falsch und bekomme meinen Air-purifier 3H nicht aus FHEM angesteuert.  Habe das Token ausgelesen und im DEF angegeben, aber im log wird immer nur folgendes angezeigt  :

2020.04.19 14:52:28 3: Airpurifier: initialized, using AES
2020.04.19 14:52:28 3: Airpurifier: disconnecting
2020.04.19 14:52:28 2: Airpurifier: connecting
2020.04.19 14:52:28 3: Airpurifier: initialized

in FHEM ist es wie folgt angelegt...:
Internals:
   DEF        172.16.0.178 2a8e8480da1ff79eba332e93eead1652
   FD         18
   FUUID      5e9c1f6f-f33f-9e94-bada-57d06a639097e052
   FVERSION   72_XiaomiDevice.pm:0.200610/2019-08-25
   NAME       Airpurifier
   NR         271
   STATE      ???
   TYPE       XiaomiDevice
   helper:
     ConnectionState initialized
     crypt      AES
     delay      60
     ip         172.16.0.178
     packetid   1
     port       54321
     token      2a8e8480da1ff79eba332e93eead1652
Attributes:
   DbLogExclude .*
   disable    0
   room       Climate
   stateFormat pm25 µg/m³ / speed rpm / mode
   subType    AirPurifier
   verbose    5


würde mich über Hilfe sehr freuen.
Danke und Gruß