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

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

Vorheriges Thema - Nächstes Thema

justme1968

also ...

alexa-fhem kann weiterhin mehrere fhem installationen und auch mehrer skills und custom skills gleichzeitig bedienen.

das default config file das automatisch erzeugt wird enthält nur eine fhem verbindung.

dieses config file wird aktuell noch komplett überschrieben wenn es per set erzeugt wird. nur wenn es nicht vorhanden ist wird es komplett automatisch erzeugt. irgendwann soll es eingelesen und ergänzt werden.  das ist aber aufwand.

deshalb einfacher: das file kopieren und alles weitere von hand eintragen. das geht auch direkt über fhemweb.

dann im alexa device das alexaFHEM-config attribut auf das kopierte file setzen. fertig. es wird nichts mehr überschrieben.

auch für mehrere fhem verbindungen ist nur einmal der dann offizielle skill nötig. alle fhem laufen dann über den gleichen tunnel.

auch mehrere fhem mir jeweils eigenem tunnel sind einfach out of the box möglich.

alle was custom skill ist muss wie bisher von hand bei amazon und aws angelegt werden. und wird  auch erst mal wie bisher von hand in der config eingetragen.

das tunneln der custom skills kommt wenn alles andere stabil und einfach geht.

man kann auch problemlos pro fhem ein alexa device haben. wenn alexa-fhem nicht installiert ist wird nichts gestartet. falls mehrere fhem auf einem rechner laufen: alexaFHEM attribut bei allen bis auf eines so setzen das kein executable gefunden wird -> es wird dann nur ein alexa-fhem gestartet.


unterm strich: die 'normalen' installationen werden alle auf knopfdruck gehen. einige/viele der komplexeren werden ebenfalls automatisch gehen. unter umständen mit etwas manueller hilfe.

jedes andere beliebig komplexe szenario geht mit der gleichen handarbeit wie bisher immer noch.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

MadMax-FHEM

Hallo André,

super, vielen Dank für die ausführliche Erläuterung!

Klingt prima!

Werde mir das noch mal in Ruhe durchlesen und mal testen...

Also mal meine bestehenden Dinge in das neueste, also das alexa-fhem lazy Testsystem, "integrieren"...

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)

Paul

Zitat von: justme1968 am 08 Januar 2019, 22:31:04
unterm strich: die 'normalen' installationen werden alle auf knopfdruck gehen.

Wann kommst du zu mir den Knopf drücken?  :D

(ich habe bereits lange versucht Alexa zu installieren und immer aufgegeben; und jetzt lese ich und warte)
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

sTaN

Verfolge auch mit Hochspannung den Thread und bin heiß aufs ,,Knöpfchen drücken"! Leider im Urlaub letzte Woche nicht mehr dazu gekommen aber irgendwie doch froh gewartet zu haben [emoji28] Sonst hättet ihr euch nicht um die wichtigen Dinge kümmern können und noch einen Tester unterstützen müssen. Danke für die tolle Arbeit!

sTaN
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

gvzdus

Ja, auch von mir noch ein kurzer Ausblick:

  • Im Moment muss ich die Füße still halten, weil Amazon zum Testen jederzeit "vorbeikommen" könnte - wäre doof, wenn ich da gerade teste
  • Ich möchte in Andres Version noch Thermostat-Modi haben, dafür muss ich aber testen können
  • Danach wäre dann wohl der Zeitpunkt gekommen, dass ich meine GitHub-Version komplett auf Andre schwenke
  • Das "-A" soll zum händischen Debuggen von Problemen bei der "vollelektrischen" Installation drin bleiben

Wo ich gerade (heute Abend?) dran bin:
Wer hat (Heiz-)Thermostate in seiner Installation? Bei mir laufen die Mäxchen, aber es wäre schön, auch für andere Modelle Testergebnisse zu haben.
Den Modus finde ich wichtig, damit man von einem aktuellen Sonderwunsch wie "22 Grad" auch wieder auf "automatisch" zurückschalten kann.

mark79

Zitat von: gvzdus am 09 Januar 2019, 07:05:34
Wo ich gerade (heute Abend?) dran bin:
Wer hat (Heiz-)Thermostate in seiner Installation? Bei mir laufen die Mäxchen, aber es wäre schön, auch für andere Modelle Testergebnisse zu haben.
Den Modus finde ich wichtig, damit man von einem aktuellen Sonderwunsch wie "22 Grad" auch wieder auf "automatisch" zurückschalten kann.

