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

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

Vorheriges Thema - Nächstes Thema

der.einstein

Zitat von: MadMax-FHEM am 02 Februar 2019, 16:54:17
Vielleicht ist das eher zielführend für deine Aufgabe: https://forum.fhem.de/index.php/topic,82631.0.html

In dem Thread wird auch (in der Mitte mal und gegen Ende) erläutert, wie man alexa-fhem und das echodevice "kombinieren" kann...

Gruß, Joachim
Danke MadMax,
aber es hat eigentlich nichts mit dem echodevice zu tun:

Alexa läuft bei mir erfolgreich mit FHEM Connector.
Ich will zusätzlich meine Squeezebox-Instanzen damit steuern.
Diese nehmen folgende Befehle an:

set play
set pause
set stop
set next
set previous

Im FHEM Connector WIKi steht, ich soll genericDeviceType=media setzen und homebridgeMapping=playback

Wie mache ich das, um obige set Befehle über Alexa abzusetzen?

Danke.

Gesendet von meinem LG-D855 mit Tapatalk


justme1968

bitte schau dir doch noch mal an wie das homebridgeMapping funktioniert. du kannst so ziemlich jede kombination aus readings und kommandos konfigurieren.

wie das steht an mehreren stellen im wiki. 
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Amenophis86

ok, brauche doch Hilfe. Bevor ich mir jetzt was zerschieße. Muss mein ConfigFile für beides dann so aussehen:


{
   "connections" : [
      {
         "port" : "8083",
         "server" : "127.0.0.1",
         "filter" : "alexaName=..*",
         "webname" : "fhem",
         "uid" : xxx,
         "name" : "FHEM"
      }
   ],
   "sshproxy" : {
      "ssh" : "/usr/bin/ssh",
      "description" : "FHEM Connector"
   }
   
      "alexa": {
        "port": 3000,
        "name": "Alexa FHEM",
        "keyFile": "./key.pem",
        "certFile": "./cert.pem",
        "nat-pmp": "",
        "nat-upnp": false,
        "applicationId": "xxx",
        "oauthClientID": "xxx"
    },
   
    "connections": [
        {
            "name": "FHEM",
            "server": "127.0.0.1",
            "port": "8083",
            "webname": "fhem",
            "filter": "room=Z_System->alexa"
        }
    ]
}


Rein vom Gefühl kann das doch nicht so klappen, wenn es zweimal "connections" mit name "FHEM" gibt, oder?

Gerne darf mir auch jemand einen Post zeigen wo es korrekt steht. Finde nur lauter kram mit Docker dazu. Das nutze ich aber nicht und verwirrt mich noch mehr :D
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

justme1968

fast :)

nur einen connection block. wobei deine beiden blöcke sich gegenseitig überschreiben und sowieso nur einer übrig bleibt.

wenn du tatsächlich mehrere filter oder fhem verbindungen brauchst: connections ist ein array und kann mehrere einträge enthalten.

der name ist übrigens nur informativ. es macht nichts wenn er doppelt ist die log meldungen haben dann halt nur den gleichen prefix.

ps: am ende von sshproxy fehlt ein komma.

am besten schickst du dein fertiges config file ein mal durch einen json validator. findest du über google.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Amenophis86

Ah ok der Unterschied ist der andere teil. Ne brauche keine zwei Filter, habe ich nicht drüber nachgedacht. Dann hier neuer Vorschlag:

{
"connections": [{
"port": "8083",
"server": "127.0.0.1",
"filter": "alexaName=..*",
"webname": "fhem",
"uid": "xxx",
"name": "FHEM"
}],
"sshproxy": {
"ssh": "/usr/bin/ssh",
"description": "FHEM Connector"
},

"alexa": {
"port": 3000,
"name": "Alexa FHEM",
"keyFile": "./key.pem",
"certFile": "./cert.pem",
"nat-pmp": "",
"nat-upnp": false,
"applicationId": "xxx",
"oauthClientID": "xxx"
}
}


JSON Tester meldet auch ok :) Muss jetzt leider gleich weg, aber wenn dir nix auffällt, dann werde ich das die Tage testen und dann auch das Wiki entsprechend anpassen. Dann muss jemand nach mir das nicht mehr extra suchen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

justme1968

schaut ok aus.

die beiden nat eintrage können raus. das habe ich komplett ausgebaut.

denk dran key und cert auch ins fhem verzeuchniss zu legen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

obelix221

