Xiaomi Smarthome Unterstüzung

Okay, dann schaue ich mal ob sich noch jemand meldet. Erstmal vielen Dank für die schnelle und kompetente Hilfe :)!

Wenn ich TRUE, 1 “true” oder ON sende erhalte ich aktuell folgenden Fehler im Openhab

2017-11-10 20:48:22.370 [ERROR] [.script.engine.ScriptExecutionThread] - Rule 'flur_bewegung': The argument 'command' must not be null or empty.

ist irgendwie seltsam :confused:

Scheinbar habe ich gestern das PW falsch gespeichert. Kann ich das einfach nochmal überschreiben?

homegear -e rc '$hg->putParamset(<gateway peer id>,0,["PASSWORD"=>"<PASSWORD"]);' 

Habe ich ausgeführt
Dort fehlt aber nach dem zweiten PASSWORD das “>” …

homegear -e rc '$hg->putParamset(<gateway peer id>,0,["PASSWORD"=>"<PASSWORD>"]);'

PS: scheinbar würde nun soweit alles klappen, allerdings bekomme ich bei den schreibbefehlen immer ein

2017-11-11 19:00:09 >>  {"cmd":"write_ack","sid":"34ce00fa770b","data":"{\"error\":\"Invalid key\"}"}

Was laut DasKleingedruckte ja auf ein falsches Passwort hindeuten würde… Das neusetzen des Passworts scheint leider nicht zu klappen, oder ich habe noch ein anderes Problem…

Hmm, ich habe den Eindruck, Du hast die spitzen Klammern (< >) mit eingegeben statt sie durch das Passwort zu ersetzen …
Also sagen wir mal, die IP des Gateway ist 192.168.178.20 und das Passwort lauter G_E_H_E_I_M dann musst Du folgendes ausführen:
homegear -e rc '$hg->putParamset(192.168.178.20,0,["PASSWORD"=>"G_E_H_E_I_M"]);

2 Likes

Die habe ich tatsächlich mit eingegeben - peinlich
Allerdings klappt es nach wie vor nicht :confused: Mir ist gerade aufgefallen, dass das Gateway in meiner Fritzbox folgenden Namen hat
lumi-gateway-v3-miio63161491

Könnte es eventuell an V3 liegen? Ich habe vorher direkt das OpenHab Binding benutzt, aber da hatte ich das Problem, dass die Geräte nach einiger Zeit keine Werte mehr angezeigt haben ( insbesondere Temperatur und Luftfeuchtigkeit). Damit konnte ich mein vorhaben aber problemlos umsetzen. Es scheint also generell zu klappen mit der v3, es ist nun nur die Frage ob die Homegear Lösung die V3 unterstützt :slight_smile:

PS: ich habe mal die MiGateway.php angepasst und wollte mir das password beim SendCommand ausgeben lassen:

public function sendCommand($socket, $cmd, $ip, $port, $ack)
{	
	
	$this->debug_log($this->_password);
	$this->debug_log($ip);
	$this->debug_log($port);
	$this->debug_log($ack);
	$this->debug_log($socket);
    $result = FALSE;
    $this->debug_log($cmd);
    socket_sendto($socket, $cmd, strlen($cmd), 0, $ip, $port);
    $json = null;
    socket_recvfrom($socket, $json, 1024, MSG_WAITALL, $clientIP, $clientPort);
    if (!is_null($json))
    {
        $this->debug_log($json);
        $response = json_decode($json); 
        if ($response->cmd === $ack)
        {
            $result = json_decode($json);
        }
    }
    
    return $result;
}

Allerdings ist das Password immer leer. Dann wäre auch klar, wieso es nicht klappt :stuck_out_tongue: Nur wieso ist das PW nicht gesetzt…

Wenn ich in getParamSet() das Passwort direkt setzte und nicht aus der Config nehme, dann klappt alles. Hast du eine Idee woran das liegen könnte?

