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

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

Vorheriges Thema - Nächstes Thema

gvzdus

Joachim, wie Andre halte ich den Weg über FHEM für den Normalfall für eleganter. Das hat folgende Gründe:
- alexa-fhem ergibt ohne FHEM keinen Sinn. Läuft FHEM nicht, braucht alexa-fhem auch nicht zu laufen
- Nix garantiert so gut, dass der User, unter dem alexa-fhem läuft, stabil gleich ist
- FHEM ist das gesetzte Frontend, hier kann man den Status am besten einsehen.
- Du hast bestimmt auch andere FHEM-Hobbies, als systemd zu erläutern :-)

MadMax-FHEM

Zitat von: gvzdus am 04 Januar 2019, 16:47:44
- alexa-fhem ergibt ohne FHEM keinen Sinn. Läuft FHEM nicht, braucht alexa-fhem auch nicht zu laufen
- Nix garantiert so gut, dass der User, unter dem alexa-fhem läuft, stabil gleich ist
- FHEM ist das gesetzte Frontend, hier kann man den Status am besten einsehen.

Keiner der Gründe kann/könnte von dem Modul nicht auch erreicht werden... ;)
...aber ich schau mir die "neue" Variante natürlich mal an.

Wollte eigentlich heute damit anfangen, kam aber (wie so oft) was anderes dazwischen... :-|


Zitat von: gvzdus am 04 Januar 2019, 16:47:44
- Du hast bestimmt auch andere FHEM-Hobbies, als systemd zu erläutern :-)

Da wird alexa-fhem nicht das Einzige bleiben weswegen ich das evtl. erläutern darf ;)

Es gibt ja noch welche, die alexa-fhem nach der "alten" Variante zum Laufen kriegen wollen...
...oder ist im Wiki schon vermerkt, dass es jetzt (dann) neu, besser, anders geht!?

Weil solange wird in den bekannten Threads weiterhin bzgl. der "alten" Variante unterstützt...
...und da finde ich es (in der Tat) einfacher mit systemd-Startscript und dem serviced-Modul zu helfen...

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)

justme1968

sobald die 'neue' start methode bei mehr als zwei usern funktioniert hat würde ich gerne dazu übergehen diese für alle 'einfachen' installationen zum default zu machen.

einfach wäre hier:
- alles was standard skill mit proxy ist
- alles bei dem alexa-fhem auf dem gleichen rechner installiert ist wie fhem

d.h. in diesem fall ist es mit sudo npm install -g alexa-fhem komplett erledigt. alles andere geht automatisch.


für alles andere (vor allem wenn alexa-fhem auf einem anderen rechner als fhem läuft) braucht man natürlich ein start script. da hilft dir dann aber auch das serviced modul nicht da unterschiedliche rechner :)

wenn du dabei bist das starten im 'nicht einfach' fall zu standardisieren hätte ich noch zwei vorschläge:
- auch hier immer mit sudo npm install -g alexa-fhem global installieren. dann ist zumindest mal die installation nicht vom user beeinflusst und alexa-fhem ist immer zu finden
- magst du dir mal node forever anschauen? und das im start script verwenden?
forever -a -l $LOGFILE -e $LOGFILE --pidFile $PIDFILE start alexa
forever -a -l $LOGFILE -e $LOGFILE --pidFile $PIDFILE restart alexa
forever stop --pidFile $PIDFILE alexa
forever list --pidFile $PIDFILE

ich verwende forever schon immer und es funktioniert sehr gut. ich habe vor es auch direkt in alexa-fhem einzubauen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

MadMax-FHEM

Auch für remote funktioniert das servicd-Modul (ssh und dann remote den Service "kontrollieren") aber egal...

Wenn's ausläuft oder zukünftig einfacher (schöner) geht hab ich bestimmt nichts dagegen... ;)

Kann mir die Sachen mal anschauen...
...wird aber noch dauern... :-|


Das mit dem Installieren sollte besser (sofort) ins Wiki...
Die meisten schlagen ja erst mit Problemen auf, wenn schon "irgendwie" (falsch, komisch, Userdurcheinander, ...) installiert wurde und es dann nicht läuft/sich nicht starten lässt...

Kurz, da nur Handy grad...

Gruß und danke, 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)

Lucky2k12

Zitat von: gvzdus am 03 Januar 2019, 22:50:34
Ich habe die nächste Version (meldet sich im MyAlexa-Device mit 0.5.1-fhemlazy an) auf GitHub und den Server gelegt.

