Hallo Zusammen,
Ich habe folgenden httpmod der über Alexa gesteuert und werden soll.
Dafür habe ich, wie man sehen kann, alexaName, alexaRoom, genericDeviceType und homebridgeMapping gesetzt.
defmod httpmod_Balkon_LightString HTTPMOD http://pibalkon.hartlan/rest/getLightStringStatus 10
attr httpmod_Balkon_LightString userattr devStateIcon event-on-change-reading reading01JSON reading01Name reading01OMap reading01Regex reading03OMap requestHeader1 set01IMap set01Name set01URL set02Name set02URL stateFormat webCmd
attr httpmod_Balkon_LightString alexaName Lichterkette
attr httpmod_Balkon_LightString alexaRoom Balkon
attr httpmod_Balkon_LightString alias Lichterkette
attr httpmod_Balkon_LightString devStateIcon .*off:light_light_dim_00 .*on:light_light_dim_100
attr httpmod_Balkon_LightString genericDeviceType light
attr httpmod_Balkon_LightString group LED-Streifen
attr httpmod_Balkon_LightString homebridgeMapping On:Status,valueOn=on,cmdOn=Licht+on,cmdOff=Licht+off
attr httpmod_Balkon_LightString reading01JSON result
attr httpmod_Balkon_LightString reading01Name Status
attr httpmod_Balkon_LightString reading01OMap 1:on, 0:off
attr httpmod_Balkon_LightString requestHeader1 Content-Type: application/json
attr httpmod_Balkon_LightString room Licht,Balkon,alexa
attr httpmod_Balkon_LightString set01IMap lightStringOn:on, lightStringOff:off
attr httpmod_Balkon_LightString set01Name Licht
attr httpmod_Balkon_LightString set01URL http://pibalkon.hartlan/rest/$val
attr httpmod_Balkon_LightString sortby 3
attr httpmod_Balkon_LightString stateFormat Status
attr httpmod_Balkon_LightString webCmd Licht
attr httpmod_Balkon_LightString widgetOverride Licht:uzsuSelectRadio,on,off
Das Gerät erscheint in meiner Alexa-App und lässt sich auch ein- und ausschalten, aber der Status wird nicht übertragen/korrekt angezeigt.
nach dem Toggeln in der Alexa-App vergehen 5 Sekunden und die Anzeige springt, egal welcher Zustand gerade besteht, wieder auf "aus" und bleibt bei diesem Wert.
Für mich sieht es so aus, als würde er den Wert mit On:Status,valueOn=on, nicht richtig auslesen, vermutlich weil ich die Syntax verhunzt habe oder ähnliches.
Bitte schaut einmal drüber, vlt hat ja einer eine Idee.
schönes Wochenende,
globus
Edit: Lösung: hatte dummerweise einen "event-on-change-reading Farbe" drin, der hier völlig falsch war, es gibt nicht mal ein Farbe-Reading. Muss beim kopieren rüber gerutscht sein.
Sieht korrekt aus. Versuche evtl noch valueOff zu mappen.
Und zeige bitte die Readings des Devices aus einem "list"
ZitatVersuche evtl noch valueOff zu mappen.
Habe ich bereits in vielen Ausführungen versucht, hier mein Aktueller Versuch mit Regex:
clear On=Status,valueOn=/.*(on).*/,valueOff=/.*(off).*/,cmdOn=Licht+on,cmdOff=Licht+off
hatte aber auch schon
On=Status,valueOn=on,valueOff=off,cmdOn=Licht+on,cmdOff=Licht+off
ZitatUnd zeige bitte die Readings des Devices aus einem "list"
READINGS:
2020-06-13 17:45:16 Status on
und der Rest:
Internals:
BUSY 1
DEF http://pibalkon.hartlan/rest/getLightStringStatus 10
FD 16
FUUID 5c5f1934-f33f-8fd2-59c8-080801c33a382f72
Interval 10
JSONEnabled 1
LASTSEND 1592063126.06439
MainURL http://pibalkon.hartlan/rest/getLightStringStatus
ModuleVersion 3.5.22 - 7.2.2020
NAME httpmod_Balkon_LightString
NOTIFYDEV global
NR 66
NTFY_ORDER 50-httpmod_Balkon_LightString
STATE on
TRIGGERTIME 1592063136.06392
TRIGGERTIME_FMT 2020-06-13 17:45:36
TYPE HTTPMOD
addr http://pibalkon.hartlan:80
auth 0
buf
code 200
compress 1
data
displayurl http://pibalkon.hartlan/rest/getLightStringStatus
header Content-Type: application/json
Cookie: PHPSESSID=a9e7kvl9q77n92vloqe6pes4j1
host pibalkon.hartlan
httpversion 1.0
hu_blocking 0
hu_filecount 3035
hu_port 80
hu_portSfx
ignoreredirects 1
loglevel 4
path /rest/getLightStringStatus
protocol http
redirects 0
timeout 2
url http://pibalkon.hartlan/rest/getLightStringStatus
value 0
HTTPCookieHash:
PHPSESSID;/:
Name PHPSESSID
Options path=/
Path /
Value a9e7kvl9q77n92vloqe6pes4j1
QUEUE:
READINGS:
2020-06-13 17:45:16 Status on
REQUEST:
data
header Content-Type: application/json
ignoreredirects 0
retryCount 0
type update
url http://pibalkon.hartlan/rest/getLightStringStatus
value 0
defptr:
readingBase:
Status reading
readingNum:
Status 01
readingOutdated:
requestReadings:
update:
Status reading 01
sslargs:
Attributes:
alexaName Lichterkette
alexaRoom Balkon
alias Lichterkette
devStateIcon .*off:light_light_dim_00 .*on:light_light_dim_100
event-on-change-reading Farbe
genericDeviceType light
group LED-Streifen
homebridgeMapping clear On=Status,valueOn=/.*(on).*/,valueOff=/.*(off).*/,cmdOn=Licht+on,cmdOff=Licht+off
reading01JSON result
reading01Name Status
reading01OMap 1:on, 0:off
requestHeader1 Content-Type: application/json
room Licht,Balkon,alexa
set01IMap lightStringOn:on, lightStringOff:off
set01Name Licht
set01URL http://pibalkon.hartlan/rest/$val
sortby 3
stateFormat Status
userattr devStateIcon event-on-change-reading reading01JSON reading01Name reading01OMap reading01Regex reading03OMap requestHeader1 set01IMap set01Name set01URL set02Name set02URL stateFormat webCmd
webCmd Licht
widgetOverride Licht:uzsuSelectRadio,on,off
Zeig bitte wie das Device bei einem reload erkannt wird (aus der alexa Log)
[6/13/2020, 6:15:11 PM] [FHEM] httpmod_Balkon_LightString is light
[6/13/2020, 6:15:11 PM] [FHEM] httpmod_Balkon_LightString has
[6/13/2020, 6:15:11 PM] [FHEM] On [Status;Licht on,Licht off]
[6/13/2020, 6:15:11 PM] [FHEM] httpmod_Balkon_LightString will not send proactive events
[6/13/2020, 6:15:11 PM] [FHEM] httpmod_Balkon_LightString uses ID: 5c5f1934-f33f-8fd2-59c8-080801c33a382f72
2020-06-13 18:15:11 caching: httpmod_Balkon_LightString-Status: on
mhh... wenn ich den alexa-dienst neustarte, liest er den Status scheinbar korrekt ein und stellt es dann auch in der App entsprechend dar.
könnt es damit zusammenhängen, dass mein httpmod nur alle 10 sekunden den Status aktualisiert und fhemconnect da in irgendeinen timeout läuft?
Habe den httpmod mal auf 5 sek und den timeout von alexa auf 1500ms gestellt, selbe ergebnis.
Ich muss wohl einfach alle 2 sekunden den alexa dienst neustarten, dann passt auch der status in der app ;D :'( 8)
Und wenn Du z.B. ein "setreading httpmod_Balkon_LightString Status on", bzw off, wird es in der App mitberücksichtigt?
(nicht zeitnah nach oder vor einer Aktualisierung des HTTPMODs)
Zitat von: amenomade am 13 Juni 2020, 18:57:32
Und wenn Du z.B. ein "setreading httpmod_Balkon_LightString Status on", bzw off, wird es in der App mitberücksichtigt?
(nicht zeitnah nach oder vor einer Aktualisierung des HTTPMODs)
nein auch das wird nicht in der App angezeigt.
Nimm mal event-on-change-reading testweise weg. Das hatte ich übersehen
EDIT: oder ergänze es mit Status (kommagetrennt)
EDIT2: ein reload bei Alexa könnte nötig sein, da
[6/13/2020, 6:15:11 PM] [FHEM] httpmod_Balkon_LightString will not send proactive events
Zitat von: amenomade am 13 Juni 2020, 19:07:11
Nimm mal event-on-change-reading testweise weg. Das hatte ich übersehen
EDIT: oder ergänze es mit Status (kommagetrennt)
EDIT2: ein reload bei Alexa könnte nötig sein, da
[6/13/2020, 6:15:11 PM] [FHEM] httpmod_Balkon_LightString will not send proactive events
jup, das wars...
Hat da eigentlich nichts zu suchen, muss wohl beim kopieren mit rein gerutscht sein.
Vielen Dank für deine Hilfe!
Prima
Mich interessiert aber, ob jetzt die Zeile "will not send proactive events" immer noch da ist, oder nicht.
Für meine Unterlagen ;) bzw. Verständnis vom Modul
Zitat von: amenomade am 13 Juni 2020, 19:16:06
Prima
Mich interessiert aber, ob jetzt die Zeile "will not send proactive events" immer noch da ist, oder nicht.
Für meine Unterlagen ;) bzw. Verständnis vom Modul
ist immer noch da, bei so ziemlich allen meinen geräten btw.
[6/13/2020, 7:18:11 PM] [FHEM] httpmod_Balkon_LightString is light
[6/13/2020, 7:18:11 PM] [FHEM] httpmod_Balkon_LightString has
[6/13/2020, 7:18:11 PM] [FHEM] On [Status;Licht on,Licht off]
[6/13/2020, 7:18:11 PM] [FHEM] httpmod_Balkon_LightString will not send proactive events
[6/13/2020, 7:18:11 PM] [FHEM] httpmod_Balkon_LightString uses ID: 5c5f1934-f33f-8fd2-59c8-
Ok, dann hat es damit nichts zu tun. Ich war nicht sicher.
Danke und viel Spaß :)