FHEM Forum

FHEM => Frontends => Sprachsteuerung => Thema gestartet von: Sedonion am 12 April 2019, 09:43:49

Titel: Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: Sedonion am 12 April 2019, 09:43:49
Hallo Zusammen,

ich finde die neue Version des alexa-fhem sehr spannend und würde gerne umsteigen.
Wie mache ich das am besten?
Die neue Version installieren sollte ich schaffen, aber wie bekomme ich die alte Version sauber entfernt inkl des offenen Ports etc?

Vielen Dank im Voraus

Gruß Marco
Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: Sedonion am 16 April 2019, 09:58:22
Vielleicht wenigstens ein Hinweis wo ich ansetzen könnte?

Gruß Marco
Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: MadMax-FHEM am 16 April 2019, 11:16:22
Zuerst einmal klären/nennen:

verwendest du "nur" den Smart Home Skill?

oder auch den Custom Skill?

Für nur Smart Home sollte es einfach sein:

- Alte Installation löschen (oder ganz weit weg "moven")
- Alte config.json ebenso: löschen (irgendwo weg sichern)
- Alte Module in fhem (DOIF, DUMMY) zur "Steuerung" löschen
- Alten Autostart (/etc/init.d/ oder /etc/systemd/system) deaktivieren und löschen

Dann nach Wiki: fhem-Connector einfach neu installieren.

Wichtig: der "Filter" in der config.json ("alt") war (oft) room=alexa in der neuen config.json ist der Filter so, dass Geräte erkannt werden, die einen alexaName gesetzt haben! Entweder (wenn nicht schon überall geschehen) einen alexaName setzen oder den Filter der "neuen" config.json anpassen...

fhem update nicht vergessen!!

Port 3000 etc. kann zugemacht werden.

Bei Verwendung von Custom Skill: weiterhin Port 3000 erreichbar haben. Die relevanten Einträge aus der alten config.json in die neue übernehmen...

Gruß, Joachim
Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: Sedonion am 16 April 2019, 11:33:51
Vielen Dank!
Das hilft mir sehr. Ich nutze nur den Smart Home Skill, daher sollte das klappen.

Denn den Bereich des Filters von früher Raum zu dem alexaName Attribut wäre mir sicher durchgerutscht.
Und wenn meine Frau Abends das Licht nicht aus bekommen würde, wäre es nicht gut für meine Gesundheit :)
Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: MadMax-FHEM am 16 April 2019, 11:42:15
Was ich nicht weiß (weil ich es [noch] nicht selber durchgespielt habe):

ob eine neue Gerätesuche angestoßen werden muss (vermutlich: ja)...
...und wenn ja: dann musst du (falls genutzt) auch (vermutlich) die Routinen neu mit den "neuen" Geräten "verknüpfen"...

EDIT: ein Löschen und neu Anlegen des Alexa-Moduls (define Alexa alexa) ist (vermutlich) nicht nötig. Schadet aber (vermutlich) auch nicht...

Viel Erfolg!

Gruß, Joachim

EDIT: steht mir noch bevor, also der "Umzug" bzw. eher die "Bereinigung". Habe aktuell 3 fhem die per Alexa gesteuert werden (2 Testsysteme und mein Aktivsystem). Und 2 alexa-fhem Installationen ;)  Eine (noch "alt") auf meinem Aktivsystem wo aber noch wenige Geräte per Alexa gesteuert werden. Und dann ein neues Testsystem mit alexa-fhem-Connector, welcher lokale Test-Dummy steuert und die eigentlichen Geräte meines "alten" Testsystems. Die Custom Skill Dinge des "alten" Testsystems werden (noch) von der "alten" dort alexa-fhem Installation "beatmet"... D.h. ich habe noch einiges mehr zu tun ;) Aber es ist ja Ostern...
Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: Prof. Dr. Peter Henning am 20 April 2019, 03:54:10
Na, da häng ich mich mal ran.

LG

pah
Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: Amenophis86 am 20 November 2019, 16:04:15
Zitat von: MadMax-FHEM am 16 April 2019, 11:16:22
- Alte Installation löschen (oder ganz weit weg "moven")
- Alte config.json ebenso: löschen (irgendwo weg sichern)

Joachim kannst du mir mal sagen wo ich standardmäßig diese Dinger finde? Das einrichten der alten Skills ist sehr lange her :D
Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: MadMax-FHEM am 20 November 2019, 17:13:06
Zitat von: Amenophis86 am 20 November 2019, 16:04:15
Joachim kannst du mir mal sagen wo ich standardmäßig diese Dinger finde? Das einrichten der alten Skills ist sehr lange her :D

Eieiei...

Standard...

Also ich hab meine alexa-fhem "Installation" unter: /home/pi/alexa-fhem
Daher auch die config.json hier: /home/pi/.alexa