Verbessert ist das Pidfile-Handling und der Einwand von "desmoloch":
Man kann jetzt mehrfach auf Reload drücken, denn das DOIF-Device ist jetzt "always". Dafür war aber nötig, dass ich auch souveräner mit dem Mehrfachstart umgehe (der ohnehin ein Problem war).

Wer Reload nicht braucht und ansonsten glücklich ist, braucht nicht upzudaten, ansonsten muss man "bin/alexa -A" wieder laufen lassen (wobei sich der Registrierungscode ändert, allerdings ist das nur relevant, wenn man den Skill trennen und sich neu anmelden will).

Falls mir keine Probleme um die Ohren gehauen werden, die ich noch nicht kenne, gehe ich als Nächstes die Optimierung des Loggings an. (Anständiger Pfad, keine Custom-Skill-Meldungen, u.s.w.). Oder was an Vorschlägen kommt.

Zu den technischen Hintergründen:
Dass der laufende Prozess durch einen Aufruf mit "alexa -k" beendet wird, haben vielleicht schon manche erkannt. Das Problem: Startet man 2 Server, überschrieb der neu gestartete Prozess das PID-File, beendete sich dann aber, weil der Listener auf Port 3000 nicht andocken konnte (da war schon jemand). Danach war dann das PID-File kaputt, also zeigte auf einen Prozess, der sich beendet hatte.
Ist jetzt gelöst, indem das PID-File ein Array ist.
Man sollte trotzdem nicht wie blöd auf "Start" klicken, denn ggf. kommt sonst das Backend durcheinander, weil schon ein neuer SSH-Prozess sich angemeldet hatte, dann aber mit der zugehörigen Alexa-Instanz wieder verschied.
"Stop" killt alle eventuell laufenden Alexa-Prozess-Instanzen.

Und noch was: Von ca. 22:00 - 22:10 Uhr gab es technische Probleme. Die schreibe ich eher Amazon zu - ich erhielt auch in der Entwickler-Konsole Netzwerkfehlermeldungen.
Ich bräuchte noch einmal Hilfe. Ich habe das update heute gezogen, neu konfiguriert  und versuche jetzt, den skill neu zu aktivieren.
mit dem neuen Key bekomme ich folgendes Ergebnis:


Sieht aus, als wäre mein nodejs tot. (node-red läuft aber)
Wo muss ich suchen?
Danke.

HP T610, HM, Jeelink, LGW, mapleCUL868+434

gvzdus

Auf Anhieb würde ich jetzt raten: "SSL" aktiviert? Und deswegen wird HTTP nicht erfolgreich abgewickelt?
Ansonsten: Der SSH-Tunnel dürfte definitiv auf 3000 enden, Du könntest mal mit tcpdump mitschneiden...
[P.S.] Beispiel für Raspbian steht im Lazy-Wiki. Denk dran: lo, nicht eth0 o.ä.

Lucky2k12

Danke.

ssl steht in der config.json auf false:
{
  "alexa": {
    "port": 3000,
    "name": "Alexa",
    "bind-ip": "127.0.0.1",
    "ssl": false,
    "publicSkill": true,
    "ssh": "/usr/bin/ssh"
  },
  "connections": [
    {
      "server": "127.0.0.1",
      "port": 8083,
      "name": "FHEM",
      "filter": "alexaName=...*",
      "ssl": false,
      "base_url": "http://127.0.0.1:8083/fhem",
...


tcpdump:

fhem@raspberrypi:~/alexa-fhem$ sudo /usr/sbin/tcpdump -X -s 0 -i lo port 3000
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
21:09:21.251590 IP localhost.51204 > localhost.3000: Flags [S], seq 3048306337, win 43690, options [mss 65495,sackOK,T                                                       S val 220426 ecr 0,nop,wscale 7], length 0
        0x0000:  4500 003c 2bab 4000 4006 110f 7f00 0001  E..<+.@.@.......
        0x0010:  7f00 0001 c804 0bb8 b5b1 76a1 0000 0000  ..........v.....
        0x0020:  a002 aaaa fe30 0000 0204 ffd7 0402 080a  .....0..........
        0x0030:  0003 5d0a 0000 0000 0103 0307            ..].........
21:09:21.251860 IP localhost.3000 > localhost.51204: Flags [S.], seq 669056302, ack 3048306338, win 43690, options [ms                                                       s 65495,sackOK,TS val 220426 ecr 220426,nop,wscale 7], length 0
        0x0000:  4500 003c 0000 4000 4006 3cba 7f00 0001  E..<..@.@.<.....
        0x0010:  7f00 0001 0bb8 c804 27e0 fd2e b5b1 76a2  ........'.....v.
        0x0020:  a012 aaaa fe30 0000 0204 ffd7 0402 080a  .....0..........
        0x0030:  0003 5d0a 0003 5d0a 0103 0307            ..]...].....