Ich habe Heizthermostate von HM und die auch schon eingebunden. Temperatur stellen und abfragen, funktioniert.
Kann das später gerne mit den Modus testen, wenn du kurz beschreibst wie. :)
Installiert habe ich noch die erste Version, also die mit den DOIF und notify.

Falls du ein List brauchst:
Internals:
   DEF        62718804
   NAME       WZ_Heizung_Clima
   NOTIFYDEV  global
   NR         222
   NTFY_ORDER 50-WZ_Heizung_Clima
   STATE      T: 18.1 desired: 18.0 valve: 3
   TYPE       CUL_HM
   chanNo     04
   device     WZ_Heizung
   Helper:
     DBLOG:
       ValvePosition:
         logdb:
           TIME       1547025315.87561
           VALUE      3
       desired-temp:
         logdb:
           TIME       1547025479.14019
           VALUE      18.0
       measured-temp:
         logdb:
           TIME       1547025315.87561
           VALUE      18.1
       state:
         logdb:
           TIME       1547025315.87561
           VALUE      T: 18.1 desired: 18.0 valve: 3
   READINGS:
     2019-01-05 11:53:39   CommandAccepted yes
     2018-12-11 16:37:33   R-boostPos      80 %
     2018-12-11 16:37:33   R-btnNoBckLight off
     2018-12-11 16:37:33   R-dayTemp       21 C
     2018-12-11 16:37:33   R-daylightSaveTime on
     2018-12-11 16:37:33   R-modePrioManu  all
     2018-12-11 16:37:33   R-modePrioParty all
     2018-12-11 16:37:33   R-nightTemp     17 C
     2018-12-11 16:37:33   R-noMinMax4Manu off
     2018-12-11 16:37:33   R-regAdaptive   on
     2018-12-11 16:37:33   R-showInfo      time
     2018-11-28 20:44:29   R-sign          off
     2018-12-11 16:37:33   R-tempOffset    0.0K
     2018-12-11 16:37:33   R-valveOffsetRt 0 %
     2018-12-11 16:37:33   R-winOpnBoost   off
     2018-12-18 20:13:56   R_0_tempListSat 05:00 15.0 08:00 19.0 16:00 23.0 23:00 22.5 24:00 22.0
     2018-12-18 20:13:56   R_1_tempListSun 05:00 15.0 11:00 20.0 18:00 22.5 23:00 23.0 24:00 22.0
     2018-12-18 20:13:56   R_2_tempListMon 05:00 15.0 08:00 15.0 15:00 18.0 22:00 23.0 24:00 15.0
     2018-12-18 20:13:56   R_3_tempListTue 05:00 15.0 08:00 15.0 15:00 18.0 22:00 23.0 24:00 15.0
     2018-12-18 20:13:56   R_4_tempListWed 05:00 15.0 08:00 15.0 15:00 18.0 23:55 22.0 24:00 22.0
     2018-12-18 20:13:56   R_5_tempListThu 05:00 15.0 08:00 15.0 15:00 18.0 22:00 23.0 24:00 15.0
     2018-12-18 20:13:56   R_6_tempListFri 05:00 15.0 08:00 15.0 15:00 19.0 23:00 23.0 24:00 22.0
     2018-12-18 20:13:56   R_tempList_State verified
     2018-12-18 20:13:53   RegL_01.        08:00 00:00
     2019-01-09 10:17:59   ValvePosition   3
     2019-01-09 10:17:59   boostTime       -
     2019-01-09 10:17:59   controlMode     auto
     2019-01-09 10:17:59   desired-temp    18.0
     2019-01-09 10:17:59   measured-temp   18.1
     2019-01-09 10:17:59   partyEnd        -
     2019-01-09 10:17:59   partyStart      -
     2019-01-09 10:17:59   partyTemp       -
     2019-01-05 11:53:39   recentStateType ack
     2019-01-09 10:17:59   state           T: 18.1 desired: 18.0 valve: 3
     2019-01-05 10:59:34   tempTmplSet     WZ_Heizung_Clima
   helper:
     regLst     ,1,7
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     role:
       chn        1
     shRegR:
       07         00
     tmpl:
Attributes:
   DbLogExclude .*
   DbLogInclude ValvePosition,desired-temp,measured-temp,state
   alexaName  Wohnzimmer Heizung
   alexaRoom  Wohnzimmer
   alias      Wohnzimmer Heizung
   event-min-interval ValvePosition:300,desired-temp:300,measured-temp:300
   event-on-change-reading .*
   genericDeviceType thermostat
   group      Heizung
   icon       sani_heating_temp
   model      HM-CC-RT-DN
   room       3_Wohnzimmer,alexa
   tempListTmpl WZ_Heizung_Clima
   userattr   Heizungen Heizungen_map KU_Heizung_Clima KU_Heizung_Clima_map structexclude thermostat thermostat_map
   verbose    0


Und die Modi sind controlMode auto manual boost day night

Gibt es eigentlich eine Möglichkeit für Pause/Play um das Medicenter zu steuern? Oder geht das bisher nur über ein Schalter, alexa schalte Kodi Pause ein?
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

Im GitHub ist eine Version drin, die es mal versuchsweise supported:

+    // HM, settings from "mark79"
+    if( match = s.PossibleSets.match(/(^| )controlMode($| )/) ) {
+      this.mappings.TargetHeatingCoolingState = { reading: 'controlMode',
+        values: ['/^auto/:AUTO', '/^night/:ECO', '/.*/:HEAT'],
+        cmds: ['OFF:controlMode night', 'HEAT:controlMode day', 'COOL:mode manual', 'AUTO:controlMode auto', 'CUSTOM:controlMode boost'] };
+
+  }


lib/fhem.js, Zeilen ab 2221.

Du musst die Geräte neu suchen nach Installation der Github-Version.
Amazon hat nur bestimmte Modi, die nicht mit HM übereinstimmen.
"Schalte Heizung auf automatisch" geht auf jeden Fall, "... auf Boost" bei mir auch. An und Aus sind ja eher schwierig allgemein zu definieren.

Falls es nicht funktioniert, wäre ein kleiner Auszug aus dem Logfile hilfreich, was er beim Discover für den Thermostaten zurückliefert.

Viel Erfolg!

Übrigens: Was in welcher Sprache geht, steht hier:
https://developer.amazon.com/docs/smarthome/develop-smart-home-skills-in-multiple-languages.html

Die "Entertainment-Devices" werden in Deutsch noch nicht unterstützt - da haben uns sogar die Franzosen überholt :-)

mark79

Zitat von: gvzdus am 09 Januar 2019, 10:53:28
Im GitHub ist eine Version drin, die es mal versuchsweise supported:

Habe es eingebunden und der Dienst startet nun auch, nachdem ich die config unbenannt und verschoben habe.
Ich sage dir dann später bescheid ob es klappt, bin derzeit nicht bei den alexas.

Danke das mit den Skills, das hilft weiter und das kommt bestimmt irgendwann noch. :)
Ich werde das erstmal mit einem Schalter lösen. So habe ich bisher auch ein paar TV Kanäle eingebunden.
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

ZitatHabe es eingebunden und der Dienst startet nun auch, nachdem ich die config unbenannt und verschoben habe.

bin/alexa -A
hätte es automatisch für Dich gemacht :-)

punker

Also vielleicht bin ich ja zu doof, aber mit dem Webif (39_alexa.pm) bring ich Alexa nicht zum laufen!
Hab das ganze mittels git clone https://github.com/gvzdus/alexa-fhem runtergeladen.
Dann das Alexa-Device angelegt und mit bin/alexa -A in der Shell installiert.
Funktioniert auch, sofern ich Alexa mittels bin/alexa in der Shell starte!
Dann stoppe ich Alexa in der Shell und rufe es mittels MyAlexa im FHEM Webif auf und es läuft.
Aber Amazon findet keine Geräte bzw. meldet die vorhandenen als offline!