...Überragend....Bombe...!!!

Vielen Dank für das coole Modul! Endlich kann ich den Port auf meinem Router wieder schließen.

Installation hat total easy und perfekt funktioniert.

Wo & wie kann ich für die Top-Entwicklungsleistung und dem Betrieb auf dem Vereinsserver spenden?

VG
Obelix


P.S. Gibt es eine Rückbau-Anleitung für die "alte" Lösung?
RPi3 als FHEM-Server, 868 MHz CUL, 433 MHz Transmitter, Homematic Aktoren und Sensoren, Yamaha AVR, Logitech Harmony, Fritzbox, Logitech SB, 433 MHz Steckdosen, HUE, EnOcean

hanswerner1

Ich bin auch total begeistert vom neuen Modul, reagiert viel schneller wie die alte Lösung.

Zitat von: obelix221 am 03 Februar 2019, 11:50:38

P.S. Gibt es eine Rückbau-Anleitung für die "alte" Lösung?

Das würde mich auch sehr interessieren.


MadMax-FHEM

Zitat von: hanswerner1 am 03 Februar 2019, 17:48:44
Ich bin auch total begeistert vom neuen Modul, reagiert viel schneller wie die alte Lösung.

Das würde mich auch sehr interessieren.

Rückbau um was zu tun?

Smart Home Skill mit eigenem Entwickler Skill? (WARUM?)

Custom Skill? Das kann parallel betrieben werden...

Komplett alt:

alles was automatisch installiert wurde löschen (nur warum!?) und dann die letzte "alte Version" (0.4.0 oder so) irgendwo besorgen und die halt wieder "installieren" und dann nach "altem Wiki" entsprechend Zertifikate, config.json Beispiel anpassen und in das manuell angelegte .alexa Verzeichnis...

"Alte Version" des Alexa.pm besorgen und vom Update ausschließen...

Sich selber um den Autostart und die Kontrolle aus fhem kümmern (serviced-Modul oder Dummy/DOIF)...

Port 3000 aufmachen und per dyndns "umleiten" und dann das ganze Amazon-Gehampel (wenn noch vorhanden, dann nur "verknüpfen": oauth bzw. clientID in die config.json)...

Und dann hoffen, dass es (wieder) läuft...


Allerdings: mit der "alten Version" geht halt nicht alles und es wird halt bei dem was jetzt geht bleiben (sofern Amazon nichts ändert). Wenn Amazon Änderungen an der API vornimmt die nicht kompatibel ist: dann geht mit der "alten Version" u.U. nichts mehr...

Weiterentwickelt wird nur die neue Version!


Wenn man das nicht will sondern "nur" den vorhandenen Custom Skill (oder auch den eigenen Entwickler Smart Home Skill) verwenden will: einfach das zusätzlich in die automatisch angelegte config.json eintragen (geht ja über das Alexa-Modul) und halt wieder Port aufmachen etc.


Aber noch mal: WARUM sollte man zurück wollen?

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)

gvzdus

Ich glaube, es ging eher darum, die alte Lösung abzubauen. "Rück" hört sich halt schöner als "ab" an.

Ich fühle mich aber nicht besonders beantwortungskompetent.
Trotzdem muss ich mal eben einwerfen:

Ich habe um 18:05 Uhr eine neue Version des "Vereinsproxies" eingespielt.

(Ergab ca. 80 Sekunden Betriebspause).

Falls jemand Probleme haben sollte seitdem: Bitte laut schreien.

Was ist neu?
Die neue Version versucht, immer eine TCP-Verbindung zu alexa-fhem schon "vorgeglüht offen" zu haben. Um dann sofort mit nur einem statt 2 Datenpaketen eine Abfrage starten zu können. Die unerträglichen Antwortszeiten könnten dadurch um ca. 20-50 ms besser werden :-)
Wiederverwendung der TCP-Connection habe ich probiert, scheitert aber daran, dass Deutschlands meißter nodejs, die Version 8, den Bug hat, 5 Sekunden nach der letzten Verwendung einer TCP-Verbindung diese wieder zu schließen. Deswegen ist die Kommunikation auf dem SSH-Tunnel zu alexa-fhem weiterhin ohne HTTP-Keepalive.

MadMax-FHEM

Zitat von: gvzdus am 03 Februar 2019, 18:17:30
Ich glaube, es ging eher darum, die alte Lösung abzubauen. "Rück" hört sich halt schöner als "ab" an.