21:09:21.252121 IP localhost.51204 > localhost.3000: Flags [.], ack 1, win 342, options [nop,nop,TS val 220426 ecr 220                                                       426], length 0
        0x0000:  4500 0034 2bac 4000 4006 1116 7f00 0001  E..4+.@.@.......
        0x0010:  7f00 0001 c804 0bb8 b5b1 76a2 27e0 fd2f  ..........v.'../
        0x0020:  8010 0156 fe28 0000 0101 080a 0003 5d0a  ...V.(........].
        0x0030:  0003 5d0a                                ..].
21:09:21.290564 IP localhost.51204 > localhost.3000: Flags [P.], seq 1:309, ack 1, win 342, options [nop,nop,TS val 22                                                       0430 ecr 220426], length 308
        0x0000:  4500 0168 2bad 4000 4006 0fe1 7f00 0001  E..h+.@.@.......
        0x0010:  7f00 0001 c804 0bb8 b5b1 76a2 27e0 fd2f  ..........v.'../
        0x0020:  8018 0156 ff5c 0000 0101 080a 0003 5d0e  ...V.\........].
        0x0030:  0003 5d0a 504f 5354 202f 7374 6174 7573  ..].POST./status
        0x0040:  2048 5454 502f 312e 310d 0a48 6f73 743a  .HTTP/1.1..Host:
        0x0050:  206c 6f63 616c 686f 7374 0d0a 436f 6e6e  .localhost..Conn
        0x0060:  6563 7469 6f6e 3a20 636c 6f73 650d 0a43  ection:.close..C
        0x0070:  6f6e 7465 6e74 2d54 7970 653a 2061 7070  ontent-Type:.app
        0x0080:  6c69 6361 7469 6f6e 2f6a 736f 6e0d 0a43  lication/json..C
        0x0090:  6f6e 7465 6e74 2d4c 656e 6774 683a 2031  ontent-Length:.1
        0x00a0:  3934 0d0a 0d0a 7b22 6469 7265 6374 6976  94....{"directiv
        0x00b0:  6522 3a7b 2268 6561 6465 7222 3a7b 226e  e":{"header":{"n
        0x00c0:  616d 6573 7061 6365 223a 2241 6c65 7861  amespace":"Alexa
        0x00d0:  2e44 6973 636f 7665 7279 222c 226e 616d  .Discovery","nam
        0x00e0:  6522 3a22 4469 7363 6f76 6572 222c 2270  e":"Discover","p
        0x00f0:  6179 6c6f 6164 5665 7273 696f 6e22 3a22  ayloadVersion":"
        0x0100:  3322 2c22 6d65 7373 6167 6549 6422 3a22  3","messageId":"
        0x0110:  3038 3135 227d 2c22 7061 796c 6f61 6422  0815"},"payload"
        0x0120:  3a7b 2273 636f 7065 223a 0909 097b 2274  :{"scope":...{"t
        0x0130:  7970 6522 3a22 4265 6172 6572 546f 6b65  ype":"BearerToke
        0x0140:  6e22 2c22 746f 6b65 6e22 3a22                   n","token":"XYZ"}}}}
21:09:21.290823 IP localhost.3000 > localhost.51204: Flags [.], ack 309, win 350, options [nop,nop,TS val 220430 ecr 2                                                       20430], length 0
        0x0000:  4500 0034 a025 4000 4006 9c9c 7f00 0001  E..4.%@.@.......
        0x0010:  7f00 0001 0bb8 c804 27e0 fd2f b5b1 77d6  ........'../..w.
        0x0020:  8010 015e fe28 0000 0101 080a 0003 5d0e  ...^.(........].
        0x0030:  0003 5d0e                                ..].
dann lange Pause .............
21:11:21.352973 IP localhost.3000 > localhost.51204: Flags [F.], seq 1, ack 309, win 350, options [nop,nop,TS val 232436 ecr 220430], length 0
        0x0000:  4500 0034 a026 4000 4006 9c9b 7f00 0001  E..4.&@.@.......
        0x0010:  7f00 0001 0bb8 c804 27e0 fd2f b5b1 77d6  ........'../..w.
        0x0020:  8011 015e fe28 0000 0101 080a 0003 8bf4  ...^.(..........
        0x0030:  0003 5d0e                                ..].
21:11:21.358126 IP localhost.51204 > localhost.3000: Flags [.], ack 2, win 342, options [nop,nop,TS val 232437 ecr 232436], length 0
        0x0000:  4500 0034 2bae 4000 4006 1114 7f00 0001  E..4+.@.@.......
        0x0010:  7f00 0001 c804 0bb8 b5b1 77d6 27e0 fd30  ..........w.'..0
        0x0020:  8010 0156 fe28 0000 0101 080a 0003 8bf5  ...V.(..........
        0x0030:  0003 8bf4                                ....
21:11:21.390985 IP localhost.51204 > localhost.3000: Flags [F.], seq 309, ack 2, win 342, options [nop,nop,TS val 232440 ecr 232436], length 0
        0x0000:  4500 0034 2baf 4000 4006 1113 7f00 0001  E..4+.@.@.......
        0x0010:  7f00 0001 c804 0bb8 b5b1 77d6 27e0 fd30  ..........w.'..0
        0x0020:  8011 0156 fe28 0000 0101 080a 0003 8bf8  ...V.(..........
        0x0030:  0003 8bf4                                ....
21:11:21.391243 IP localhost.3000 > localhost.51204: Flags [.], ack 310, win 350, options [nop,nop,TS val 232440 ecr 232440], length 0
        0x0000:  4500 0034 0369 4000 4006 3959 7f00 0001  E..4.i@.@.9Y....
        0x0010:  7f00 0001 0bb8 c804 27e0 fd30 b5b1 77d7  ........'..0..w.
        0x0020:  8010 015e 390f 0000 0101 080a 0003 8bf8  ...^9...........
        0x0030:  0003 8bf8                                ....


HP T610, HM, Jeelink, LGW, mapleCUL868+434

gvzdus

Mist. Gerade schreibt auch jemand anderes von so einem Problem. Lass mich raten, im Logfile steht etwas wie

2019-01-04T20:04:03.945Z info server.js: <<<< {"directive":{"header":{"namespace":"Alexa.Discovery","name":"Discover","payloadVersion":"3","messageId":"0815"},"payload":{"scope":{"type":"BearerToken","token":"1XXXXXXXXXXXXXX"}}}}
2019-01-04T20:04:03.947Z error server.js: Exception in handling request:
2019-01-04T20:04:03.948Z info server.js: >>>> null


Könntest Du - als der *richtige* User natürlich - bin/alexa auf der Konsole starten und gucken, ob das *etwas* mehr kommt?

Lucky2k12

#68

fhem@raspberrypi:~/alexa-fhem$ ps -ef | egrep '(alexa|ssh)'
root       682     1  0 20:27 ?        00:00:00 /usr/sbin/sshd -D
root      1540   682  0 20:28 ?        00:00:00 sshd: pi [priv]
pi        1561  1540  0 20:28 ?        00:00:00 sshd: pi@pts/0
fhem      4034     1  0 20:58 ?        00:00:01 alexa
fhem      4125  4034  0 20:59 ?        00:00:00 /usr/bin/ssh -R 1234:127.0.0.1:3000 -oServerAliveInterval=90 -p 58824 fhem-va.fhem.de
fhem      5948  1781  0 21:28 pts/0    00:00:00 grep -E (alexa|ssh)
fhem@raspberrypi:~/alexa-fhem$ kill -9 4034
fhem@raspberrypi:~/alexa-fhem$ bin/alexa
2019-01-04T20:28:36.770Z info server.js: this is alexa-fhem 0.5.1-FHEMlazy
2019-01-04T20:28:36.830Z info server.js: Fetching FHEM devices...
2019-01-04T20:28:37.446Z info server.js: starting longpoll: http://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1546633717446
2019-01-04T20:28:37.469Z error undefined: Server failed with TypeError: pids.push is not a function
2019-01-04T20:28:37.470Z info server.js: Killing SSH on event process.exit
2019-01-04T20:28:37.498Z info server.js: SSH: Welcome at the reverse proxy!
This pseudoshell does not react to any input - do not get irritated.

2019-01-04T20:28:37.503Z warn server.js: SSH: Pseudo-terminal will not be allocated because stdin is not a terminal.

2019-01-04T20:28:37.525Z error server.js: SSH: exited with 143 - will restart in 82.67019710306744 seconds



Das hier kommt wohl von einem älteren Versuch. Danach habe ich neu gestartet und die logs liefen wo anders hin.
Weist wohl auf Pfadprobleme hin

cat /opt/fhem/log/alexa-2019-01.log
2019-01-04T19:27:39.926Z info server.js: this is alexa-fhem 0.5.1-FHEMlazy
2019-01-04T19:27:39.936Z error undefined: Server failed with Error: ENOENT: no such file or directory, open './key.pem'


Edit: In den Logfiles in alexa-fhem/alexa-fhem.log und /tmp/alexa-fhem.log stehen keine aktuellen Einträge!?
HP T610, HM, Jeelink, LGW, mapleCUL868+434

Badflex

Super Arbeit!!!
Nach dem Gestrigen update mit dem Usernamen/Passwort, ist es auch bei mir 1A durchgelaufen.
Hat auch gleich wieder alle Geräte erkannt.
Wenn ich überlege wievielte Tage ich damals gebraucht habe alexa über DSLlite einzurichten.
Jetzt war die Sache in 5min. durch.
Raspberry Pi, CUL868(SlowRF), FB 7490, SmartVisu, fast nur HomeMatic wenig FS20, Netatmo

gvzdus

Danke, ermuntert, wenn man gerade versucht, 2 andere Leute zum Glück zu bringen... :-)

@Lucky.
1) Mit dem kill -9 nimmst Du dem Alexa-Prozess die Chance, den SSH-Prozess zu beenden. Dann muss Du den auch töten :-)
2) Bei Deinem Konsolen-Start hat sich SSH beendet, zur Serverschonung vergeht dann eine Zufallszeit, die geloggt wird
3) Das Logging ist sch..., genau da wollte ich ja rangehen..., aber es kommt z.B. auch alles auf die Konsole.