Keine Ahnung, was bei Dir gerade schief läuft. Vielleicht solltest Du das Passwort einfach mit einer grafischen Oberfläche (zB dem Homematic Manager eingeben. Vielleicht geht das auch über OH?
Ist ja egal, wie die Parameter in die Konfiguration gelangen.

Hey, es lief alles ohne Probleme. Dann ging meine SD-Karte kaputt und ich musste ein Backup von letzter Woche einspielen. Seit dem habe ich Probleme mit den Xiaomi geräten.

Ich erhalte folgende scriptengine Fehlermeldung:

11/19/17 17:23:24.377 Scriptengine (/etc/homegear/devices/254/MiGateway.xml): PHP Recoverable fatal error:  
Object of class stdClass could not be converted to string in 
/var/lib/homegear/scripts/DeviceScripts/Xiaomi/MiCentral.php on lin$
11/19/17 17:23:29.289 Scriptengine: PHP Fatal error:  Uncaught Homegear\HomegearException: Script id is invalid. 
in /var/lib/homegear/scripts/DeviceScripts/Xiaomi/MiSmartHome.php:65
Stack trace:
#0 /var/lib/homegear/scripts/DeviceScripts/Xiaomi/MiSmartHome.php(65): Homegear\Homegear::pollEvent()
#1 [internal function]: EventThread->run()
#2 {main}
  thrown in /var/lib/homegear/scripts/DeviceScripts/Xiaomi/MiSmartHome.php on line 65
11/19/17 17:23:51.185 Scriptengine (/etc/homegear/devices/254/MiGateway.xml): PHP Recoverable fatal error:  
Object of class stdClass could not be converted to string in 
/var/lib/homegear/scripts/DeviceScripts/Xiaomi/MiCentral.php on lin$
11/19/17 17:23:54.408 Scriptengine: PHP Fatal error:  Uncaught Homegear\HomegearException: Script id is invalid. 
in /var/lib/homegear/scripts/DeviceScripts/Xiaomi/MiSmartHome.php:65
Stack trace:
#0 /var/lib/homegear/scripts/DeviceScripts/Xiaomi/MiSmartHome.php(65): Homegear\Homegear::pollEvent()
#1 [internal function]: EventThread->run()
#2 {main}
  thrown in /var/lib/homegear/scripts/DeviceScripts/Xiaomi/MiSmartHome.php on line 65

Ich habe nach dem einspielen des Backups alles Aktualisiert. Es ist also die neuste Version von Homegear installiert. Gab es da eventuell Änderungen?

Was heißt denn “die neueste Version von Homegear”? Hast Du jetzt die stable Version 0.7.x oder die Nightly Version 0.8.x? Die genaue Version kannst Du mit homegear -v auf der Kommandozeile ermitteln.

1 Like

Hi, sorry für die späte Rückmeldung. Seltsamerweise hat es einen Tag später ohne mein Zutun wieder funktioniert. Doch diesmal scheint sich das Problem nicht allein zu lösen.

Ich nutze die aktuellste 0.7-Stable version

Nach wie vor ist das LOG voll mit folgender Meldung:

Stack trace:
#0 /var/lib/homegear/scripts/DeviceScripts/Xiaomi/MiSmartHome.php(65): Homegear\Homegear::pollEvent()
#1 [internal function]: EventThread->run()
#2 {main}
  thrown in /var/lib/homegear/scripts/DeviceScripts/Xiaomi/MiSmartHome.php on line 65
12/01/17 17:35:11.805 Scriptengine (/etc/homegear/devices/254/MiGateway.xml): PHP Recoverable fatal error:  Object of class stdClass could not be converted to string in /var/lib/homegear/scripts/DeviceScripts/Xiaomi/MiCentral.php on line 245

Die Homematic-Komponenten lassen sich problemlos verwenden, die Xiaomi-Komponenten logischerweise nicht :slight_smile: :confused:

Die Ausgabe ist immer gleich, egal ob ich das DebugLevel auf 4,5 oder > stelle

Tut mir leid, aber ich habe absolut keine Idee mehr, wo Dein Problem kiegen könnte. Ich habe eben nochmal auf einem RasPi eine frische Installation von H0megear 0.7 aufgesetzt und aus Github alle Dateien geklont und gemäß meiner Beschreibung installiert. Es lief alles auf Anhieb und ohne Fehlermeldungen.
Bist Du sicher, dass die Dateien auf Deiner SD-Karte in Ordnung sind? Vielleicht kannst Du alle nochmal entfernen und neu aus dem Repository einfügen. Die Geräte müssen dafür nicht aus der Datenbank entfernt werden.

Danke für die schnelle Antwort.

ich habe nun alles unter :

/etc/homegear/devices/254/
/var/lib/homegear/scripts/DeviceScripts/Xiaomi/ 

gelöscht und mit frischen Dateien aus GitHub erstezt.

Nun bekomme weitere Fehler:

12/01/17 20:25:33.229 Critical: Could not open module "/var/lib/homegear/modules/mod_homematicwired.so": /var/lib/homegear/modules/mod_homematicwired.so: undefined symbol: _ZN7BaseLib7Systems8ICentral20raiseGetRoomIdByNameERSs
12/01/17 20:25:33.282 Critical: Could not open module "/var/lib/homegear/modules/mod_homematicbidcos.so": /var/lib/homegear/modules/mod_homematicbidcos.so: undefined symbol: _ZN7BaseLib7Systems12DeviceFamily17onGetRoomIdByNameERSs
12/01/17 20:25:33.303 Critical: Could not open module "/var/lib/homegear/modules/mod_miscellaneous.so": /var/lib/homegear/modules/mod_miscellaneous.so: undefined symbol: _ZN7BaseLib7Systems12DeviceFamily17onGetRoomIdByNameERSs
12/01/17 20:25:33.303 Critical: Could not load any family modules from "/var/lib/homegear/modules/".
12/01/17 20:25:33.766 Error: A core file exists in Homegear's working directory ("/var/lib/homegear/core"). Please send this file to the Homegear team including information about your system (Linux distribution, CPU architecture), the Homegear version, the current log files and information what might've caused the error.

Die Coredatei die erstellt wurde ist ~700MB groß. Was kann ich damit machen?

Das deutet darauf hin, dass die Libraries nicht in der richtigen Version vorliegen. Irgendwie ist Deine Homegear Installation komplett hinüber würde ich sagen. Den Meldungen nach würde ich aber davon ausgehen, dass auch die Homematic Geräte nicht funktionieren. Du hast aber schon eine neue SD-Karte genommen, nachdem die alte Installation kaputt gegangen war?

Die so Karte war Nagel neu. Ich habe ein Backup von Anfang November eingespielt. Anschließend funktionierte es auch. Die Probleme traten erst gestern auf, als ich zwei neue heizungsthermostate angelernt habe.
Dabei hat sich irgendwie alles aufgehängt und nach einem Neustart des Raspberry war homegear kaputt.

Kannst du sicher stellen, dass du auch die Raspbian Pakete genommen hast?

Was sagt sudo cat /etc/apt/sources.list.d/homegear.list?

Ich habe ein Vollbackup - erstellt mit raspiBackup - von Anfang November auf die SD gespielt. Danach lief es ja problemlos, daher denke ich nicht das es an falschen Bins liegt. Hier ist die Ausgabe zu:

sudo cat /etc/apt/sources.list.d/homegear.list

deb https://homegear.eu/packages/Raspbian/ jessie/

PS: ich installiere nun nochmal ein komplett neues Image auf eine weitere saubere neue SD und versuche dort nur die homegear-backups einzuspielen

Benutzt du noch Jessie oder schon Stretch?

Ja, es ist ein jesse image. Das war das aktuellste openhabian image. Solte ich lieber auf das stretch image setzen? Welche vorteile bietet das im Gegensatz zum jessie image ?

Außer aktuellerer Software erst mal nur, dass es in jedem Fall länger mit Updats versorgt wird als Jessie.
Homegear sollte aber auf beiden laufen…

Nun habe ich den Salat :stuck_out_tongue:

Ich habe alles neu installiert und die Backups mal weggeslassen. Anschließend habe ich meinen alten rfKey wieder eingegeben und den Raspberry neugestartet. Dann habe ich mir das erste Heizungsthermostat genommen, resettet und versucht neu anzulernen. Leider ohne Erfolg. Es erscheint weder ein Fehler, noch wird es gefunden.

Welches Funkmodul nutzt du? Sind die Schnittstellen aktiviert/freigeräumt? Siehe https://doc.homegear.eu/data/homegear-homematicbidcos/configuration.html#communication-modules

1 Like

Ist eingerichtet und funktioniert jetzt auch wieder. Ivh verwende einen eigenbau nano cul für 12€ :slight_smile: Man muss den rfkey auch korrekt übernehmen :roll_eyes:

Vielen dank für eure hilfe. Kann mam euch irgendwo unterstützen? Der Support hier ist echt bemerkenswert !!!

1 Like