Einladung zum Beta-Test: "FHEMlazy" zur einfacheren Alexa-Integration

Begonnen von gvzdus, 23 Dezember 2018, 15:30:36

Vorheriges Thema - Nächstes Thema

gvzdus

Update:
Dieser Post ist inzwischen überholt. FHEM Lazy ist FHEM Connector. Bitte lese den Anleitungs-Wiki https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa.

Kurzfassung:
Ich habe einen Alexa-Skill fertig, der FHEM deutlich einfacher als das bisherige Verfahren einbindet und suche Beta-Tester, die ich per Email einladen kann.
Das Ganze ist zu 90% das großartige Werk von justme1968 wie bisher, aber jetzt mit eleganterer Connectivity.

Konkrete Ziele waren, folgende Pain-Points zu beseitigen:

       
  • Notwendigkeit, einen Port ins Internet zu öffnen (mit den entsprechenden Schwierigkeiten der Routerkonfiguration oder gar DSlite-Anschlüsse)
  • Sich als Entwickler bei Amazon registrieren zu müssen
  • Eigene Lambda-Funktionen zu installieren
  • Einen eigenen Skill zu installieren
  • Die teils etwas grottige Antwortszeit zu verbessern.
Es bleibt dabei, einen lokalen NodeJS installieren zu müssen

Bevor Ihr weiterlest:
Für die Phase 1 bis zur Veröffentlichung (bzw. Einreichung bei Amazon) suche ich ca. 10 Tester, die

       
  • sich bewusst sind, Tester zu sein
  • keine Schwierigkeiten haben, z.B. das Debug-Protokoll von SSH zu lesen, oder zu gucken, ob SSH den richtigen Key verwendet.
  • nodeJS kennen
  • Englisch verstehen
Perfekterweise

       
  • läuft eigentlich schon Alexa über den eigenen Skill
  • bastelst Du vielleicht sogar am HTML der Registrierungsseite mit (HTML ist nicht meine Stärke)
  • bist Du bereit, den Wiki mitzuschreiben
  • oder Du guckst Dir an, ob Du Sicherheitslücken findest.
Konkret gesprochen: Ich kann keinen Anfängersupport bereitstellen (Family, Firma, das übliche etc.).


Wie funktioniert es?


Die Idee, die mich begeistert hat, ist der Dienst http://serveo.net. Am besten an dieser Stelle einfach mal die Webseite aufrufen. Wenn es bei Dir dann so wie bei mir läuft: ,,Genial einfache Idee, so kann man das Tunnel-Problem lösen", dann vollziehst Du meinen ,,So muss man das machen"-Gedanken vor ein paar Wochen: Der Tunnel auf den heimischen PC wird über
ssh -R <anyport>:localhost:3000 zielserveriminter.net
aufgebaut.

Jetzt zum Unterschied: Bei serveo.net ist damit ,,Dein Internet-Port" auch wirklich im Internet. Bei mir ist das wie folgt gelöst: Bei der Aktivierung des Skills wird ein OAuth-Token von meinem Server vergeben. Endpunkt für die Lambda-Funktionen ist https://fhem.garnix.de/alexa - für alle Nutzer. Anhand des Bearer-Tokens wird entschieden, in welchen verbundenen SSH-Reverse-Tunnel die Pakete geroutet werden.  Damit gelangen also nur die TCP-Verbindungen auf Deinen Rechner, die per OAuth zu Deinem Account zugeordnet werden. Dein nodejs-Prozess hängt also nicht ,,offen im Internet".

Die Authentifizierung läuft wie folgt:
Vor der Inbetriebnahme des Skills muss man sich einmal per SSH ,,voranmelden".
ssh fhem.garnix.de register email=<adresse>
Die Angabe der Email ist freiwillig, allerdings halte ich es für sinnvoll, ggf. Änderungen oder gar
die Einstellung des Dienstes kommunizieren zu können. Meine Datenschutzerklärung habe ich noch nicht fertig, aber da wird dann das übliche Anständige drinstehen (keine Werbung, Weitergabe etc.)

Jetzt generiert der Server ein 64-Bit-Passwort (also einen entsprechenden Hex-String), der Dein Passwort darstellt. Gespeichert wird serverseitig nur der SHA256-Hash. Du erhälst als Antwort einen Schlüssel der Form
<Hashcode-Deines-Public-SSH-Key>-<generiertes Passwort>