Ansonsten suche ich jetzt den Bugs nach Deiner Mail

gvzdus

So, der "pids.push"-Fehler ist gestern reingekommen, mit der "Sauber-Hoch-Runter"-Version.

Du hattest / hast vermutlich noch ein altes Pid-File da liegen, und deswegen liest er eine Zahl ein.

Per Hand kannst Du das in lib/cli.js so patchen:

  try {
    const oldpids = fs.readFileSync(pidPath);
    if (oldpids) {
      pids = [].concat(JSON.parse(oldpids.toString()));
    }
  } catch (e) {


Die [].concat - Zeile ist der Trick... Ist natürlich auch in der nächsten Version drin.

Lucky2k12

Danke, lass dir Zeit.
Ich kann mich nur anschließen, die Installation bei Amazon empfand ich als sehr fehlerträchtig und zeitaufwendig. Daher kann man deinen Einsatz hier nicht genug würdigen, denn die Installation hier läuft fast vollautomatisch!
HP T610, HM, Jeelink, LGW, mapleCUL868+434

gvzdus

Ich wäre jetzt aber schon interessiert :-)
Also am Konsolen-Output während des Discovers....

Bei dem anderen trat die Exception übrigens beim Lock-Device auf, ohne das lief zumindest der händische Discover gut.