Aber der Weg wurde doch schon einige Male "durchgekaut"... ;)

Und sollte noch einfacher sein:

alles alte löschen:

- alexa-fhem Verzeichnis
- .alexa Verzeichnis (wenn man eigene Sachen, z.B. Custom Skill, weiter verwenden will: mal die config.json wo sichern)
- alexa Startscript (/etc/init.d/ oder /etc/systemd/system/ UND: vorher besser den Dienst disablen)
- Alexa Device in fhem löschen (ist vermutlich unnötig aber schadet auch nicht)
- Autostart/Kontroll Devices in fhem löschen: Dummy/DOIF bzw. serviced
- Port zumachen (optional ;)  )
- eigene Developer Dinge bei Amazon löschen/Account löschen (optional ;)  )
- eigene(n) Skill(s) Verknüpfung aufheben (vermutlich auch optional)



Dann fhem update (falls nicht schon erfolgt: dadurch neues Alexa.pm)
Dann Installation laut "neuem" Wiki bzgl. fhem Connector

fertig.

Wenn man parallel noch "alte" Sachen (z.B. Custom Skill) verwenden will:

die notwendigen Einträge in die config.json eintragen (erreichbar über das Alexa-Device in fhem)
Port aufmachen (oder nicht zumachen)
Eigene Developer Sachen bei Amazon natürlich lassen...

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)

hanswerner1

Zitat von: gvzdus am 03 Februar 2019, 18:17:30
Ich glaube, es ging eher darum, die alte Lösung abzubauen. "Rück" hört sich halt schöner als "ab" an.

Genau darum ging es, die alte Alexa-fhem Installation zu deinstallieren und den ganzen Amazon Kram (Landa usw.) der für die alte Version gebraucht wurde zu löschen.

MadMax-FHEM

Zitat von: hanswerner1 am 03 Februar 2019, 18:36:16
Genau darum ging es, die alte Alexa-fhem Installation zu deinstallieren und den ganzen Amazon Kram (Landa usw.) der für die alte Version gebraucht wurde zu löschen.

Macht nix: jetzt steht ja beides (und die "gewünschte Variante" ein weiteres Mal) drin... ;)

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)

Reinhart

ich glaube jeder der die alte Version installiert hatte wird von der Geschwindigkeit der neuen Lösung sehr überrascht sein. Die Einfachheit der Installation wird ja jedem erst bewusst wer sich auch durch die erste Lösung gekämpft hat.
Ob hier noch irgendwo 50 msec heraus zu holen sind finde ich nicht so wichtig als die Verfügbarkeit.

Jede Servermiete kostet Geld und so sollte sich auch dieser Vereinsproxy selbst finanzieren. Jeder Anwender der zufrieden ist könnte ja 5 oder 10 € pro Jahr spenden und die Servermiete ist finanziert. Ich habe jetzt aufs gerade Wohl einfach über den Paypalbutton beim Fhem e.V. gespendet, habe aber gesehen das hier die Eingabe vom Verwendungszweck nicht änderbar ist und somit für euch keine genaue Zuordnung machbar ist.  Wäre es nicht möglich, hier noch zusätzlich einen Paypal MoneyPool "Vereinsproxy" einzurichten? Dann könntet ihr das intern ja leichter aufteilen und die Leute können klicken!

Ich finde die Finanzierung ist ein wichtiger Punkt, denn eine Verfügbarkeit über Jahre hinaus bringt uns allen was! Natürlich alles auf freiwilliger Basis!

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

gvzdus

Mal herzlichen Dank für die Bereitschaft!
Konstruktion ist z.Zt. so:

  • Der "Vereinsproxy" ist eine VM, die Rudi zur Verfügung gestellt hat.
  • Im Moment geht noch die Lambda-Funktion bei Amazon auf meinen Deckel, was aber daran liegt, dass der Verein keine Kreditkarte hat
Meine Abrechnung bei Amazon für den Januar ist 0,00 USD. Das liegt am Freiquota. Am ehesten kratze ich an der Grenze der Lambda-Aufrufe. Das waren etwa 250.000, nur 1 Mio. ist gratis. Die 2. Mio kostet dann 20 US-Cent. Ich sehe also meine Rente noch nicht in Gefahr. Im ersten Monat ging es von ca. 30 auf 300 Nutzer hoch, aktuell sind 392 SSH-Verbindungen oben.

Zum Vereinsproxy sollte eher Rudi etwas schreiben.