Die Anbindung über zwei nodejs Services und ein FHEM Modul erschien mir ziemlich aufwendig:
Cloud-MQTT - iobroker.worx - fhem-landroid-s - 74_LANDROID.pm
Ein Beitrag im Forum gab die entscheidenden Hinweise. Ich habe das ganze noch etwas weiter geführt und mich dabei auch mal etwas eingehender mit attrTemplate beschäftigt.
Vorbereitung
Zur Vorbereitung der Installation braucht man ein Tool um die Informationen für den Zugang zum Cloudserver zu bekommen.
- Broker Server Adresse
- Board ID z.B. bei den 2019 Modellen PRM100
- Mac zwölf stellig
- SSL Zertifikat AWS.p12
- Eine neue Uuid -> kann einfach selbst erzeugt werden:
- cat /proc/sys/kernel/random/uuid
- oder im Browser hier .
Das Zertifikat muss noch zerlegt werden, um es in FHEM mit MQTT2_CLIENT verwenden zu können.
Einrichtung
Mit scp kopiert man die Datei AWS.p12 auf den FHEM Server:
scp "d:\Downloads\V0.0.24 - Net\AWS.p12" pi@raspib3:
Ab hier sind die Befehle für die FHEM Kommandozeile oder die Raw Definition aufbereitet!
Das Zertifikat muss zerlegt werden damit fhem die Dateien verwenden kann.
"openssl pkcs12 -in /home/pi/AWS.p12 -nokeys -passin pass: -out aws.cer -clcerts"
"openssl pkcs12 -in /home/pi/AWS.p12 -nodes -passin pass: -out aws.key -nocerts"
"chmod 0600 aws.*"
Die Template Datei kann man jederzeit aktualisieren ohne ein komplettes Update machen zu müssen. Nichtsdestotrotz muss FHEM halbwegs aktuell sein und attrTemplate funktioniert.
{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }
Jetzt in FHEM den Connector zum Broker herstellen und testen.define MQTT_Worx MQTT2_CLIENT <broker-server-adresse>:8883
attr MQTT_Worx SSL 1
attr MQTT_Worx autocreate simple
{my $uuid=qx(cat /proc/sys/kernel/random/uuid);;fhem("attr MQTT_Worx clientId android-$uuid")}
attr MQTT_Worx keepaliveTimeout 600
attr MQTT_Worx mqttVersion 3.1.1
attr MQTT_Worx msgAfterConnect <BoardID>/<MAC>/commandIn {}
attr MQTT_Worx sslargs SSL_version:TLSv12 SSL_cert_file:aws.cer SSL_key_file:aws.key SSL_use_cert:1
attr MQTT_Worx subscriptions <BoardID>/<MAC>/commandOut
Hat man alles richtig gemacht, geht der state des Devices MQTT_Worx sofort auf opened.Wechselt der Status hektisch zwischen opened und disconnected stimmt etwas mit dem Zertifikat nicht.
Die erste Übertragung sollte automatisch ein neues MQTT_DEVICE erstellen.
Auf dieses Device wird jetzt das Template angewendet und damit konfiguriert.
Problemlösung
Bleibt der Connector MQTT_Worx auf disconnected -> die Zertifikate prüfen:
Das Ergebnis sollte in etwa so aussehen:
set MQTT2_.*:FILTER=IODev=MQTT_Worx attrTemplate worx_landroid
Die Readings und die Steuerung sind ähnlich das Moduls 74_LANDROID.pmProblemlösung
Bleibt der Connector MQTT_Worx auf disconnected -> die Zertifikate prüfen:
{qx(ls -lha /opt/fhem/aws.*)}
Das Ergebnis sollte in etwa so aussehen:
-rw------- 1 fhem dialout 1.4K Jun 9 13:27 /opt/fhem/aws.cer
-rw------- 1 fhem dialout 1.8K Jun 9 13:27 /opt/fhem/aws.key/
Hallo,
AntwortenLöschenDieses Thema interessiert mich bereits lange! Ist dies hiermit erledigt?
Mit freundlichen Grüßen,
Wajos
Hallo, naja erledigt - wann ist etwas schon erledigt. Aber derzeit fehlt mir nichts. Man kann sicher noch ein paar Dinge tun - hast Du Ideen?
LöschenGruß Otto
Ich würde das gerne alles verstehen können. Wo kann ich mir Tipps zu dem Thema für absolute Einsteiger holen?
AntwortenLöschenLG Heinrich
Hallo Heinrich,
Löschenes gibt auch einen Beitrag im Forum
Dort kannst Du gern einfach Fragen stellen.
Hallo Otto,
AntwortenLöschendanke für den Tipp, läuft sehr stabil und ich bin begeistert.
Vielen Dank, Otto!
AntwortenLöschenEs hat geklappt. Es gab bei mir Probleme, da die beiden Zertifikate aws.key und aws.cer im Ordner /home/pi erstellt wurden und noch in den Ordner opt/fhem kopiert werden mussten. Hat mich eine ganze Weile gekostet, dies herauszufinden. Jetzt bin ich verbunden. Danke!!
Die beiden openssl Befehle tun aber genau dies, wenn man sie nicht in der Linux Konsole, sondern wie beschrieben in der fhem Kommando Zeile eingibt. Dann wird im /home/pi Pfad gelesen und im /opt/fhem Pfad geschrieben.😃
LöschenHallo, bei mir funktioniert es aktuell nicht mehr. Geht es bei dir noch immer @otto?
AntwortenLöschenNeine funktioniert leider nicht mehr. Die haben die Anmeldung komplett umgebaut. Ein Jungs im Forum sind am suchen, mal schauen ob die Erfolg haben.
Löschen