Bei der Aktivierung des Skills gibst Du diesen Schlüssel an. Mein Server generiert einen Access-Code für Amazon und mit den daraus generierten Bearer-Codes weiß der Server, welches Bearer-Token zu welchem verbundenen SSH-Client gehört.

Netztechnisch spricht die Echo-Cloud also mit meiner zentralen Lambda-Funktion (im Kern unverändert, nur fischt sie das Bearer-Token aus der Requeststruktur und schreibt es standardkonform in den Header). Die Lambda-Funktion spricht mit meinem Tomcat-Webserver (ist eine normale Amazon-EC2-Instanz in Irland). Der Java-Prozess hat über Apache-MINA-SSH andererseits den SSH-Server, mit dem sich Dein Client verbindet, und routet die Requests zu Deinem Server.
Das Ganze ist deutlich flotter in der Reaktion als der klassische Weg - ich komme auf ca. 150 ms Lambda-Laufzeit versus 650 ms mit dem klassischen Weg.

Nötige Anpassungen am nodejs-Prozess (alexa-Prozess)

       
  • Der nodejs-Prozess sollte unbedingt nicht mehr im Internet stehen, denn die Validierung
    der Tokens auf der lokalen Seite entfällt.
  • Da SSH bereits Verschlüssellung realisiert, habe ich mich gegen eine doppelte Verschlüsselung
    entschieden: Der nodejs läuft auf HTTP
  • Die Tokenvalidierung im nodeJS muss ausgebaut werden.
Das läuft wie folgt:

In .alexa/config.json unter ,,Alexa" folgendes eintragen:
...
"alexa":
...
   "ssl": false,
   "bind-ip": "127.0.0.1",
   "trustAny": true,
...


,,ssl" und ,,bind-ip" sind dabei ,,klassische" Settings, ,,trustAny" ist die ,,gefährliche Neuerung", auf die Validieren von BearerTokens zu verzichten.

Um ,,trustAny" zu verstehen, in lib/server.js die Zeile 708 wie folgt erweitern:
} else if( (token === accepted_token && Date.now() < expires) || this._config.alexa.trustAny === true) {
      handler.bind(this)( event, callback );


Ich hoffe, ich habe nun abschreckend genug geschrieben, um nicht in die Verlegenheit zu kommen, npn zu erklären :-)

Ziel ist natürlich, im Laufe des Beta-Tests das Ganze bullet-proof und maximal anwenderfreundlich hinzubekommen, um die aktuelle Anleitung auf ein Drittel zu kürzen...

Bis hierhin durchgekommen und motiviert? Dann ...

Die Schritte in Kürze


       
  • Optional: Die lokale Installation von NodeJS und Alexa-FHEM gemäß Wiki, Abschnitt Installation, durchführen. Ende ist da, wo nodejs läuft und Du Dich mit Amazon rumschlagen müsstest. Alternativ hast Du Alexa-FHEM idealerweise schon fertig eingerichtet
  • Auf dem User, auf dem der SSH-Prozesse laufen soll, anmelden, und
    ssh fhem.garnix.de register email=xyz@abc.de
    ausführen.
    Geht nicht? Dann hast Du vermutlich noch keinen SSH-Key generiert.
    Antwort kommt? Code wegsichern - der kommt nur einmal!
  • Endlosschleife für
      ssh -R 1234:localhost:3000 fhem.garnix.de
    installieren, am besten mit Log. Achtung: Je nach SSH-Version trennt sich SSH nach einigen Minuten idle-Time, allein dafür ist die Endlosschleife nötig. Wenn permanent neue SSH-Prozesse gestartet werden, verwendest Du offenbar für die Endlosschleife einen anderen SSH-Key als bei der Registrierung
  • Config von nodejs anpassen (ssl:false, etc.), siehe oben
  • Code von lib/server.js anpassen, siehe oben
  • nodejs-Prozess restarten
  • curl http://localhost:3000/ sollte jetzt einen sinnvollen Textfehler ausspucken
  • Mich anschreiben, und zwar unter gvz mit der Domain garnix.de . Formloses ,,bitte lade mich ein" reicht. Dann lade ich Dich als Beta-Tester ein
  • Derweil schon mal unter https://fhem.garnix.de/register/ die Seite aufrufen, zu der Du nachher bei der Anmeldung
    kommst. Hier ist ein minimaler Funktionstest implementiert
  • Wenn die Einladung von Amazon kommt: Skill ,,FHEMlazy" hinzufügen und den Schlüssel eingeben
  • Über die Erfahrungen bitte hier berichten :-)
