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

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

Vorheriges Thema - Nächstes Thema

redsnake88

#780
ersten wow danke für die rasche antwort TOP ... ja ich hab das 'sudo npm install -g alexa-fhem' gemacht ,anfangs gab es fehler da falsche node version
jetzt hab ich v8.16.0 oben  dennoch klappts leider nicht ..

log:

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:373:25)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/usr/lib/node_modules/alexa-fhem/bin/alexa:17:1)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)
/usr/lib/node_modules/alexa-fhem/lib/cli.js:15
  let startupPromise = new Promise(function (resolve) {
  ^^^

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:373:25)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/usr/lib/node_modules/alexa-fhem/bin/alexa:17:1)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)

jump to the top

MadMax-FHEM

Pack die Ausgaben doch mal in code-Tags (das '#' im Menü / geht auch nachträglich: auf bearbeiten gehen, dann VOR dem eingefügten Output "eckige Klammer auf" "code" schreiben und "eckige Klammer" wieder zu und dann NACH dem eingefügten Output: "eckige Klammer auf" dann einen "slash" '/' dann wieder "code" schreiben und dann wieder "eckige Klammer" zu [code nat. OHNE die Anführungszeichen ;)  ]  )...

Das sind dann wohl node etc. Fehler, da bin ich leider (erst mal) raus  :-\

Aber vielleicht schaut jemand drüber, der damit was anfangen kann...

EDIT: welche Platform? Also HW und OS...

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)

redsnake88

ja man merkt ich bin anfänger  ::)  trotzdem vielen dank für deine bemühungen ^^

MadMax-FHEM

Kein Thema!

Jeder fängt mal an...

Sorry, dass ich nicht weiterhelfen kann...  :-\

Viel Erfolg, Joachim

P.S.: und "danke" für's "Nachbessern" ;)
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)

redsnake88

Meine Vermutung ist, dass der Registrierungskey nicht geklappt hat. Ich wollte den Status abfragen mit "sudo -u fhem ssh -p 58824 blabla.blabla.org status" und bekomme die Fehlermeldung  "Connection refused". Liegt das vl. daran, bzw. hat wer Lösungsvorschläge. vielen dank im vorraus lg benny

gvzdus

Ich denke eher, dass es noch mit dem node-Upgrade nicht so geklappt hat.
Mit
node --version
gibt er Dir die Versionsnummer aus. Besser vielleicht noch:
sudo -u fhem node --version
Erhälst Du da v8.16.0 ?

redsnake88

ehhhmmm ich sag schon mal vorneweg DANKE habe den rasp neu formatiert geupdated fhem neu installiert und alles ging ... was genau der fehler war kann ich leider nicht sagen . Möchte aber an dieser stelle einmal danke sagen bin zwar ein noob im forum was schreiben angeht betreibe fhem jedoch schon seit 3 jahren  mit cul it etc. . Ohne euch wäre ich bis dato nie soweit gekommen ich bin eig ein gelernter maurer der immer schon hobby programiert hat und den mut zur neugier nie verloren hat mitlerweile ist das komplette haus smart DANK EUCH ! ich liebe diese comunity von der ersten stunde an und hoffe sie wird weiter bestehn ich kann nicht mehr als Danke sagen weiter so leute ^^

FlatTV

Zitat von: FlatTV am 07 Juli 2019, 18:31:16
Ich verzweifle an der Einrichtung meiner Bose Preset/Kanal Tasten.
So findet alexa nichts:
defmod alexa.channel.kueche dummy
attr alexa.channel.kueche alexaName Test
attr alexa.channel.kueche genericDeviceType media
attr alexa.channel.kueche homebridgeMapping ChannelController:reading=channel:BOSE_B0D5CCAFB416:channel,cmd=channel
attr alexa.channel.kueche room 99_System@alexa


