Ich glaube es sollte key heißen, DU hast Key geschrieben
Jep, auch eben gesehen
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
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
Farbwechsel geht, Helligkeit geht und wird auch im WebFront richtig angezeigt
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
Kannst du die Farbe und Helligkeit jetzt auch im WebFront steuern ?? EDIT: Nein, Fehler gefunden
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
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
Eventuell will er beide Werte zeitgleich haben. Dann muss ich etwas umbauen.
Michael
So letzter Fix für heute
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
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
Und das alles ohne Test-Gerät, Respekt
Eigentlich soll da ein Fehler kommen, wenn du mit XISMD_WriteValueInteger keinen Integer sondern String übergibst…mhhh doch noch eine Baustelle
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
Michael
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
Das ist nur der Hinweis das keine Antwort vom Gateway eingetroffen ist.
Michael