Schöne Weihnachtstage!

Georg

aruttkamp

Ich würde Dir gerne helfen und mittesten. Möchte mich eh in den kommenden 14 Tagen mit der Alexa Einbindung beschäftigen.
Kannst mich gerne per Mai kontaktieren : andreas@ruttkamp.de
Andreas

dadoc

Wäre ebenfalls sofort dabei, bin allerdings noch bis zum 7.1. fernab meiner Alexas...
Schaumermal, und danke fürs Kümmern
Martin
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

gvzdus

Moin, mal ein Zwischenstand:

Wie das mit dem Beta-Testing läuft, weiß ich nicht genau. Andreas hat die Einladung erst beim "Send Reminder" bekommen. Natürlich brauche ich die Email-Adresse, um eine Einladung zu verschicken - noch sind 498 Einladungen frei :-) Vielleicht mag Andreas mal schreiben, wie das aussieht, wenn man eine Einladung bekommt?

Ich habe parallel auch in den FHEM-Facebook-Thread geschrieben sowie Andre aka justme1968 angeschrieben, da wird ein bissel diskutiert.

Ein paar Punkte:
- Wenn ich es an den Verein übergeben kann, mache ich das. Aber erst mal möchte ich zeigen, dass meine Lösung besser als der Status quo ist.
- Ja.Hosting geht z.Zt. auf meinen Deckel und hängt an mir. Die erwarteten 40 Euro im Monat bringen mich aber nicht um. Wenn ich "meinen Server" zum Verein übertragen kann, tue ich das.
- Vielleicht habe ich doch etwas abschreckend geschrieben, ich will mir halt nicht ans Bein binden, nodejs zu installieren o.ä. zu Supporten.

MadMax-FHEM

#4
Hi Martin,

schön dass es bzgl. Skill weiter geht! Danke dafür!

Zitat von: gvzdus am 23 Dezember 2018, 23:59:52
- Ja.Hosting geht z.Zt. auf meinen Deckel und hängt an mir. Die erwarteten 40 Euro im Monat bringen mich aber nicht um. Wenn ich "meinen Server" zum Verein übertragen kann, tue ich das.

Da lässt sich doch (wenn du willst) bestimmt was machen!


Zitat von: gvzdus am 23 Dezember 2018, 23:59:52
- Vielleicht habe ich doch etwas abschreckend geschrieben, ich will mir halt nicht ans Bein binden, nodejs zu installieren o.ä. zu Supporten.

Naja vielleicht schon ein wenig "hart" formuliert...
...die "einleitenden Worte"... ;)
Das hier klingt schon "besser"...

Kenne ja alexa-fhem schon ne Weile und hab auch schon einigen auf die Beine geholfen das zum Laufen zu bringen...
...aber ich hab/hätte mich auch nicht "getraut/berufen gefühlt"... ;)

(aber scheitert aktuell auch an der nötigen Zeit :-|  )

Aber ich verstehe schon was du meinst...
...also zumindest, wenn ich das jetzt lese... ;)

Aber vielleicht so:

Hilfe/Unterstützung/Betatest bei/nach installation von lauffähiger alexa-fhem (Probleme bis dahin sind ja dann support-technisch "abgedeckt" ;)  )...

...weil so wie ich das verstanden hab ist das ja immer noch die Basis?!

Gut bis auf den Amazon-Teil...
...aber wer sich da durchgekämpft hat und es läuft hat evtl. eine brauchbare Basis (Installation/Know How) als Beta-Tester... ;)

Ansonsten könnte es etwas dauern bis sich die Plätze füllen...

Viel Erfolg, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

gvzdus

> Hi Martin,

Georg, aber kein Problem  :)