Bei ihm ist übrigens das Problem, dass die Verknüpfung läuft, die Check-Seite läuft, aber nach dem Abholen des OAuth-Token NULL Requests beim Lambda vom Skill ankommen.

Lucky2k12

#74
in dieser Art?

fhem@raspberrypi:~/alexa-fhem$ ps -ef | egrep '(alexa|ssh)'
root       682     1  0 20:27 ?        00:00:00 /usr/sbin/sshd -D
root      1540   682  0 20:28 ?        00:00:00 sshd: pi [priv]
pi        1561  1540  0 20:28 ?        00:00:00 sshd: pi@pts/0
fhem      6420     1  0 21:35 ?        00:00:01 alexa
fhem      6584  6420  0 21:37 ?        00:00:00 /usr/bin/ssh -R 1234:127.0.0.1:3000 -oServerAliveInterval=90 -p 58824 fhem-va.fhem.de
fhem      9934  1781  0 22:30 pts/0    00:00:00 grep -E (alexa|ssh)
fhem@raspberrypi:~/alexa-fhem$ kill -9 6420 6584
fhem@raspberrypi:~/alexa-fhem$ bin/alexa
2019-01-04T21:30:31.392Z info server.js: this is alexa-fhem 0.5.1-FHEMlazy
2019-01-04T21:30:31.452Z info server.js: Fetching FHEM devices...
2019-01-04T21:30:32.048Z info server.js: starting longpoll: http://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1546637432048
2019-01-04T21:30:32.087Z info server.js: Server listening on: http%s://%s:%s
2019-01-04T21:30:32.094Z info server.js: SSH: Welcome at the reverse proxy!
This pseudoshell does not react to any input - do not get irritated.