Wenn ich das über genericDevice blind mache, so wie bei einem Thermostat, geht es eigentlich.
defmod alexa.channel.kueche dummy
attr alexa.channel.kueche alexaName Test
attr alexa.channel.kueche genericDeviceType blind
attr alexa.channel.kueche homebridgeMapping TargetTemperature=desired-temp:BOSE_B0D5CCAFB416:channel,cmd=channel,minValue=1,maxValue=6,minStep=1
attr alexa.channel.kueche room 99_System@alexa

Bei ,,alexa, stelle Test auf 5" sagt mir Alexa dann leider immer ,,Test wurde auf 5 Grad gestellt"

Findet da jemand einen Fehler?
[7.7.2019, 19:03:52] [FHEM] alexa.channel.kueche is media
[7.7.2019, 19:03:52] [FHEM] alexa.channel.kueche has
[7.7.2019, 19:03:52] [FHEM]   ChannelController [channel:BOSE_B0D5CCAFB416:channel]


Keine Ahnung warum ich da nicht drauf gekommen bin...
defmod alexa.channel.kueche dummy
attr alexa.channel.kueche alexaName Küchenradio Preset
attr alexa.channel.kueche genericDeviceType blind
attr alexa.channel.kueche homebridgeMapping CurrentPosition=channel:BOSE_B0D5CCAFB416:channel TargetPosition=channel:BOSE_B0D5CCAFB416:channel,cmd=channel,minValue=1,maxValue=6,minStep=1
attr alexa.channel.kueche room 99_System@alexa

,,Alexa, stelle Küchenradio Preset auf 4" ... ,,okay" und die Bose Box spielt  ::)
Raspi3 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)

Moo2Mee

Folgendes Verhalten nach einem Stromausfall:

Debian9-PC mit aktuellem FHEM und Internet via Fritzbox, alles an USV.
Stromausfall, USV springt ein, Internet ist weg. Alexa-FHEM versucht Namensauflösung, mit aufsteigenden Retry-Intervallen. So weit so gut.

Stromausfall hält an. USV fährt Rechner und Fritzbox runter.

Strom kommt wieder, Rechner startet, Fritzbox startet. Alexa-FHEM will die ssh-Verbindung aufbauen, Fritzbox hat aber noch keine DSL-Verbindung am Start. Im Alexa-Log steht folgendes:

[2019-7-24 14:50:49] BearerToken '...4ACF5' read from Alexa
[2019-7-24 14:50:49] [FHEM] got .eventToken
[2019-7-24 14:50:49] refreshing token
[2019-7-24 14:50:49] Reading alexaFHEM.ProxyConnection set to error;; Reverse Proxy replied with neither registered nor unregistered status: out:  err:ssh: Could not resolve hostname fhem-va.fhem.de: Temporary failure in name resolution

[2019-7-24 14:50:49] [FHEM]   executing: https://127.0.0.1:8085/fhem?cmd=%7B%24defs%7BAlexa%7D-%3E%7B%22active%22%7D%20%3D%201%3B%3Bundef%7D%3Bsetreading%20Alexa%20alexaFHEM.ProxyConnection%20error%3B%3B%20Reverse%20Proxy%20replied%20with%20neither%20registered%20nor%20unregistered%20status%3A%20out%3A%20%20err%3Assh%3A%20Could%20not%20resolve%20hostname%20fhem-va.fhem.de%3A%20Temporary%20failure%20in%20name%20resolution%0D%0A%3B%7B%24defs%7BAlexa%7D-%3E%7B%22active%22%7D%20%3D%200%3B%3Bundef%7D&XHR=1


Aus diesem Zustand ist Alexa-FHEM nicht selbsttändig herausgekommen, erst ein "set Alexa restart" hat das ganze wiederbelebt. Gibt es da einen Retry? Wenn nein, kann man das an der Stelle einbauen?

MadMax-FHEM

#789
Es gibt auch (zumindest bei mir) kein Retry (mehr / war das nicht schon mal anders!?), wenn andere "Dinge" passieren.

