Miele (und andere Smarthome Geräte)

Danke @pmayer, das hat nun geklappt. Ist nun mein Experimentiersystem, daher nicht mehr Live :wink:

Also, Miele Node ist installiert, Credentials ausgefüllt, Waschmschine gestartet, doch leider passiert da nix.

Wie wichtig sind die Länder- und Spracheinstellungen?

06

Da kann ich leider nichts zu sagen.
Schau mal bitte ins action Log (?) oben rechts im Menü ob da was steht.

Was ist die Ausgabe im Debug-Tab?

Debug Tab bleibt leider leer.

Doch Event log meint:
2020-01-24T19:23:16.183Z Node 84a5e9eb.7cd3c8: Unknown error obtaining authorization code. E. g. server is not reachable.

Node 84a5e9eb.7cd3c8 ist die Miele Node.

Der Node ruft api.mcs3.miele.com auf… und der Server ist zumindest von mir aus erreichbar.

Stimmt die DNS- und Gateway-Konfiguration deines Pi’s?

Ein Curl ohne https://

pi@homegear(rw):curl api.mcs3.miele.com/oauth/auth
<html>
<head><title>308 Permanent Redirect</title></head>
<body bgcolor="white">
<center><h1>308 Permanent Redirect</h1></center>
<hr><center>nginx</center>
</body>
</html>

Ein Curl mit https://:

pi@homegear(rw):curl https://api.mcs3.miele.com/oauth/auth
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

Machst du das auf deinem Pi? Welches Raspbian läuft da? Ist das auf dem aktuellen Stand?

Der Node macht in jedem Fall https… es könnte sein, dass dein Certificate-Store auf dem Pi nicht aktuell ist.

So sieht es bei mir auf dem Pi aus:

pi@homegear:~ $ curl https://api.mcs3.miele.com/oauth/auth
{"code":405,"message":"HTTP 405 Method Not Allowed"

Ja, das ist auf dem gelichen Raspi.
Ich fahre
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
Basis war das ISO vom Homegear 07 (testing) mit Raspbian 10 Buster download.

Bei mir Buster aus den offiziellen Quellen. apt update && apt full-upgrade alles gemacht?

Bringt leider nichts. Ebenso wenig ein update-ca-certificates

Funktioniert bei dir ein curl https://api.mcs3.miele.com/oauth/auth ?

Ja… wie oben gemacht. Also… es muss an deinem CA store auf dem Pi liegen.

Was sagt bei dir strace curl https://www.google.com |& grep open, siehe https://serverfault.com/questions/485597/default-ca-cert-bundle-location
Ist /etc/ssl/certs/ gefüllt?

Da passiert garnix!

/etc/ssl/certs/ ist reichlich gefüllt. Auch mit diversen DigiCert…pem

Gibt bei mir nen Stacktrace und wenn es “woanders” funktioniert würde ich entweder mom auf das Homegear-Image tippen oder, dass die SD-Kart nen Hau hat.

Ich glaube aber das Homegear-Image scheidet fast aus, weil @sathya wirklich wie ein Fuchs auf Sicherheit, Zertifikate, etc. achtet.
Magst du einfach mal nen Raspbian auf den Pi braten und damit mal testen?

Ok, musste erst noch strace installieren. Nun habe ich mehr Infos bekommen:

openat(AT_FDCWD, "/proc/sys/crypto/fips_enabled", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/etc/gcrypt/hwf.deny", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/proc/self/auxv", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/root/.curlrc", O_RDONLY|O_LARGEFILE) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/lib/ssl/openssl.cnf", O_RDONLY|O_LARGEFILE) = 4
openat(AT_FDCWD, "/etc/localtime", O_RDONLY|O_CLOEXEC) = 4

Taucht da nirgends /etc/ssl/certs/ auf?

Nein, das taucht tatsächlich nicht auf:

pi@homegear(rw):/etc/ssl/certs$ sudo strace curl https://www.google.com |& grep open
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libcurl.so.4", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libz.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libnghttp2.so.14", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libidn2.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/librtmp.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libssh2.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libpsl.so.5", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libssl.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libcrypto.so.1.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libgssapi_krb5.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libkrb5.so.3", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libk5crypto.so.3", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libcom_err.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libldap_r-2.4.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/liblber-2.4.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libunistring.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libgnutls.so.30", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libhogweed.so.4", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libnettle.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libgmp.so.10", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libgcrypt.so.20", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libkrb5support.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libkeyutils.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libsasl2.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libp11-kit.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libtasn1.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libgpg-error.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libffi.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libgcc_s.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/ssl/openssl.cnf", O_RDONLY|O_LARGEFILE) = 3
openat(AT_FDCWD, "/proc/sys/crypto/fips_enabled", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/etc/gcrypt/hwf.deny", O_RDONLY) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/proc/self/auxv", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
openat(AT_FDCWD, "/root/.curlrc", O_RDONLY|O_LARGEFILE) = -1 ENOENT (Datei oder Verzeichnis nicht gefunden)
openat(AT_FDCWD, "/usr/lib/ssl/openssl.cnf", O_RDONLY|O_LARGEFILE) = 4
openat(AT_FDCWD, "/etc/localtime", O_RDONLY|O_CLOEXEC) = 4

Dann findet curl die certs auf dem Pi nicht… frag mich nicht warum.
Schau mal ob dir das weiterhilft: https://serverfault.com/questions/823815/curl-not-using-cert-from-etc-ssl-certs-ca-certificate-crt

Steht in deiner /etc/homegear/php.ini irgendwas bei [curl] oder bei [openssl]? Bei mir ist da alles auskommentiert - somit nutzt PHP von homegear den Systempfad… und da gibt es bei dir in node-blue ja Probleme.

Die sind auch bei mir auskommentiert.

Hmm… dann gehen mir die Ideen aus… kann mir wie gesagt nicht vorstellen, dass @sathya irgendwas im Homegear-Image deaktiviert hat.

Ich kann nochmals mit einer frischen Installation beginnen. Kannst du mir sagen, welches Image (woher) und welche Homegear Version ich verwenden soll?