Erst mal Neuigkeiten: Ich habe jetzt die Datenschutzerklärung fertig ( https://fhem.garnix.de/privacy ). Eigentlich eine blöde Formalie, aber dabei ist mir z.B. aufgefallen, dass ich dringend Cloudwatch für das Lambda abschalten muss, dass ich die Quelle des Zugriffs (IP-Adresse aus der Amazon-Cloud in den Request mit reinschreiben sollte (kommt zwar im SSH-Paket mit, aber wer liest das schon?).

Nein, "mein Skill" ist im Kern genau der Original-Skill. Ich hänge die Lambda-Funktion mal unten an. Es sind drei Änderungen drin: Das Beamer-Token wird aus der Datenstruktur des Requests rausgefischt und in den Header geschrieben. Und das elend lange correlationToken ersetze ich durch ein "-", damit die Datenvolumina schrumpfen und das lokale Logfile leserlicher wird. Und drittens gucke ich anhand der Bearer-Tokens, ob geloggt werden soll, um, falls ich mal tracen muss, nur konkret mich selbst (oder jemanden der das wünscht) mitzuschneiden.

Der lokale nodejs soll genau der gleiche bleiben, bis auf die für den SSH-Reverse-Tunnel überbrückte Bearer-Token-Validierung (siehe Code-Änderung). Noch besser wäre zwar, wenn alles in FHEM integriert wäre, und kein nodejs nötig wäre - aber ich bin kein Perl-Guru, und der getrennte Prozess hat auch seinen Charme.

Sprich: Eigentlich ist mein Anspruch nur, einen Reverse-Proxy anzubieten, der insofern besonders sicher ist, als er nur authentifizierte Alexa-Requests durchlässt. Und halt besonders wartungs- und supportarm sein soll. Ich hänge mal unten den Screenshot rein, der nach der Skillverknüpfung erscheint (oder wenn man https://fhem.garnix.de/register/ aufruft und den Key eingibt).
Im Prinzip siehst Du, wie da alle Punkte durchgetestet werden:
- Passt der Key?
- Ist Dein SSH-Prozess oben und verbunden?
- Hast Du auch "-R ..." beim SSH-Prozess angegeben.
- Kommt ein HTTP-Connect zustande?
- Wenn man Discover auslöst, findet nodejs auch Geräte?

Sprich: Mit den Angaben kann man eigentlich viel direkter feststellen, was schief läuft, bzw. direkt auf der Webseite Tipps geben, was zum Fliegen fehlt.

Cheers und schöne Weihnachten, Georg


So, jetzt die Lambda-Funktion:

const PORT=443;
const HOST='fhem.garnix.de';

// namespaces
const NAMESPACE_CONTROL = "Alexa.ConnectedHome.Control";
const NAMESPACE_DISCOVERY = "Alexa.ConnectedHome.Discovery";

// errors
const ERROR_TARGET_OFFLINE = "TargetOfflineError";
const ERROR_UNSUPPORTED_OPERATION = "UnsupportedOperationError";
const ERROR_UNEXPECTED_INFO = "UnexpectedInformationReceivedError";

// Bearer-Tokens to debug:
const DEBUG_TOKENS = new Set(['b0a3b71AA3387fd1']);

// entry
exports.handler = function(event, context, callback) {

 
  var token;
  if( event.directive && event.directive.endpoint && event.directive.endpoint.scope && event.directive.endpoint.scope.token )
    token = event.directive.endpoint.scope.token;
  else if( event.directive && event.directive.payload && event.directive.payload.scope && event.directive.payload.scope.token )
    token = event.directive.payload.scope.token;
  else if( event.context && event.context.System && event.context.System.user && event.context.System.user.accessToken )
    token = event.context.System.user.accessToken;
  else if( event.session && event.session.user && event.session.user.accessToken )
    token = event.session.user.accessToken;
  else if( event.payload )
    token = event.payload.accessToken;
  else
    token = undefined;
   
  var DEBUG = DEBUG_TOKENS.has(token);
  if (DEBUG) {
    console.log(`EVENT: ` + JSON.stringify(event));
    console.log(`CONTEXT: ` + JSON.stringify(context));
  }
   
  var ctoken;
  if (event.directive && event.directive.header && event.directive.header.correlationToken ) {
    ctoken = event.directive.header.correlationToken;
    event.directive.header.correlationToken = "-";
  }
 
  var post_data = JSON.stringify(event);
 
  var options = {
    hostname: HOST,
    port: PORT,
    //family: 6,
    path: '/alexa',
    method: 'POST',
    rejectUnauthorized: false, // accept self-signed
    headers: {
      'Content-Type': 'application/json',
      'Content-Length': Buffer.byteLength(post_data),
      'Authorization': 'Bearer ' + token
    }
  };

  var request = require('https').request(options, (result) => {
    if (DEBUG) {
      console.log(`STATUS: ${result.statusCode}`);
      console.log(`HEADERS: ${JSON.stringify(result.headers)}`);
    }
    result.setEncoding('utf8');
    var body = '';
    result.on('data', (chunk) => body += chunk);
    result.on('end', () => {
      if (DEBUG) {
        console.log(`BODY: ${JSON.stringify(body)}`);
      }
      var reply = JSON.parse(body);
      if (ctoken && reply.event && reply.event.header && reply.event.header.correlationToken) {
          reply.event.header.correlationToken = ctoken;
      }
      callback(null, JSON.parse(body) );
      return;
    });
  });

  request.on('error', (e) => {
    console.log(`problem with request: ${e.message}`);
    callback(null, createError(ERROR_TARGET_OFFLINE) );
    return;
  });

  request.write(post_data);
  request.end();

  return;
 
}// exports.handler

// support functions

var createMessageId = function() {
  var d = new Date().getTime();
  var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    var r = (d + Math.random()*16)%16 | 0;
    d = Math.floor(d/16);
    return (c=='x' ? r : (r&0x3|0x8)).toString(16);
  });
  return uuid;
}// createMessageId