2019-01-04T21:30:32.096Z warn server.js: SSH: Pseudo-terminal will not be allocated because stdin is not a terminal.

2019-01-04T21:30:32.243Z info server.js:   executing: http://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&XHR=1
2019-01-04T21:30:32.248Z info server.js:   executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE=alexa&XHR=1
2019-01-04T21:30:32.251Z info server.js: Executing cmd 'jsonlist2 FHEM.Alexa from startup command list
2019-01-04T21:30:32.252Z info server.js:   executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20FHEM.Alexa&XHR=1
2019-01-04T21:30:32.256Z info server.js: Fetching FHEM devices...
2019-01-04T21:30:32.256Z info server.js: fetching: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20alexaName=...*&XHR=1
2019-01-04T21:30:32.431Z info server.js: alexa device is MyAlexa
2019-01-04T21:30:32.453Z info server.js: MyAlexa is switch
2019-01-04T21:30:32.454Z info server.js: MyAlexa has
2019-01-04T21:30:32.455Z info server.js: homebridgeMapping: #Characteristic=<name>=<value>,...
On=verb=schalte,valueOn=an;ein,valueOff=aus,valueToggle=um

Brightness=verb=stelle,property=helligkeit,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

Hue=verb=stelle,valuePrefix=auf,values=rot:0;grün:128;blau:200
Hue=verb=färbe,values=rot:0;grün:120;blau:220

Saturation=verb=stelle,property=sättigung,valuePrefix=auf,values=AMAZON.NUMBER
Saturation=verb=sättige,values=AMAZON.NUMBER

TargetPosition=verb=mach,articles=den;die,values=auf:100;zu:0
TargetPosition=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

TargetTemperature=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=grad

Volume:verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

