39_alexa.pm und alexa-fhem test version

Begonnen von justme1968, 03 Januar 2019, 22:43:10

Vorheriges Thema - Nächstes Thema

Loki

Danke, habe den Fehler gefunden. In einem Mapping hatte sich der Backslash eingeschlichen.
Jetzt läuft alles!


justme1968

@betateilchen: ja. habs gerade fast genau so gebaut :)
devspec2array('TYPE=FHEMWEB:FILTER=TEMPORARY!=1') )

@Loki: sag ich doch :)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Kusselin

Hallo Justme,

anbei ein Auszug aus meinem alexa log:

[14.1.2019, 18:45:52] using ./alexa-fhem.cfg
[14.1.2019, 18:45:52] _loadConfig: Config parsed completely.
[14.1.2019, 18:45:52] this is alexa-fhem 0.5.7
[14.1.2019, 18:45:52] Fetching FHEM devices...
[14.1.2019, 18:45:53] [FHEM] starting longpoll: http://127.0.0.1:8083/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON×tamp=1547491553455
[14.1.2019, 18:45:53] Server listening on: http://127.0.0.1:43055 for proxy connections
Creating directory /opt/fhem/.alexa
[14.1.2019, 18:45:53] Passed config: {"connections":[{"name":"FHEM","webname":"fhem","uid":999,"port":"8083","filter":"alexaName=..*","server":"127.0.0.1"}],"sshproxy":{"ssh":"/usr/bin/ssh","description":"FHEM Connector","bind-ip":"127.0.0.1","port":43055}}
[14.1.2019, 18:45:53] [FHEM] Checking devices and attributes...
[14.1.2019, 18:45:53] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&fwcsrf=csrf_115238495440766&XHR=1
[14.1.2019, 18:45:53] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE=alexa&fwcsrf=csrf_115238495440766&XHR=1
[14.1.2019, 18:45:53] [FHEM] Fetching FHEM devices...
[14.1.2019, 18:45:53] [FHEM] fetching: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20alexaName=..*&fwcsrf=csrf_115238495440766&XHR=1
No SSH public key found, we have to generate one.
Generating public/private rsa key pair.
Created directory '/opt/fhem/.ssh'.
Your identification has been saved in /opt/fhem/.ssh/id_rsa.
Your public key has been saved in /opt/fhem/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1jE fhem@raspberrypi
The key's randomart image is:
+---[RSA 2048]----+
|.o... . .o+E+    |
|.o.o . +.o=ooo.  |
|. + = . o... o.  |
| = + . o.. o  .  |
|o o o ..S.+ ..   |
|.  . o...o= .    |
|.   ...  O o     |
| .  ..  o o      |
|  ..             |
+----[SHA256]-----+

[14.1.2019, 18:45:58]   executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20TYPE%3Dalexa&fwcsrf=csrf_115238495440766&XHR=1
[14.1.2019, 18:45:58] 39_alexa.pm is new version: 324
[14.1.2019, 18:45:58]   executing: http://127.0.0.1:8083/fhem?cmd=jsonlist2%20FHEM.Alexa&fwcsrf=csrf_115238495440766&XHR=1
[14.1.2019, 18:45:58] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7B%20addToAttrList(%20%22homebridgeMapping:textField-long%22%20)%20%7D&fwcsrf=csrf_115238495440766&XHR=1
[14.1.2019, 18:45:58] [FHEM] homebridgeMapping attribute created.
[14.1.2019, 18:45:58] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7BaddToAttrList(%20%22genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock,scene%22%20)%20%7D&fwcsrf=csrf_115238495440766&XHR=1
[14.1.2019, 18:45:58] [FHEM] got: 0 results
[14.1.2019, 18:45:58] [FHEM] alexa device is alexa
[14.1.2019, 18:45:58] [FHEM] 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


Hoffe der Auszug langt?

Warum jetzt bei mir nicht der RegKey erzeugt wird weiss ich nicht..hoffe man kann das im Log sehen?

Über ne Info wie ich vorgehen muss bedanke ich mich .

Gruss
Kussel

justme1968

der teil schaut ok aus. alexa-fhem läuft.

du musst schon ans ende schauen
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

gvzdus

Moin, vorab:

Andre hat gerade 0.5.8 released und ist für nichts verantwortlich :-)

Wer jetzt schon "npm install -g alexa-fhem" getippt hat, möge bitte sich das wichtigste Kommando merken:

npm install -g alexa-fhem@0.5.7

Damit kommt man auf 0.5.7 zurück.

Das Release ist zu 95% auf meinem Mist gewachsen. Es ist der Versuch, die diversen "Es kommt kein Proxy-Key"-Meldungen in den Griff zu kriegen.
Ich schreibe jetzt in einem 2. Beitrag die Änderungen.

Loki

Wurde auch etwas an der Device-Filterung gemacht?

Ich hatte im "alten" Alexa ein Dummy "Fernseher", das über Alexa und Fhem meine Multimedia-Geräte geschaltet hat (Sat, TV, AV).

Internals:
   CFGFN      FHEM/fhem_WOHN_SCHLAF.cfg
   NAME       Fernseher
   NR         274
   STATE      on
   TYPE       dummy
   READINGS:
     2019-01-14 21:06:34   state           on
