39_alexa.pm und alexa-fhem test version

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

Vorheriges Thema - Nächstes Thema

justme1968

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

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

betateilchen

wo nimmt die Anwendung eigentlich den port her, auf dem nach einem FHEMWEB device gesucht wird? Bzw. wie kommt es zum "undefined" an dieser Stelle?


[14.1.2019, 18:50:25] using ./alexa-fhem.cfg
[14.1.2019, 18:50:25] _loadConfig: Config parsed completely.
[14.1.2019, 18:50:25] this is alexa-fhem 0.5.7
[14.1.2019, 18:50:25] Fetching FHEM devices...
[14.1.2019, 18:50:26] [FHEM] starting longpoll: http://127.0.0.1:undefined/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON×tamp=1547488226079
[14.1.2019, 18:50:26] Server listening on: http://127.0.0.1:39795 for proxy connections
[14.1.2019, 18:50:26] Passed config: {"connections":[{"uid":999,"server":"127.0.0.1","name":"FHEM","filter":"alexaName=..*"}],"sshproxy":{"ssh":"/usr/bin/ssh","description":"FHEM Connector","bind-ip":"127.0.0.1","port":39795}}
[14.1.2019, 18:50:26] [FHEM] longpoll error: Error: connect ECONNREFUSED 127.0.0.1:80, retry in: 5000msec
[14.1.2019, 18:50:26] autoconf: testrequest result is {"success":false,"message":{"code":"ECONNREFUSED","errno":"ECONNREFUSED","syscall":"connect","address":"127.0.0.1","port":80}}
[14.1.2019, 18:50:26] FHEM Web not reachable - -
[14.1.2019, 18:50:26] Unable to setup SSH proxy configuration
[14.1.2019, 18:50:27] Reading alexaFHEM.ProxyConnection set to error, FHEM Web not reachable - -
[14.1.2019, 18:50:31] [FHEM] starting longpoll: http://127.0.0.1:undefined/fhem?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON×tamp=1547488231184
[14.1.2019, 18:50:31] [FHEM] longpoll error: Error: connect ECONNREFUSED 127.0.0.1:80, retry in: 10000msec
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

der port kommt aus dem config file.

wenn das config file über das alexa modul erzeugt wird kommt es aus dem WEB in fhem device.

wenn kein port im config file steht gibt es aktuell keinen fallback. in alexa-fhem. node nimmt dann 80 was nicht passt.

einen fallback auf 8083 baue ich ein.

die frage ist warum hast du ein config file ohne port?

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

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

betateilchen

Zitat von: justme1968 am 14 Januar 2019, 19:01:11
wenn das config file über das alexa modul erzeugt wird kommt es aus dem WEB in fhem device.

Bei mir heißt das FHEMWEB device gar nicht WEB, sondern web.

Zitat von: justme1968 am 14 Januar 2019, 19:01:11
die frage ist warum hast du ein config file ohne port?

Vielleicht, weil es nicht WEB sondern web heißt?

Inzwischen hatte ich den port schon manuell in das config File eingetragen und schon funktioniert es. Aber was passiert eigentlich, wenn eine FHEM Installation kein FHEMWEB device hat, das mit longpoll arbeitet?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

@Loredo: magst du mal probieren ob du mit alexaFHEM-host und alexaFHEM-user alexa-fhem unter einem anderen user laufen lassen kannst? fhem muss ohne password per ssh zu diesem anderen user kommen. die config wird per ssh nach /tmp kopiert. das ist noch nicht optimal sollte aber zum testen reichen.

@betateilchen: eine bessere suche nach einem fhemweb device steht noch auf der liste.

wegsacket statt longpoll kommt noch.

ganz ohne fhemweb kein alexa-fhem. sorry.

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

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

betateilchen

ok, vielleicht sollte man die beiden Punkte "longpoll" und "WEB als Name" noch als Voraussetzungen in den WIKI Artikel schreiben.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

#186
noch etwa: es gibt aktuell kein fhemweb ohne longpoll.

das attribut longpoll gibt nur an welche variante ein browser der fhemweb darstellt verwenden soll. d.h. wie sich der fhemweb js teil zu fhem connecten soll.

fhemweb kann aktuell immer beides und ein anderer client kann unabhängig vom longpoll attribut selber entscheiden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

eisman

Zitat von: justme1968 am 14 Januar 2019, 17:34:37
1. ja. ist bekannt. das device dynamisch temporary angelegt wenn alexa-fhem läuft und sonst beendet. deshalb lassen sich keine attribute setzen und das device wird auch nicht gespeichert.

2. dann solltest du mal im log schauen woran es liegt. es soll automatisch gestartet werden.

dankeschön,

werde ich morgen mal machen, sonst läuft alles auf Anhieb klasse (FS20-ROLLO FS20-Steckdosen MilightDevice und FHT)
klasse Arbeit

gruss
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

gvzdus

@det: Ich glaube, nach Warteliste bist Du definitiv als nächster dran.

Was mir auffällt:

Nach der Kommandozeile für alexa hast Du kein SSL-FHEMWEB (kein "-s" angegeben). Nach der "Passed config"-Zeile schon. Das garantiert mit Version 0.5.7 (und früher) schon mal Inkonsistenzen zwischen SSH-Anteil und alexa-fhem. Wenn Du alexa-fhem.cfg und Realität näher aneinander ran bringst, kommt Du vermutlich weiter.

Alternativ wäre konkret aus dem alexa-Logfile der Abschnitt ab "passed config" hilfreich, bis zu dem Moment, wo er "scheinbar" aufgibt (wird demnächst besser geloggt werden).

Loki

Hallo,

ich habe ein Problem...
Mein Alexa Prozess bricht leider gleich nach dem Start wieder ab:
[2019-1-14 19:46:21] [FHEM] FLUR.licht_vorn is switch
[2019-1-14 19:46:21] [FHEM] FLUR.licht_vorn has
[2019-1-14 19:46:21] [FHEM]   FirmwareRevision [D-firmware]
[2019-1-14 19:46:21] [FHEM]   On [state;on,off]
  2019-01-14 19:46:21 caching: FLUR.licht_vorn-D-firmware: 2.3
  2019-01-14 19:46:21 caching: FLUR.licht_vorn-state: off
