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

jostereo

Zitat von: dominik am 16 Juli 2018, 20:40:43
Habe ihn anfangs nur mit dem Mainland China verbunden. Dort kam dann der Fehler bei der Auswahl. Mit Europa kann ich ihn gar nicht verbinden, da wird er nicht gefunden.


Habe ein ähnliches Problem mit meinem 2. Sauger und habe folgendes soweit aus dem roboter-forum verstanden:

Hängt wohl mit der "internationalen" Version des Saugers zusammen.
Ich denke du hast auch V1 aber als internationale Version (hatte auch einen deutschen Stecker an der Ladestation)

Die dürfen sich wohl aktuell nicht an den "Mainland China" Servern anmelden.

Leider sind sie aber auch nicht an den europäischen zugelassen. Sieht man auch wenn man manuell eine V1 hinzufügen will, der taucht garnicht in der Liste auf.


Also mache ich aktuell folgendes vorgehen:

Den V1 internationale Version auf dem Singapur Server anmelden und mit der Flole App Zonenreinigung nutzen bzw. ebenfalls in FHEM einbinden.


Die "Vögel" zwitschern aber schon, das bald die V1 international auch auf die europäischen Server dürfen.
Ob dann dort aber Zonenreinigung und GoTo gehen, das weiß man noch nicht.

Typ1er

Ich habe meine CeilingLamp eingebunden, jetzt geht die Lampe immer Hart an und aus, kann ich der das Einfaden und Ausfaden beibringen? So wie es bei der Originalen App geht?

Markus M.

Zitat von: Typ1er am 26 Juli 2018, 23:43:23
Ich habe meine CeilingLamp eingebunden, jetzt geht die Lampe immer Hart an und aus, kann ich der das Einfaden und Ausfaden beibringen? So wie es bei der Originalen App geht?
Hast du schon mal probiert, noch einen Parameter mit den Sekunden dran zu hängen?
Was für einen Gerätetyp und welche Kommandos verwendest du genau?
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

Typ1er

Anhängen von Sekunden klappt nicht. (ohne Fehler, schaltet sofort von 0 auf 100%) Subtype ist "SmartLamp"
Lampe ist diese https://de.gearbest.com/ceiling-lights/pp_596249.html

hänge mal ein List an:
Internals:
   CFGFN     
   DEF        192.168.178.25 92788facd88a4fd7fee8Token
   FD         47
   NAME       CeilingLampe
   NR         1376
   STATE      ???
   TYPE       XiaomiDevice
   hardware   MTK7697
   mac        12:34:12:34:12:34
   model      yeelink.light.ceiling1
   token      92788facd88a4fd7fee8Token
   wifi_firmware 4.3.0
   READINGS:
     2018-07-27 22:36:12   brightness      33
     2018-07-27 22:36:12   brightness_on   33
     2018-07-27 22:36:12   color_mode      2
     2018-07-27 22:36:12   ct              3900
     2018-07-27 22:36:10   device_firmware 1.5.5_0182
     2018-07-27 22:36:10   device_uptime   22.93
     2018-07-27 22:36:14   error           none
     2018-07-27 22:36:12   flowing         0
     2018-07-27 22:36:12   lan_ctrl        1
     2018-07-27 22:36:12   power           on
     2018-07-27 22:36:12   poweroff_time   0
     2018-07-27 22:36:14   wifi_auth_fail_count 0
     2018-07-27 22:36:14   wifi_conn_fail_count 0
     2018-07-27 22:36:14   wifi_conn_success_count 1
     2018-07-27 22:36:14   wifi_dhcp_fail_count 0
     2018-07-27 22:36:10   wifi_rssi       -65
     2018-07-27 22:36:14   wifi_state      connecting
   helper:
     ConnectionState connected
     crypt      AES
     delay      0
     dev        04a2
     id         03cc
     ip         192.168.178.25
     last_read  1532723774
     packetid   25
     port       54321
     sequence   1532641226
     token      92788facd88a4fd7fee8Token
     packet:
Attributes:
   subType    SmartLamp


Habe die Lampe jetzt über ein Yeelight Plugin eingebunden, da klappt es besser (sieht ähnlich dem einer Hue Lampe aus)

Markus M.

Wenn du rausfindest was ich dafür senden muss, kann ich das Modul gerne aktualisieren.
Aber wenn es yeelight nochmal extra gibt, braucht es das eigentlich nicht.
Dass es mit den anderen Leuchten rudimentär funktioniert ist eher ein Abfallprodukt der Schreibtischlampe :)
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

Quantum

Hallo FHEM Gemeinde,

habe die letzten Tage etwas mit dem Xiaomi Vacuumcleaner herumgespielt.
Da ich unbedingt über FHEM die LiveMap anfordern wollte, habe ich, aufbauend auf das GitHub Projekt https://github.com/Hypfer/Valetudo mir die png selbst gezeichnet.
Den Code dafür möchte ich euch zur Verfügung stellen. Vielleicht findet es ja der eine oder andere sinnvoll. Evtl kann er ja in ein größeres Projekt integriert werden ;).


sub getLiveMap($$){

  my ($ip, $filePath) = @_;


my $buildMap = sub{

my ($param, $err, $data) = @_;

if($err){
Log3 "getLiveMap", 3, "$err";
return;
    }

my $path = decode_json($data)->{path};
my $map = decode_json($data)->{map};

my $im = new GD::Image(1024,1024);

my $grey = $im->colorAllocate(125,125,125);
        my $lightblue = $im->colorAllocate(102,153,255);
my $darkblue = $im->colorAllocate(0,118,255);

for (my $i=0;$i < int(@$map);$i+=1){

my $y = (@$map[$i]->[0]/4) % 1024;
my $x = ((@$map[$i]->[0]/4) - $y) / 1024;

if(@$map[$i]->[1] == 0 && @$map[$i]->[2] == 0 && @$map[$i]->[3] == 0){
$im->setPixel($x,$y,$lightblue);
}elsif(@$map[$i]->[1] == 255 && @$map[$i]->[2] == 255 && @$map[$i]->[3] == 255){
$im->setPixel($x,$y,$darkblue);
}else{
$im->setPixel($x,$y,$darkblue);
}

}

$im = $im->copyRotate270();
$im->flipVertical();

my $imScaled = new GD::Image(4096,4096);
$imScaled->copyResized($im,0,0,0,0,4096,4096,1024,1024);

my $grey = $imScaled->colorAllocate(125,125,125);
my $white = $imScaled->colorAllocate(255,255,255);
my $red = $imScaled->colorAllocate(255,0,0);
my $green = $imScaled->colorAllocate(0,255,0);

$imScaled->setThickness("2");

for (my $i=0;$i < (int(@$path)-1);$i+=1){
my $x1 = (@$path[$i]->[0]);
my $y1 = (@$path[$i]->[1]);
my $x2 = (@$path[$i+1]->[0]);
my $y2 = (@$path[$i+1]->[1]);

$imScaled->line($x1,$y1,$x2,$y2,$white);
}


$imScaled->filledArc(2048,2048,20,20,0,360,$red);

my $x1 = @$path[int(@$path)-1]->[0];
my $y1 = @$path[int(@$path)-1]->[1];
$imScaled->filledArc($x1,$y1,20,20,0,360,$green);

$imScaled = $imScaled->copyRotate90();

open (FH, ">$filePath") or print "Kann Datei nicht zum Schreiben oeffnen!\n";
print FH $imScaled->png;
close (FH);


};

HttpUtils_NonblockingGet({
method     => "GET",
url        => "http://".$ip.":80/api/map/latest",
timeout    => "5",
noshutdown => "1",
callback   => $buildMap
});

}