Weckzeit=verb=stelle,valuePrefix=für;auf,values=AMAZON.TIME,valueSuffix=uhr
2019-01-04T21:30:32.470Z info server.js:   executing: http://127.0.0.1:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%201;;undef%7D;%7B$defs%7BMyAlexa%7D-%3E%7B%22alexa-fhem%20version%22%7D%20=%20%220.5.1-FHEMlazy%22%7D;%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%200;;undef%7D&XHR=1
2019-01-04T21:30:32.478Z error server.js: perfectOfVerb:
2019-01-04T21:30:32.478Z error server.js: [object Object]
2019-01-04T21:30:32.479Z error server.js: verbsOfIntent:
2019-01-04T21:30:32.480Z error server.js:
2019-01-04T21:30:32.480Z error server.js: characteristicsOfIntent:
2019-01-04T21:30:32.481Z error server.js: [object Object]
2019-01-04T21:30:32.481Z error server.js: prefixOfIntent:
2019-01-04T21:30:32.482Z error server.js: [object Object]
2019-01-04T21:30:32.482Z error server.js: suffixOfIntent:
2019-01-04T21:30:32.482Z error server.js: [object Object]
2019-01-04T21:30:32.483Z error server.js: alexaTypes:
2019-01-04T21:30:32.484Z error server.js: [object Object]
2019-01-04T21:30:32.484Z error server.js: roomOfEcho:
2019-01-04T21:30:32.485Z error server.js: [object Object]
2019-01-04T21:30:32.486Z error server.js: fhemIntents:
2019-01-04T21:30:32.486Z error server.js: [object Object]
2019-01-04T21:30:32.487Z info server.js:   executing: http://127.0.0.1:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%201;;undef%7D;list%20MyAlexa%20.Alexa.Authorization;%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%200;;undef%7D&XHR=1
2019-01-04T21:30:32.504Z info server.js: BearerToken '------------' read from FHEM.
2019-01-04T21:30:32.524Z info server.js: got: 10 results
2019-01-04T21:30:32.526Z error server.js: Alexa.Weckzeit: no service type detected
2019-01-04T21:30:32.527Z info server.js: no device created for Alexa.Weckzeit (dummy)
2019-01-04T21:30:32.530Z info server.js: Kuehlschrank.Temp is thermometer
2019-01-04T21:30:32.530Z info server.js: Kuehlschrank.Temp has
2019-01-04T21:30:32.531Z info server.js:   StatusLowBattery [battery]
2019-01-04T21:30:32.531Z info server.js:   CurrentTemperature [temperature]
2019-01-04T21:30:32.536Z info server.js: Level_Oil is thermometer
2019-01-04T21:30:32.536Z info server.js: Level_Oil has
2019-01-04T21:30:32.537Z info server.js:   Custom Volume [Volume;not cached]
2019-01-04T21:30:32.537Z info server.js:   Custom Voltage [voltage]
2019-01-04T21:30:32.538Z info server.js:   CurrentTemperature [temperature]
2019-01-04T21:30:32.545Z info server.js: Level_Water is thermometer
2019-01-04T21:30:32.546Z info server.js: Level_Water has
2019-01-04T21:30:32.546Z info server.js:   Custom Voltage [voltage]
2019-01-04T21:30:32.547Z info server.js:   CurrentTemperature [temperature]
2019-01-04T21:30:32.550Z info server.js: RGBWW is light
2019-01-04T21:30:32.551Z info server.js: RGBWW has
2019-01-04T21:30:32.551Z info server.js:   Hue [hue;hue;0-359]
2019-01-04T21:30:32.552Z info server.js:   Saturation [sat;sat;0-100]
2019-01-04T21:30:32.552Z info server.js:   Custom Color Temperature [ct]
2019-01-04T21:30:32.552Z info server.js:   On [state;on,off]
2019-01-04T21:30:32.554Z error server.js: RGBWW-ct not a number: 0
2019-01-04T21:30:32.555Z info server.js: homebridgeMapping: clear CurrentRelativeHumidity=humidity CurrentTemperature=temperature
2019-01-04T21:30:32.556Z info server.js: WS1600 is thermometer
2019-01-04T21:30:32.557Z info server.js: WS1600 has
2019-01-04T21:30:32.557Z info server.js:   CurrentRelativeHumidity [humidity]
2019-01-04T21:30:32.558Z info server.js:   CurrentTemperature [temperature]
2019-01-04T21:30:32.559Z info server.js: homebridgeMapping: clear CurrentRelativeHumidity=humidity CurrentTemperature=temperature
2019-01-04T21:30:32.560Z info server.js: Wintergarten.Temp is thermometer
2019-01-04T21:30:32.561Z info server.js: Wintergarten.Temp has
2019-01-04T21:30:32.561Z info server.js:   CurrentRelativeHumidity [humidity]
2019-01-04T21:30:32.561Z info server.js:   CurrentTemperature [temperature]
2019-01-04T21:30:32.562Z info server.js: homebridgeMapping: On=state,cmdOn=ON,cmdOff=OFF

2019-01-04T21:30:32.563Z info server.js: sonoff_garage_links is switch
2019-01-04T21:30:32.564Z info server.js: sonoff_garage_links has
2019-01-04T21:30:32.564Z info server.js:   On [state;ON,OFF]
2019-01-04T21:30:32.565Z info server.js: homebridgeMapping: On=state,cmdOn=ON,cmdOff=OFF