Allerdings wird wohl (im Wiki) auch folgendes "beschrieben":

alexa-fhem "Installation": /opt/fhem/alexa-fhem
Daher dann config.json in: /opt/fhem/.alexa

Was immer gleich sein sollte ist das "Start-Script":

/etc/init.d/alexa

bzw.

/etc/systemd/system/alexa

Je nach System in dem einen oder anderen Verzeichnis (Name muss nat. nicht zwingend alexa sein ;)  )...
...in den Dateien sollte man auch sehen können, wo denn die alexa-fhem "Installation" und das config.json zu finden sind...
...falls man unter den von mir genannten Pfaden nicht fündig geworden ist... ;)


Also ich würde mal die config.jason "aufheben" aber "wegkopieren"...
...alles genannte löschen (vorher mal den Service deaktivieren)...

Eventuell auch mal das Alexa-Device in fhem löschen...
...und dann nach Wiki neu anlegen...

Dann sollte nichts mehr gegen eine neue Installation sprechen und die geht ja wirklich einfach (sollte) und nach Wiki...

Falls dann noch "alte" Sachen laufen sollen, also entweder Custom Skill oder (warum auch immer "eigener" Smart Home Skill), dann einfach die entsprechenden Einträge aus der "alten" config.json in die neue, automatisch angelegte übernehmen (sollte unter "Edit Files" auftauchen).

Und nat. weiterhin den Port auf lassen und forwarden...
...ist bei Verwendung von NUR fhem-Connector ja nicht nötig...

Bei Fragen einfach noch mal hierher ;)

Viel Erfolg, Joachim
Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: Amenophis86 am 20 November 2019, 17:15:21
Joa hatte es auch unter /home/pi/... alles liegen, jetzt habe ich den Connector und alles liegt unter /opt/fhem. Damit läuft das zwar aber mein Coustum Skill will nicht mehr trotz einfügen der alten Daten. Mal sehen, woran es liegt. Aber dank dir für die Antwort.
Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: Amenophis86 am 20 November 2019, 17:20:33
Also jetzt ist die config.json wohl die Datei alexa-fhem.cfg und dort hatte ich einfach zusätzlich die Daten meiner alten Config.Json eingefügt allerdings kommt folgender Fehler bei der Lambda:

{
  "errorType": "SyntaxError",
  "errorMessage": "Unexpected token < in JSON at position 0",
  "trace": [
    "SyntaxError: Unexpected token < in JSON at position 0",
    "    at JSON.parse (<anonymous>)",
    "    at IncomingMessage.result.on (/var/task/index.js:36:27)",
    "    at IncomingMessage.emit (events.js:203:15)",
    "    at endReadableNT (_stream_readable.js:1143:12)",
    "    at process._tickCallback (internal/process/next_tick.js:63:19)"
  ]
}


START RequestId: 4c3c6449-a2f4-4d98-8726-53ab35c35bc7 Version: $LATEST
2019-11-20T16:12:50.202Z xxxx INFO EVENT: [object Object]
2019-11-20T16:12:50.203Z xxxx INFO CONTEXT: [object Object]
2019-11-20T16:12:51.028Z xxxx INFO STATUS: 503
2019-11-20T16:12:51.040Z xxxx INFO HEADERS: {"date":"Wed, 20 Nov 2019 16:12:51 GMT","server":"Apache/2.4.10 (Raspbian)","content-length":"396","connection":"close","content-type":"text/html; charset=iso-8859-1"}
2019-11-20T16:12:51.042Z xxxx INFO BODY: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>503 Service Unavailable</title>\n</head><body>\n<h1>Service Unavailable</h1>\n<p>The server is temporarily unable to service your\nrequest due to maintenance downtime or capacity\nproblems. Please try again later.</p>\n<hr>\n<address>Apache/2.4.10 (Raspbian) Server at zselqatc07mzkkvu.myfritz.net Port 443</address>\n</body></html>\n"
2019-11-20T16:12:51.080Z xxxx ERROR Uncaught Exception {"errorType":"SyntaxError","errorMessage":"Unexpected token < in JSON at position 0","stack":["SyntaxError: Unexpected token < in JSON at position 0","    at JSON.parse (<anonymous>)","    at IncomingMessage.result.on (/var/task/index.js:36:27)","    at IncomingMessage.emit (events.js:203:15)","    at endReadableNT (_stream_readable.js:1143:12)","    at process._tickCallback (internal/process/next_tick.js:63:19)"]}
END RequestId: xxxxx
REPORT RequestId: xxxx Duration: 956.42 ms Billed Duration: 1000 ms Memory Size: 128 MB Max Memory Used: 26 MB
Unknown application error occurred
Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: MadMax-FHEM am 20 November 2019, 17:48:09
Wie sieht denn deine config.json jetzt aus?

Die "Secrets" halt aus-ixen... ;)