var createHeader = function(namespace, name) {
  return {
    "messageId": createMessageId(),
    "namespace": namespace,
    "name": name,
    "payloadVersion": "2"
  };
}// createHeader

var createError = function(error,payload) {
  if( payload === undefined )
    payload = {};

  return {
    "header" : createHeader(NAMESPACE_CONTROL,error),
    "payload" : payload,
  };
}// createError



MadMax-FHEM

Zitat von: gvzdus am 24 Dezember 2018, 08:39:36
> Hi Martin,

Georg, aber kein Problem  :)

Cheers und schöne Weihnachten, Georg

Hi Georg! ;)

Ups, ich sollte es lassen morgens beim Wachwerden mit dem Handy hier zu antworten... ;)

Ich schau mir das mal in Ruhe an, wenn ich wach bin und v.a. vor einem Rechner sitze...

Danke und ebenso: Frosch Fescht!

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

aruttkamp

Sorry Leute, aber Weihnachten waren die Prioritäten zu Gunsten von lecker Essen und Trinken doch sehr verschoben ;-)

Wenn man die Einladung per Mail erhält gelangt man per Klick auf den Link auf die Webseite der eigenen Alexa und kann den Skill aktivieren. Danach gelangt man auf eine Registrierungsseite und soll dort Eine Registrierung ausführen.
Leider erhalte ich dabei immer
- Permission denied (keyboard-interactive,publickey) -

Da ist mir im Moment nicht klar ob der Fehler bei mir liegt.

Da hänge ich also gerade.

gvzdus

Moin, das ist doch eigentlich eher eine Meldung von SSH und nicht der Registrierungsseite, oder?

Ich vermute, Du hast entweder nicht

ssh fhem.garnix.de register


ausgeführt, oder nicht unter dem Benutzer, unter dem Du dann "ssh -R 1234:localhost:3000 fhem.garnix.de" laufen lassen willst.

P.S.: Noch viel wahrscheinlicher: Du hast noch keinen SSH-Key generiert. Einfach

ssh-keygen

aufrufen und Enter drücken, bis fertig ist.

aruttkamp

#9
Oh man ..
alexa-fhem läuft noch nicht. bin vor Weihnachten nicht fertig geworden und hatte es verdrängt.
Danke für den Schubser.

[P.S.: Noch viel wahrscheinlicher: Du hast noch keinen SSH-Key generiert.]

Schuldig im Sinne der Anklage

gvzdus