[2019-1-14 19:46:21] [FHEM] homebridgeMapping: LockCurrentState=state,values=on:UNSECURED;released:SECURED,default=UNKNOWN \ LockTargetState=state,values=on:UNSECURED;released:SECURED,default=UNKNOWN,cmds=SECURED:off;UNSECURED:on \ LockManagementAutoSecureTimeout=1 \ LockMechanismLastKnownAction=state,values=on:unsecuredRemotely;on:securedWithAutomaticSecureTimeout
/usr/lib/node_modules/alexa-fhem/lib/fhem.js:948
      if( match === undefined || match.length < 4 || !match[3] ) {
                                       ^

TypeError: Cannot read property 'length' of null
    at FHEMDevice.fromHomebridgeMapping (/usr/lib/node_modules/alexa-fhem/lib/fhem.js:948:40)
    at new FHEMDevice (/usr/lib/node_modules/alexa-fhem/lib/fhem.js:2394:8)
    at FHEM.<anonymous> (/usr/lib/node_modules/alexa-fhem/lib/fhem.js:846:39)
    at Array.map (<anonymous>)
    at FHEM.<anonymous> (/usr/lib/node_modules/alexa-fhem/lib/fhem.js:843:31)
    at Request.self.callback (/usr/lib/node_modules/alexa-fhem/node_modules/request/request.js:185:22)
    at Request.emit (events.js:188:13)
    at Request.<anonymous> (/usr/lib/node_modules/alexa-fhem/node_modules/request/request.js:1161:10)
    at Request.emit (events.js:188:13)
    at Gunzip.<anonymous> (/usr/lib/node_modules/alexa-fhem/node_modules/request/request.js:1083:12)


Des weiteren wird nach dem define ja die alexa-fhem.cfg angelegt.
Dort wird der Port 8083 angenommen. Meine lokale Instanz läuft aber auf 8088. Lässt sich das in Fhem per attr anpassen, oder kann ich hier nur manuell die cfg ändern?

Kusselin

#191
Servus miteinand.....,
habe auf meinem test-fhem den fhem-connector installiert soweit so gut...

nach der Installation wird mir in den Readings aber nicht der "SkillRegKey " angezeigt......hier mal ein list:
Internals:
   CFGFN     
   FD         24
   LAST_START 2019-01-14 18:54:28
   LAST_STOP  2019-01-14 18:54:28
   NAME       alexa
   NOTIFYDEV  global
   NR         140
   NTFY_ORDER 50-alexa
   PID        3622
   STARTS     4
   STATE      running /usr/local/bin/alexa-fhem
   TYPE       alexa
   active     0
   alexa-fhem version 0.5.7
   currentlogfile ./log/alexa-2019-01-14.log
   logfile    ./log/alexa-%Y-%m-%d.log
   READINGS:
     2019-01-14 18:54:28   alexaFHEM       running /usr/local/bin/alexa-fhem
     2019-01-14 18:54:33   alexaFHEM.ProxyConnection running, SSH connected
     2019-01-14 18:45:58   alexaFHEM.bearerToken crypt:710002575679270100700850700a0850
Attributes:
   alexaFHEM-config ./alexa-fhem.cfg
   alexaFHEM-log ./log/alexa-%Y-%m-%d.log
   alexaMapping #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=auf;für,values=AMAZON.TIME,valueSuffix=uhr
   alexaTypes #Type=<alias>[,<alias2>[,...]]
light=licht,lampen
blind=rolladen,rolläden,jalousie,jalousien,rollo,rollos
   devStateIcon stopped:control_home@red:start stopping:control_on_off@orange running.*:control_on_off@green:stop
   echoRooms  #<deviceId>=<room>

   fhemIntents #IntentName=<sample utterance>
gutenMorgen=guten morgen
guteNacht=gute nacht
   stateFormat alexaFHEM


auch nach reload nicht und restart... woran liegts?

voher update gemacht und config gesichert... wenn das jetzt auf anhieb geklappt hätte......

und auszug auzs dem log:
2019.01.14 18:45:49 2: alexa: created default configfile: ./alexa-fhem.cfg
2019.01.14 18:45:50 3: alexa: alexaFHEM starting
2019.01.14 18:45:50 3: alexa: using logfile: ./log/alexa-2019-01-14.log
2019.01.14 18:45:50 2: alexa: starting alexa-fhem: /usr/local/bin/alexa-fhem -c ./alexa-fhem.cfg
2019.01.14 18:45:50 3: alexa: read: end of file reached while sysread
2019.01.14 18:45:50 3: alexa: alexaFHEM stopped
2019.01.14 18:45:50 3: alexa: alexaFHEM starting
2019.01.14 18:45:50 3: alexa: using logfile: ./log/alexa-2019-01-14.log
2019.01.14 18:45:50 2: alexa: starting alexa-fhem: /usr/local/bin/alexa-fhem -c ./alexa-fhem.cfg
2019.01.14 18:45:58 3: alexa: read: end of file reached while sysread
2019.01.14 18:45:58 3: alexa: alexaFHEM stopped
2019.01.14 18:46:18 3: alexa: alexaFHEM starting
2019.01.14 18:46:18 2: alexa: starting alexa-fhem: /usr/local/bin/alexa-fhem -c ./alexa-fhem.cfg
2019.01.14 18:46:18 3: alexa: using logfile: ./log/alexa-2019-01-14.log
2019.01.14 18:46:43 2: AttrTemplates: got 45 entries
2019.01.14 18:54:28 3: alexa: read: end of file reached while sysread
2019.01.14 18:54:28 3: alexa: alexaFHEM stopped
2019.01.14 18:54:28 3: alexa: alexaFHEM starting
2019.01.14 18:54:28 2: alexa: starting alexa-fhem: /usr/local/bin/alexa-fhem -c ./alexa-fhem.cfg
2019.01.14 18:54:28 3: alexa: using logfile: ./log/alexa-2019-01-14.log


und ausgabe im shellfenster:
root@raspberrypi:/home/pi# ps -ef | egrep '(alexa|ssh)'
root       512     1  0 18:38 ?        00:00:00 /usr/sbin/sshd -D
root       551   512  0 18:39 ?        00:00:00 sshd: pi [priv]
pi         566   551  0 18:39 ?        00:00:00 sshd: pi@pts/0
fhem      3584  3550  1 18:46 ?        00:00:03 node /usr/local/bin/alexa-fhem -       c ./alexa-fhem.cfg
fhem      3595  3584  0 18:46 ?        00:00:00 /usr/bin/ssh -R 1234:127.0.0.1:4       0603 -oServerAliveInterval=90 -p 58824 fhem-va.fhem.de
root      3601   594  0 18:49 pts/0    00:00:00 grep -E (alexa|ssh)


Gruss

justme1968

@Loki: wo kommen die \ im homebridgeMapping attribut her ? die gehören da nicht hin

@Kusselin: du solltest ins log von alexa fhem schauen. das steht was schief geht. links oben auf der alexa device detail seite
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

betateilchen

Zitat von: justme1968 am 14 Januar 2019, 19:17:03
@betateilchen: eine bessere suche nach einem fhemweb device steht noch auf der liste.

im InfoPanel verwende ich sowas:


    @webs = devspec2array("TYPE=FHEMWEB");
    foreach (@webs) {
        if ( !InternalVal( $_, 'TEMPORARY', undef ) ) {
            $FW_wname = InternalVal( $_, 'NAME', '' );
            last;
        }
    }
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

det.

#194
Zitat von: gvzdus am 14 Januar 2019, 19:48:43
@det: Ich glaube, nach Warteliste bist Du definitiv als nächster dran.

Was mir auffällt:

Nach der Kommandozeile für alexa hast Du kein SSL-FHEMWEB (kein "-s" angegeben). Nach der "Passed config"-Zeile schon. Das garantiert mit Version 0.5.7 (und früher) schon mal Inkonsistenzen zwischen SSH-Anteil und alexa-fhem. Wenn Du alexa-fhem.cfg und Realität näher aneinander ran bringst, kommt Du vermutlich weiter.

Alternativ wäre konkret aus dem alexa-Logfile der Abschnitt ab "passed config" hilfreich, bis zu dem Moment, wo er "scheinbar" aufgibt (wird demnächst besser geloggt werden).


Sorry, Pukt 1 verstehe ich nicht, wo soll das -s hin? Btw im übrigen Fhem habe ich kein ssl?


Punkt 2 ist einfach, nach ,,passed config" kommt nichts mehr. Ich hatte da alles kopiert und nichts abgeschnitten. Die Log Files habe ich so eingestellt, dass immer das Neuste oben steht.
LG
det.