EDIT: ich kann nachher mal schauen, ob ich noch eine Sicherung finde, wo ich meine Custom etc. eingetragen hatte...

Gruß, Joachim
Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: Amenophis86 am 20 November 2019, 18:28:06
Fehler gefunden. Für alle, die das gleiche Problem haben könnten. Habe folgendes gemacht, nach den hier genannten Schritten:

Im Verzeichnis /opt/fhem noch das Verzeichnis alexa angelegt
Im Verzeichnis /opt/fhem/alexa die key.pem und cert.pem aus der alten Config abgelegt
/opt/fhem/alexa und die *.pem Dateien mittels chown fhem übergeben
In die alexa-fhem.cfg die alten Daten hinzugefügt, diese sieht nun so aus:

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


Alexa neustarten und zack es geht der Connector mit dem coustum Skill :) Danke für die Hilfe
Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: MadMax-FHEM am 20 November 2019, 18:51:29
Na dann... ;)

Gerne, Joachim
Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: darkness am 22 November 2019, 16:53:37
Danke für die kleine Anleitung hier. Ich konnte meine Alexa auch dazu bewegen, wieder auf mich zu hören :)

Aber wenn ich Gruppen schalten möchte (z.b. Schalte das Licht im Raum Küche ein) geht das nur über Custom Skills? Habe gesehen dass es auch mittels Lightscene/Structure gehts. Aber ich möchte ggf. auch per Sprache alles ausschalten.

Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: MadMax-FHEM am 22 November 2019, 17:23:22
Geht entweder per Structure (denke ich) oder einem "Sammel-Dummy", der dann eben z.B. per Routine (oder auch einfach so: Dummy-Name "Alle Lichter" ;)  ) "gestartet" wird und dann eben ein Notify/DOIF/... was dann eben "alle Lichter" ausschaltet...

Oder du erstellst Gruppen in der Alexa-App und sortierst dann dort deine Geräte hinein.

Mit Gruppen in der App geht dann sowas wie: Alexa, schalte das Licht im Wohnzimmer ein/aus.

Sofern du eine Gruppe "Wohnzimmer" hast und dort ein paar Geräte vom Typ Licht hast ;)

Alles andere geht dann nur mit Custom Skill...

Gruß, Joachim
Titel: Antw:Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: darkness am 24 November 2019, 10:17:19
Danke, für die Tipps. Über den CustomSkill ist es leider immer etwas sperrig.Daher werde ich es mal so versuchten.

Titel: Aw: Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: m311331 am 13 September 2025, 23:04:57
Hi

kurze frage
funktioniert die Lösung in Beitrag #11 hier vom 20 November 2019, 18:28:06 für den Custom Skill noch ?


mfg. Schlumpfi
Titel: Aw: Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: MadMax-FHEM am 14 September 2025, 00:16:38
Eigentlich sollte es reichen die Daten bzgl. Custom Skill in die alexa-fhem.cfg einzutragen und die Portweiterleitung einzurichten.

Zumindest hatte ich das so laufen...

Allerdings nutze ich den Custom Skill schon ewig nicht mehr.
Weiß (daher) auch nicht, ob Amazon den Custom Skill noch unterstützt...

Und: was spricht gegen ausprobieren?

(was soll/kann schon passieren)

Gruß, Joachim
Titel: Aw: Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: m311331 am 14 September 2025, 00:31:56
Hallo Joachim,