Ab in die myUtils damit. Die Perl Module für decode_json und gd::image müssen vorhanden sein. Aufruf mit getLiveMap("IP","PATH/WHERE/TO/WRITE/FILE.png");

Der Code ist alles andere als perfekt. Wer Fehler findet, darf diese gerne kundtun.
Für die Zukunft interessant wäre noch ein automatisches Trimmen der png.

Freundliche Grüße
Quantum

Marlen


Quantum

ja. Es muss die valetudo Binärtdatei auf den Robot eingebracht werden. Dafür ist root notwendig.
Das zu erreichen ist aber wirklich keine große Sache.

Freundliche Grüße
Quantum

Marlen

[emoji848]
an die Map-ausrichtung kommt man dann aber auch nicht ran, oder?

Gesendet von meinem Aquaris U Plus mit Tapatalk


Quantum

wenn du mit Map-Ausrichtung meinst, dass mithilfe dieser Karte bestimmte Punkte angefahren werden können zwecks Spot oder Zone Cleaning, dann nein.
Das ist eine planare Karte mit eingezeichnetem Pfad damit der Fortschritt und die Position des Robots erkannt werden kann. Mehr nicht.

TomLee

Lasse seit gestern auch saugen  :)

Dickes Danke an Markus für die Integration in FHEM.

Vermeide wo es nur geht die dummy > notify,doif Variante zur Steuerung über Alexa wie sie im Wiki beschrieben wird.

Hier meine Lösung mit readingsproxy:

defmod rp_xd_vacuum1 readingsProxy xd_vacuum1:state
attr rp_xd_vacuum1 alexaName sauger
attr rp_xd_vacuum1 event-on-change-reading .*
attr rp_xd_vacuum1 genericDeviceType switch
attr rp_xd_vacuum1 room Alexacontrol,readingsproxy
attr rp_xd_vacuum1 setFn {($CMD eq "on")?"start":"charge"}
attr rp_xd_vacuum1 setList on off


Vieleicht kann man das ja auch als weiteren Lösungsansatz im Wiki erweitern.

Gruß

Thomas

tomhead

Hallo, ich bräuchte bitte mal Hilfe mit der Installation der Perl-Module. JSON, MD5, Cipher::AES oder Crypt::Rijndael_PP habe ich erfolgreich installiert, ich bekomme aber weder CBC noch ECB installiert.
Der Versuch apt-get install libcrypt-cbc-perl  liefert immer nur
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
E: Paket libcrypt-cbc-perl kann nicht gefunden werden.

Analog kommt die Meldung für ECB. Was mache ich falsch?

Danke und Grüße,
Tom

thymjan


tomhead

Zitat von: thymjan am 06 August 2018, 23:44:48
Suche im thread weiter oben nach den Modulen. Wenn apt-get nicht geht, dann mit CPAN installieren:
https://forum.fhem.de/index.php/topic,73052.msg651489/topicseen.html#msg651489

Hallo, die Module AES und Rijndael konnte ich ja mit CPAN installieren, aber ich scheitere an den Modulen libcrypt-cbc-perl und libcrypt-ECB-perl. Die muss ich doch mit app-get installieren, oder geht das auch mit CPAN? Wie würde dann dafür die Sytax lauten? Sorry, bin nicht der Linux Profi ;-)

Danke und Grüße,
Tom

Edit: hab es gefunden: habe mit sudo cpan install Crypt::ECB installiert, dann hat es funktioniert.

Danke und Grüße,
Tom

tomhead

Hallo, noch eine Frage: hat jemand den Xiaomi in einem WLAN Gastzugang verbunden und den Raspi mit FHEM im normalen WLAN? Läuft das so über FHEM überhaupt oder müssen beide im gleichen WLAN sein?
Habe bei meiner Fritzbox den Xiaomi nämlich nur im Gastzugang eingebunden.

Danke und Grüße,
Tom