Xiaomi Smart Home Gateway

Ich glaube es sollte key heißen, DU hast Key geschrieben

Jep, auch eben gesehen :wink:
Warum aber zwischendurch das Model nicht mehr erkannt wird, verstehe ich nicht…
Ich suche gleich…
Michael

Edit: Okay, das mit dem Model not set habe ich, das mit dem key auch…
Jetzt noch eben die Helligkeit :wink:

So, brightness ist auch jetzt richtig (eventuell, wenn das Profil falsch ist, die Variable löschen)

Bitte mal testen, ich suche jetzt noch den Fehler mit den fehlenden Aktionen im WebFront :rolleyes:

Michael

Sauber, Lob und Anerkennung :slight_smile:
Farbwechsel geht, Helligkeit geht und wird auch im WebFront richtig angezeigt :slight_smile:

Das könntest Du evtl ja auch noch einbauen somit hätte man dann einen extrem günstigen Ersatz für die HomeMatic Klingel

if ($cmd eq 'ringtone')
				{
				my $vol = $hash->{READINGS}{volume}{VAL};
				$msg  = '{"cmd":"write","model":"gateway","sid":"' . $hash->{SID} . '","short_id":0,"key":"8","data":"{\"mid\":' . $val . ',\"vol\":' . $vol . ',\"key\":\"'. XiaomiSmartHome_EncryptKey($hash) .'\"}" }';
				}
			if ($cmd eq 'volume')
				{
				my $rt = $hash->{READINGS}{ringtone}{VAL};
				$msg  = '{"cmd":"write","model":"gateway","sid":"' . $hash->{SID} . '","short_id":0,"key":"8","data":"{\"mid\":' . $rt . ',\"vol\":' .$val . ',\"key\":\"'. XiaomiSmartHome_EncryptKey($hash) .'\"}" }';
				}

Das sollte machbar sein :slight_smile:
Kannst du die Farbe und Helligkeit jetzt auch im WebFront steuern ?? EDIT: Nein, Fehler gefunden :smiley:

Michael

Theoretisch kannst du das jetzt schon, versuch mal:


XISMD_WriteValueInteger('mid',8);
// 0 - 8, 10 - 13, 20 - 29 -- ringtones that come with the system)
//  > 10001 -- user-defined ringtones
// 10000  off

XISMD_WriteValueInteger('vol',50);
// 0 -100 %

Ich glaube davon gibt es keine Events, wenn die Werte geändert werden. Und auslesen mit read geht wohl auch nicht.
Somit gibt es dann auch keine Variablen in IPS.

Achso, das Update für die Bedienung aus dem WebFront ist online.
Anschließend nur einmal die beiden Variablen löschen.
Danach sollten diese aus dem WebFront bedienbar sein :slight_smile:
Michael

Variabeln gelöscht und neu anlegen lassen

Die Auswahl ist jetzt da im WebFront,

  • bei Helligkeit kommt Invalid Ident,
  • bei RGB geht das Fenster auf aber egal was man einstellt es ändert sich nichts und es kommt auch kein Fehler im WebFront, auch
  • keine Einträge im Log vom Device /Splitter

zu

XISMD_WriteValueInteger('mid',8);
// 0 - 8, 10 - 13, 20 - 29 -- ringtones that come with the system)
//  > 10001 -- user-defined ringtones
// 10000  off

XISMD_WriteValueInteger('vol',50);
// 0 -100 %

Ich glaube da fehlt dann die ID als erster Parameter.
Wenn ich „vol“ sende
{„vol“:„50“,„key“:„DF465C63ABE4F61737A7407318D051BC“}

bekomme ich

„Error on send command“ im Device bzw FALSE im Splitter

Die Klingel teste ich jetzt nicht, das Weibchen schläft schon

Huch… Dann muss ich morgen noch mal nachschauen, eigentlich sollte das so aus dem WebFront laufen.
Bei der Klingel und der Lautstärke wäre sonst wieder der Debug interessant.
Ja ich habe die InstanzID im Beispiel vergessen :wink:

Eventuell will er beide Werte zeitgleich haben. Dann muss ich etwas umbauen.
Michael

So letzter Fix für heute :slight_smile:
Nur Update machen, nix löschen oder neu einstellen.
Nur warten bis der erste Heartbeat eintrifft oder einmal auf Read Values im Device klicken.

Dann funktioniert hoffentlich der Farbkreis und die Helligkeit aus dem WebFront :slight_smile:
Michael

Ich glaube vol muss ohne Anführungszeichen geschickt werden, sonst denkt der Gateway es ist ein String

also statt

{"vol":"50","key":"DF465C63ABE4F61737A7407318D051B C"}

so schicken

{"vol":50,"key":"DF465C63ABE4F61737A7407318D051B C"}

Steuerung aus WebFront geht jetzt :slight_smile:
Und das alles ohne Test-Gerät, Respekt :slight_smile:

Eigentlich soll da ein Fehler kommen, wenn du mit XISMD_WriteValueInteger keinen Integer sondern String übergibst…mhhh doch noch eine Baustelle :wink:
Michael

Ich habe ja keinen String übergeben

XISMD_WriteValueInteger($Id, 'vol',50);

es wurde nur ein String gesendet

Danke, das war der entscheidende Hinweis.
Fix verfügbar :wink:
Michael

Error on send command

Dann geht es wohl wirklich nur wenn beide Werte übergeben werden, schade.
Das aber gar keine Antwort kommt, nicht mal ein Error vom Gateway, ist schon merkwürdig.
Michael

ein FALSE kam, irgendwie war das wohl nicht auf dem anderen ScreenShot zu sehen

Das ist nur der Hinweis das keine Antwort vom Gateway eingetroffen ist.
Michael

Also Töne funktionieren (0-9)

XISMD_WriteValueInteger($Id, 'mid',2);
{"mid":2,"key":"7EF7DBBC4DC55B12180B9BDBE0E8B26D"}

Lautstärke geht auch zusammen mit den Tönen nicht

Die Töne sind aber nicht die Klingeltöne die man in der App einstellen kann, da gibt es vermutlich noch was anderes