Moin, es wird sehr bald eine neue Version geben, die die gesamte Einrichtung sehr vereinfacht.
Außerdem ziehe ich auf die Server des Vereins um (danke, Rudi), also keine Angst vor LKWs, die mich überfahren.

Für den Umzug stelle ich einstweilen fhem.garnix.de mit den DNS-Records um, dadurch wird der Server in den nächsten 24 Stunden (TTL war leider hoch) etwas unklar im Verhalten sein (schon Verein oder noch Amazon). Wer zufällig ausgerechnet heute testen will: Statt auf Port 22 läuft der Service künftig unter:
SSH: fhem-va.fhem.de:58824
Web: fhem-va.fhem.de: 58823 (im Moment noch kein richtiges SSL-Zertifikat) oder
          fhem.garnix.de:58823 (übergangsweise, aber dafür mit richtigem Zertifikat).

Aber am einfachsten: Heute nicht testen :-)

sTaN

Klingt vielversprechend! Freue mich, gleich mit der neuen Version zu starten! Hatte mir Alexa-Fhem schon lange vorgenommen. Noch habe ich bis 7.1. Urlaub und Zeit [emoji41]
Raspberry Pi 3
2 x CUL CC1101-USB-Lite 868MHz
FS20 Komponenten, Philips HUE, Alexa-Fhem, MAX! Geräte, homebridge, harmony, Unifi, FirtzBox, MQTT, Aurora, Denon, Sonos, TabletUI, CALENDAR, EGPM2LAN, Pushover

mark79

Ich habe trotz der Warnung mich heute angemeldet, der Tunnel steht und die Status Seite sieht auch gut aus.
Das war einfacher als vorher angenommen.

Jetzt muss ich nur noch verstehen wie man später die Geräte schaltet. Ich habe die Alexas sonst über ha-bridge angebunden.
Aber wie es ausschaut ist es wie bei Snips, das man die Fhem Devices in den Raum "alexa" schiebt und diese zusätzlich mit mappings konfiguriert.

Jetzt warte ich auf die Skill Bestätigung und lese mich noch noch etwas ein.

Vielen Dank für den Dienst, auf so was habe ich gewartet, ohne etwas nach außen hin öffnen zu müssen! :)
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

mark79

Die Email für die Skill Aktivierung ist schon eingetrudelt. Es gibt ein Problem, wenn ich den Skill aktivieren will, erhalte ich ein SSL Fehler im Chrome Browser auf der URL: https://fhem.garnix.de:58823/register/?client_id=amzn...

Diese Website kann keine sichere Verbindung bereitstellen fhem.garnix.de hat eine ungültige Antwort gesendet.
Versuchen Sie, die Windows-Netzwerkdiagnose auszuführen.
ERR_SSL_PROTOCOL_ERROR


Ich habe im Browser versucht die URL mit der neuen URL (fhem-va.fhem.de) zu ersetzen, aber das hat leider auch nicht geklappt.

Ich versuche das später noch mal.
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

gvzdus

Ja, beim Zielserver beim Verein warte ich auf die SSL-Einrichtung, hatte aber den Port schonmal auf HTTP umgestellt, damit von Rudis Server mit SSL-Terminierung nicht doppelt gemoppelt verschlüsselt wird.

Ich hoffe, Du weisst es zu schätzen :-): Ich habe fhem.garnix.de jetzt wieder zu Amazon geschwenkt, damit meine Frau morgen garantiert die Rollläden öffnen und Du weitermachen kannst. Also alles wieder mit fhem.garnix.de, Port 443, u.s.w.

Du wirst die Tage dann den Skill neu verknüpfen müssen, das habe ich aber nun schon etliche Male gemacht, es geht nur die Raumzuordnung flöten.

Ich habe übrigens bei mir in der config.json:

"filter": "alexaName=...*",

Dann brauche ich nicht die Geräte in einen Raum zu schubsen, sondern kann in einem Rutsch Namen vergeben und damit implizit sagen: "Nutz das Viech!".

Und warum "...*"? Weil ich, wenn ich Strukturen sichtbar machen möchte, die "Kinder" den "alexaName" erben. Setze ich die Kinder explizit auf "-" (= nur 1 Zeichen), werden sie nicht gefunden.