2019-01-04T21:30:32.566Z info server.js: sonoff_garage_rechts is switch
2019-01-04T21:30:32.567Z info server.js: sonoff_garage_rechts has
2019-01-04T21:30:32.567Z info server.js:   On [state;ON,OFF]
2019-01-04T21:30:32.568Z error server.js: vacuum: no service type detected
2019-01-04T21:30:32.569Z info server.js: no device created for vacuum (XiaomiDevice)
.... Registrierung ...
2019-01-04T21:33:59.497Z info server.js: <<<< {"directive":{"header":{"namespace":"Alexa.Discovery","name":"Discover","payloadVersion":"3","messageId":"0815"},"payload":{"scope":{"type":"BearerToken","token":"xxxxxxxx"}}}}
2019-01-04T21:33:59.503Z info server.js: >>>> {"event":{"header":{"namespace":"Alexa.Discovery","name":"Discover.Response","payloadVersion":"3","messageId":"xxxx"},"payload":{"endpoints":[{"endpointId":"Kuehlschrank_Temp","manufacturerName":"FHEMLaCrosse","friendlyName":"Kühlschrank","description":"n: Kuehlschrank.Temp, r: alexaroom,lacrosse,mqttroom","displayCategories":["TEMPERATURE_SENSOR"],"cookie":{"device":"Kuehlschrank.Temp"},"capabilities":[{"type":"AlexaInterface","interface":"Alexa.TemperatureSensor","version":"3","properties":{"supported":[{"name":"temperature"}],"proactivelyReported":false,"retrievable":true}}]},{"endpointId":"Level_Oil","manufacturerName":"FHEMLevel","friendlyName":"Öltank","description":"n: Level_Oil, r: alexaroom,energy,heizung,lacrosse","displayCategories":["OTHER"],"cookie":{"device":"Level_Oil"},"capabilities":[{"type":"AlexaInterface","interface":"Alexa.Speaker","version":"3","properties":{"supported":[{"name":"volume"}],"proactivelyReported":false,"retrievable":true}},{"type":"AlexaInterface","interface":"Alexa.TemperatureSensor","version":"3","properties":{"supported":[{"name":"temperature"}],"proactivelyReported":false,"retrievable":true}}]},{"endpointId":"Level_Water","manufacturerName":"FHEMLevel","friendlyName":"Regenwasser","description":"n: Level_Water, r: alexaroom,energy,lacrosse,mqttroom","displayCategories":["TEMPERATURE_SENSOR"],"cookie":{"device":"Level_Water"},"capabilities":[{"type":"AlexaInterface","interface":"Alexa.TemperatureSensor","version":"3","properties":{"supported":[{"name":"temperature"}],"proactivelyReported":false,"retrievable":true}}]},{"endpointId":"RGBWW","manufacturerName":"FHEMLedController","friendlyName":"Büro","description":"n: RGBWW, r: alexaroom,buero,qfhem","displayCategories":["LIGHT"],"cookie":{"device":"RGBWW"},"capabilities":[{"type":"AlexaInterface","interface":"Alexa.ColorController","version":"3","properties":{"supported":[{"name":"color"}],"proactivelyReported":false,"retrievable":false}},{"type":"AlexaInterface","interface":"Alexa.ColorTemperatureController","version":"3","properties":{"supported":[{"name":"colorTemperatureInKelvin"}],"proactivelyReported":false,"retrievable":true}},{"type":"AlexaInterface","interface":"Alexa.PowerController","version":"3","properties":{"supported":[{"name":"powerState"}],"proactivelyReported":false,"retrievable":true}}]},{"endpointId":"WS1600","manufacturerName":"FHEMLaCrosse","friendlyName":"Wetterstation","description":"n: WS1600, r: alexaroom,aussen,lacrosse,mqttroom","displayCategories":["TEMPERATURE_SENSOR"],"cookie":{"device":"WS1600"},"capabilities":[{"type":"AlexaInterface","interface":"Alexa.TemperatureSensor","version":"3","properties":{"supported":[{"name":"temperature"}],"proactivelyReported":false,"retrievable":true}}]},{"endpointId":"Wintergarten_Temp","manufacturerName":"FHEMLaCrosse","friendlyName":"Wintergarten","description":"n: Wintergarten.Temp, r: alexaroom,lacrosse,mqttroom","displayCategories":["TEMPERATURE_SENSOR"],"cookie":{"device":"Wintergarten.Temp"},"capabilities":[{"type":"AlexaInterface","interface":"Alexa.TemperatureSensor","version":"3","properties":{"supported":[{"name":"temperature"}],"proactivelyReported":false,"retrievable":true}}]},{"endpointId":"sonoff_garage_links","manufacturerName":"FHEMMQTT_DEVICE","friendlyName":"Ludwigs Garage","description":"n: sonoff_garage_links, r: alexaroom,garage,mqtt,mqttroom","displayCategories":["SWITCH"],"cookie":{"device":"sonoff_garage_links"},"capabilities":[{"type":"AlexaInterface","interface":"Alexa.PowerController","version":"3","properties":{"supported":[{"name":"powerState"}],"proactivelyReported":false,"retrievable":true}}]},{"endpointId":"sonoff_garage_rechts","manufacturerName":"FHEMMQTT_DEVICE","friendlyName":"Karins Garage","description":"n: sonoff_garage_rechts, r: alexaroom,garage,mqtt,mqttroom","displayCategories":["SWITCH"],"cookie":{"device":"sonoff_garage_rechts"},"capabilities":[{"type":"AlexaInterface","interface":"Alexa.PowerController","version":"3","properties":{"supported":[{"name":"powerState"}],"proactivelyReported":false,"retrievable":true}}]}]}}}



HP T610, HM, Jeelink, LGW, mapleCUL868+434