Ich habe in der config.json Verbindungen zu 2 weiteren fhem Instanzen eingetragen (meine Testsysteme).
Wenn ich davon eins mal boote/fhem neu starte, dann stoppt alexa-fhem auch bis zu einem manuellem "nachstarten", wie bei dir...

Ich habe mir mit einem Notify beholfen, was bei alexa-fhem stop wartet und dann nachstartet...

Hat eine zeitlang funktioniert nur bei manuellem Nachstarten von mir (neues Gerät etc.) kam es dann durcheinander...
Liegt aber daran, dass ich das Notify etc. noch etwas "verbessern" muss (evtl. [noch] länger warten oder noch ein paar Abfragen vor einem "Nachstartbefehl")...

Könnte bei dir ja auch gehen: Internet wieder da -> alexa-fhem in stop -> (warten und noch mal prüfen) nachstarten...

Glaube aber, dass da schon mal "Restarts/Reties" im Modul (oder alexa-fhem) drin waren...

Aktuell starte ich wieder manuell, ich weiß ja wann ich eins meiner Testsysteme neu srarte... ;)
Bis ich mal wieder Zeit hab für das Thema...
...ansonsten läuft es ja prima!!

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

Das sind verschiedene Dinge:
Joachim: Du sprichst von der FHEM-Connection. Das andere ist der SSH-Teil. Da gibt es zwar einen Retry für die SSH-Dauer-Verbindung, aber nicht für den Initialisierungsteil, der ggf. SSH-Keys erzeugt und das ganze Hokuspokus macht. Da liegt das Doing eher bei mir, wobei ich überlegen muss, ob es da potentielle Stolpersteine gibt.

Ich habe im Wiki jetzt mal ziemlich weit unten eine Bug- und FeatureRequest-Liste eingefügt.

Moo2Mee


MarkusN

Gibt es mit den derzeitigen FHEM-Alexa implementationen eine Möglichkeit herauszufinden welches Echo Device das letzte Kommando abgesetzt hat (so wie hier)?
Ich würde gerne diverse Kommandos auf bestimmte Alexa Geräte beschränken, oder eine Routine unterschiedliche Dinge tun lassen, abhängig davon auf welchem Echo das Kommando abgesetzt wurde.

gvzdus

Ich bin beim Starren auf die Requests zu keiner Idee gekommen, wie dies ermittelt werden könnte. Auch nicht z.B. bei der Lambda-Funktion.

MadMax-FHEM

Zitat von: MarkusN am 31 Juli 2019, 10:20:10
Gibt es mit den derzeitigen FHEM-Alexa implementationen eine Möglichkeit herauszufinden welches Echo Device das letzte Kommando abgesetzt hat (so wie hier)?
Ich würde gerne diverse Kommandos auf bestimmte Alexa Geräte beschränken, oder eine Routine unterschiedliche Dinge tun lassen, abhängig davon auf welchem Echo das Kommando abgesetzt wurde.

Ginge mit dem echodevice-Modul: https://forum.fhem.de/index.php/topic,82631.msg747482.html#msg747482

Ist auch in dem Thread (mehrfach) beschrieben wie dann der Ablauf wäre.
Hier grob:

Dummy in fhem der "Alexa-fähig" ist -> Routine in der Alexa-App (dort dann definieren was du sagen willst) -> Dummy wird am Ende der Routine geschaltet (optional Alexa sowas wie: einen Moment bitte sagen lassen ;)  )-> Notify auf den Dummy -> (dann get status oder so beim Account-Device / sollte eigentlich nicht mehr nötig sein, da eigentlich per Attribut das voice-Reading schneller abgefragt werden kann / manche haben aber Probleme oder es funktioniert nicht mehr wie gedacht) -> Notify auf "voice-Reading", dabie kommt auch der Echo mit, der "die Ansage bekommen hat" -> prüfen, ausführen, etc. -> Antwort an genau diesen Echo zurück (wenn gewünscht): set ECHO speak Text...

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)