ich hab es so versucht wie hier in Beitrag #11
wenn ich mich richtig erinnere wurden damals zwei applicationId erstellt eine für den Normalen Skill und eine für Custom Skill
habe es mit beiden versucht, im Log sehe ich nichts :( 

an der Portweiterleitung habe ich nichts geändert war ja schon vorhanden (IP am Server ist die gleiche) 

ist so wie bei :Probleme beim Umstieg auf neuen FHEM-Server =>Alexa => Custom Skill  (https://forum.fhem.de/index.php?topic=142184.0)

Alexa sagt beim Aufruf des Skills nach einigem Warten: "Bei der Antwort des angeforderten Skills ist ein Problem aufgetreten"....
 ???

mfg. Schlumpfi
Titel: Aw: Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: MadMax-FHEM am 14 September 2025, 01:49:01
Dann musst du dort nachfragen, was das Problem bzw. die Lösung war...

Nutze Custom Skills schon ewig nicht mehr...
Und seit es Routinen gibt vermisse ich eigentlich (fast) nichts...

Zusammen mit dem echodevice-Modul braucht man mMn eigentlich Custom Skill nicht mehr wirklich...

Und: keinen offenen Port und kein Code mehr auf Amazon AWS usw.

Viel Erfolg!

EDIT: soweit ich das noch im Kopf habe, konnte man bei Amazon/AWS doch den Skill auch "manuell" auslösen, also quasi debuggen!? Geht das noch? Was kommt da, also bei welchem Schritt wird gemeldet, dass es nicht geht? Wie hast du deine Auth-IDs in die alexa-fhem.cfg eingetragen?
Ich habe eine alte gefunden, die sieht so aus. Soweit ich mich entsinne habe ich bei Umstellung auf alexa-fhem Connector "nur" den oberen Eintrag bzgl. Custom zusätzlich in die bestehende (autom. generierte) alexa-fhem.cfg eingetragen und die Portweiterleitung eingerichtet. Die Cert-Dateien hatte ich ja noch liegen.

{
    "alexa": {
        "name": "MadMax-FhemAlexaSkill",
        "keyFile": "/opt/fhem/alexa-custom-key.pem",
        "certFile": "/opt/fhem/alexa-custom-cert.pem",
        "applicationId": ["amzn1.ask.skill.f8cbdeeb-xxxxxxxxxxxxxxxxxxxxxxxxx","amzn1.ask.skill.800b9250-xxxxxxxxxxxxxxxxxx","amzn1.ask.skill.da875b5a-xxxxxxxxxxxxxxxxxxxxxxxxx"],
        "oauthClientID": "amzn1.application-oa2-client.5e712xxxxxxxxxxxxxxxxxxxx"
    },
"connections":
[
{
"port": "8083",
"webname": "fhem",
"uid": 999,
"filter": "alexaName=..*",
"server": "127.0.0.1",
"name": "FHEM"
}
],
"sshproxy":
{
"ssh": "/usr/bin/ssh",
"description": "FHEM Connector"
}
}

Da ich das aber lange nicht mehr nutze und sicher die Skills auf Amazon/AWS auch nicht mehr tun, kann ich das nicht mal mehr testen...
Eben mal wie oben geschrieben eingetragen und es geht, naja bis auf dass irgendwie die Geräte nicht gefunden werden, wenn ich sie über den Custom Skill anspreche. Aber ich weiß nicht mehr genau, was ich da bei den einzelnen Custom Skills (hatte 3 Stück oder so) eingetragen/konfiguriert hatte bzgl. Intents usw. <- schon viel zu lange her...
Aber wie geschrieben: ich vermisse auch nichts... ;)

Gruß, Joachim
Titel: Aw: Vom "alten" alexa_fhem" zu neuem "alexa-fhem"
Beitrag von: m311331 am 14 September 2025, 12:56:43
Hallo Joachim,

ZitatDann musst du dort nachfragen, was das Problem bzw. die Lösung war...
wurde ja leider ohne info geschlossen  ::)

Zitatsoweit ich das noch im Kopf habe, konnte man bei Amazon/AWS doch den Skill auch "manuell" auslösen, also quasi debuggen!? Geht das noch?
k.a Amazon ändert ja alle 5 min. was (damit es übersichtlicher wird)  :))  = nicht versucht

ZitatWie hast du deine Auth-IDs in die alexa-fhem.cfg eingetragen?

{
    "alexa": {
        "port": 3000,
        "name": "Alexa TEST",
        "keyFile": "/opt/fhem/alexa/key.pem",
        "certFile": "/opt/fhem/alexa/cert.pem",
        "nat-pmp": "",
        "nat-upnp": false,
        "applicationId": ["amzn1.ask.skill.c04XXXXX-xxxx-xxxx-xxxx-xxxxxxxxx5a4", "amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx51e"],
        "oauthClientID": "amzn1.application-oa2-client.xxxxxxxxxxxxxxxxxxxxx"
    },
   "sshproxy" : {
      "description" : "FHEM Connector",
      "ssh" : "/usr/bin/ssh"
   },
   "connections" : [
      {
         "name" : "FHEM",
         "uid" : 997,
         "webname" : "fhem",
         "server" : "127.0.0.1",
         "port" : "8083",
         "filter" : "alexaName=..*"
      }
   ]
}

ZitatSoweit ich mich entsinne habe ich bei Umstellung auf alexa-fhem Connector "nur" den oberen Eintrag bzgl. Custom zusätzlich in die bestehende (autom. generierte) alexa-fhem.cfg eingetragen und die Portweiterleitung eingerichtet. Die Cert-Dateien hatte ich ja noch liegen.

ist bei mir genau so eingerichtet  :(

ZitatDa ich das aber lange nicht mehr nutze und sicher die Skills auf Amazon/AWS auch nicht mehr tun, kann ich das nicht mal mehr testen...

ist bei mir auch so kann mich zwar bei AWS anmelden aber da hat sich alles verändert, den Skill habe ich seit damals auch nicht mehr gändert da er ja funktionierte
hatte damit einiges gemacht

schade

-edit- mein Custom Skill ist defekt habs bei AWS getestet, werde mir ein neu anlegen nicht antun.

mfg. Schlumpfi