Wenn ich Alexa in der Shell starte und dann mit ps -ef | egrep '(alexa|ssh)' nachsehe was läuft erhalte ich folgende Ausgabe:
root@fhembanana:~ # ps -ef | egrep '(alexa|ssh)'
root      1654     1  0 13:58 ?        00:00:00 /usr/sbin/sshd
root      1727  1654  0 13:58 ?        00:00:00 sshd: root@notty
root      2413  1654  0 14:06 ?        00:00:00 sshd: root@pts/1
root      3275  1654  0 14:13 ?        00:00:00 sshd: root@notty
fhem      3587     1  0 14:22 ?        00:00:00 SCREEN bin/alexa
fhem      3588  3587  6 14:22 pts/3    00:00:04 node bin/alexa
fhem      3595  3588  0 14:22 pts/3    00:00:00 /usr/bin/ssh -C -R 1234:127.0.0.1:3000 -oServerAliveInterval=90 -p 58824 fhem-va.fhem.de
root      3637  2420  0 14:23 pts/1    00:00:00 grep -E (alexa|ssh)


starte ich Alexa aus dem Webif erhalte ich das:
fhem@fhembanana:~/alexa-fhem$ ps -ef | egrep '(alexa|ssh)'
root      1654     1  0 13:58 ?        00:00:00 /usr/sbin/sshd
root      1727  1654  0 13:58 ?        00:00:00 sshd: root@notty
root      2413  1654  0 14:06 ?        00:00:00 sshd: root@pts/1
root      3275  1654  0 14:13 ?        00:00:00 sshd: root@notty
root      4256  1654  0 14:42 ?        00:00:00 sshd: fhem [priv]
fhem      4262  4256  0 14:42 ?        00:00:00 sshd: fhem@pts/2
fhem      4282  1640 36 14:43 ?        00:00:03 node /opt/fhem/alexa-fhem/bin/alexa -c ./alexa-fhem.cfg -s
fhem      4301  4263  0 14:43 pts/2    00:00:00 grep -E (alexa|ssh)


Hier fehlt doch die Zeile:
fhem      3595  3588  0 14:22 pts/3    00:00:00 /usr/bin/ssh -C -R 1234:127.0.0.1:3000 -oServerAliveInterval=90 -p 58824 fhem-va.fhem.de

Daran dürfte es liegen, aber wieso wird die aus dem Webif nicht mitgestartet, weil Alexa läuft ja?
Die Konfigurationsdatei ist ja die selbe.

Wo liegt der Fehler?
LG

Dieter

The truth is out there!

gvzdus

Moin,

Du verwendest ein halbwegs aktuelles 39_alexa von Andre, wie es im Nachbarthread gepostet wurde?
Einerseits solltest Du da ein Reading mit dem Wert "alexaFHEM.ProxyConnection" haben, in dem auch Fehlermeldungen vom Start drinstehen.

Zweitens: Gucke doch bitte mal im Logfile (sollte bei "Andres aktuellem Modul" unter /opt/fhem/log liegen), vor allem nach Zeilen mit SSH
(grep -i ssh [logfile]).

punker

39_alexa.pm ist das neueste.
Hier ist das Log:
[server] this is alexa-fhem 0.5.3-FHEMlazy
[server] Fetching FHEM devices...
[FHEM] starting longpoll: https://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1547043267773
[cli] Server failed with Error: EACCES: permission denied, open '/alexa.pid'
[server] Killing SSH on event process.exit
[server] SSH: Welcome at the reverse proxy!
This pseudoshell does not react to any input - do not get irritated.

[server] SSH: Pseudo-terminal will not be allocated because stdin is not a terminal.



Ist ja keine Sache das aus der Shell zu starten, aber bequemer wärs aus dem Webif!
LG

Dieter

The truth is out there!

gvzdus

Supi, da habe ich mich unter den Möglichkeiten wieder verhaspelt... Das PID-File kann nicht geschrieben werden.

Update in GIT kommt gleich.

punker

Nur die Ruhe, wie gesagt es lief ja aus der Shell.
Aber man ist ja bequem.  ::)
LG

Dieter

The truth is out there!

gvzdus

Hmm. Ist hässlich. Irgendwie wird Dein homedirectory mit "/" erkannt, und da darf natürlich nicht geschrieben werden.

Am einfachsten erscheint es mir, dem Web-IF ein Attribut

alexaFHEM-params -U /opt/fhem


hinzuzufügen, das müsste klappen. Das PID-File-Schreiben fliegt eh' bald wieder raus, wenn 39_alexa.pm offiziell ist.