Attributes:
   DbLogExclude .*
   alexaRoom  Wohnzimmer
   genericDeviceType switch
   icon       it_television
   room       Alexa,Homekit
   setList    on off
   webCmd     on:off


Im neuen Connector wird das Gerät nicht übernommen.
Muss noch etwas nachgepflegt werden?

gvzdus

Was hat sich geändert?

Im Prinzip haben wir ja 2 Versionen zusammengemischt und waren dabei vorsichtig. Meine Auto-Konfiguration fand im wesentlichen in user.js statt und hatte ihre eigenen FHEM-Zugriff-Routinen, die für das Schreiben des ProxyKeys / Reg-Keys nötig sind. Das hat - siehe Forum - zu diversen Problemen geführt.

Nun habe ich die mentale Hürde, die Signatur der Methoden in Server.js zu ändern, überwunden, und der SSH-Proxy-Teil versucht, sich ganz spät ins "gemachte Nest" zu setzen, wenn die FHEM-Connectivity steht, und diese dann auch zu nutzen.

Eine code-mäßig kleinere Änderung ist, dass jetzt definitiv sämtliches IO - ob JSON oder nicht - einheitlich geloggt wird. Und zwar mit ">>>>" und "<<<<". U.a., weil es halt nicht schön ist, dass man bei einem ungültigen Bearer-Token nicht sieht, was da an den Server gesendet wurde. Und weil es so ins Auge springt und sich besser filtern lässt.

Und zuletzt ist das Logging bei der SSH-Autoconfig verbessert. Diejenigen, die unbedingt mit "sort" das Logfile sortieren, sollten jetzt etwas glücklicher sein.

justme1968

@Loki: der default filter ist jetzt alexaName=..*

d.h. einfach alexaName setzen und es sollte gehen
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

gvzdus

ZitatAndre hat gerade 0.5.8 released und ist für nichts verantwortlich :-)

Wenn jetzt in den nächsten 10 Minuten nichts kommt, also 30 Minuten ohne Tomatenwürfe vergehen, mache ich ein Bier auf :-)

Kusselin

#204
Update auf 0.5.8 gemacht  dann shutdown restart und reloaded aber auch dann kein RegKey :-(

EDIT: Lt. gvzdus folgendes gemacht nach update auf 0.5.8:

in der shell folgendes eingegeben:
sudo -u fhem ssh -p 58824 fhem-va.fhem.de unregister

dann in Fhem in alexa
set restart gemacht

und siehe da..es funzt ...der RegKey wird angezeigt...so sollte es funzen!!

det.

Mach Dir das eine und andere Bier auf. Bei mir keine Änderung im Log und gehen tut es mit 0.58 auch nicht, genau wie vorher. Aber morgen ist auch noch ein Tag und irgendwo muss der Fehler ja liegen. Bestimmt zwischen Bürostuhl und Bildschirm ...
LG
det.

gvzdus

So, Kusselin ist schon mal weiter.

Hier war das Problem, dass zwar der Schlüssel erstellt wurde, aber mangels FHEM-Connectivity nicht geschrieben werden konnte.

Mit einem "ssh ... unregister" (siehe Wiki) wurde der Schlüssel auf dem Vereinsserver zurückgesetzt, ein neuer erzeugt, und dann mit 0.5.8 auch geschrieben.

Die 0.5.8 hat einen - praktisch nicht wirklich getesteten - Rollback-Mechnismus: Wenn das Schreiben zu FHEM fehlschlägt, wird der neue Key auf dem Vereinsserver wieder gelöscht.

betateilchen

woher kommt eigentlich die Warnung - aus node oder aus alexa-fhem?


# npm install -g alexa-fhem                                                                           
(node:22482) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

gvzdus

@det : Bier ist schon länger offen, aber noch kann ich schreiben (Merkt man ja immer erst viel zu spät, wann es nicht mehr geht, rückwirkend betrachtet).

Zur Sache: Die config.json (neu: ~/alexa-fhem.cfg) "sticht" die Kommandozeile. Und der Config, die gezogen wird und in "Passed config" ausgegeben wird, steht, formatiert:

{
"connections": [{
"port": "8083",
"server": "127.0.0.1",
"name": "FHEM",
"uid": 1000,
"ssl": true,
"filter": "alexaName=..*",
"webname": "fhem"
}],
"sshproxy": {
"ssh": "/usr/bin/ssh",
"description": "FHEM Connector",
"bind-ip": "127.0.0.1",
"port": 44115
}
}


connections ist die Verbindung zu FHEMWEB, und wenn da in der Config "ssl: true" steht, wird er es "immer" mit SSL versuchen. Vermutlich bist Du glücklich, wenn das "ssl" auf false steht oder gelöscht wurde. Dann bliebe noch die Frage: "Wie kam es dahin"?

det.


Bei mir hat das leider auch nicht geholfen, es kommt auf der Konsole:fhem@fhem-va.fhem.de: Permission denied (keyboard-interactive,publickey).
Das ssl hatte ich hier im Beitrag aufgeschnappt und reingeschrieben, vorher ging es aber auch nicht
LG
det.