Ich möchte eine Information eines devices (hier: Signalduino) auslesen. Das geschieht normalerweise mit
get sduino ccconf
Dieses Auslesen soll ereignisgesteuert erfolgen, also dachte ich, das mache ich mit HTTPmod und XHR, also etwa so
http://fhem.fritz.box:8083/fhem?cmd=get%20sduino%20ccconf&XHR=1
Nur leider ruft get sduino ccconf eben nicht FHEMWeb auf, sondern einen Dialog "darüber" (javascript?). Wie komme ich da über HTTP heran? Die commandref schweigt sich über XHR=1 aus, im Wiki finde ich auch nichts richtiges.
Bin schon einen Schritt weiter. Das Ergebnis kann ich immer noch nicht aus dem Befehl auslesen, aber es wird ausgeführt und danach stehen ja in den readings die Werte. Die wiederum kann ich mit ReadingsVal bekommen. Also sollte das irgendwie in den Griff zu kriegen sein, Details habe ich noch nicht. Ich habe erst einmal
defmod FileLog_Signalduino FileLog ./log/Signalduino-%Y-%m.log sduino:.*
definiert, weiter beim sduino
attr sduino noMsgVerbose 3
attr sduino verbose 3
und zuletzt
defmod notify_Signalduino notify sduino:.* {GetHttpFile("http://fhem.fritz.box:8083","/fhem?cmd=get%20sduino%20ccconf&XHR=1")}
Danach muss ich mal weitersehen.
Moin,
hier steht in der Kopfzeile "gelesen 49 mal" ich habe Deinen Text jetzt glaube ich 30 mal gelesen ehe ich ansatzweise verstanden habe was Du machen willst.
Also sowohl der Betreff als auch der Text erscheinen mir völlig unverständlich. Wundere Dich nicht wenn hier keiner antwortet.
Du willst in FHEM einen get Befehl auslösen, das geht doch direkt als FHEM Befehl, warum in aller Welt versuchst Du das in HTTP Aufrufe zu verpacken?
Ein get Aufruf gibt Dir meist irgendwelche Werte als Ausgabe zurück.
Willst Du nun einfach Readings auslesen oder willst Du die Ausgabe abfangen?
Ich habe für Zweiteres keine Lösung, ich versuche nur Deine Gedanken zu ordnen :)
Gruß Otto
Zitat von: Otto123 am 07 Mai 2018, 09:33:56
Also sowohl der Betreff als auch der Text erscheinen mir völlig unverständlich. Wundere Dich nicht wenn hier keiner antwortet.
Danke, wahrscheinlich schon betriebsblind. Ich fange mal vorne an.
Es gibt ein Problem mit meinem Signalduino. Der verstellt die Frequenz, ohne das ich weiß, warum (von 433MHz auf 6640MHz, also völliger Schwachsinn). Jetzt will ich natürlich Ralf9 nicht sagen "Das geht nicht", sondern fundiertere Kenntnis liefern, wann das passiert. Dazu muss ich aber den Signalduino überwachen und prüfen, wann passiert da überhaupt was (Stichwort: Ereignis) und wie sieht bei diesem Ereignis dann die Frequenz aus. Dazu muss ich jedesmal die Frequenz auslesen.
Das Auslesen der beim Signalduino eingestellten Frequenz wiederum geht nicht mit readings, weil das entsprechende Reading nur nach einem "get signalduino ccconf" befüllt wird. Die Frequenz selbst erscheint dann aber nicht unmittelbar in dem Reading, sondern in einem neuen Fenster mit OK-Button. Ursprünglich wollte ich den Inhalt dieses Fensters auslesen.
Und dabei dachte ich, ich muss den Befehl außerhalb von FHEM auslösen, weil ich innerhalb von FHEM da gar nicht herankomme. Dabei hätte ich dann XHR benutzt und das Problem wäre gewesen, dieses Javascript-Fenster abzufangen. Da kommt der Titel her. Beim Schreiben wird mir jetzt gerade klar, dass ich vielleicht das notify nutze, um gleich "get sduino ccconf" abzuschicken? Das muss ja gar nicht über XHR usw gehen. Dann könnte ich auch in readings schreiben.
Klar kannst Du get direkt im notify angeben. Wenn damit das reading befüllt wird ist doch auch alles ok - oder?
Wobei Du mit Deinem notiy bei jedem Event was der Signalduino erzeugt dann ein get auslöst, das kann ziemlich stressig werden.
Also jetzt mache ich folgendes:
defmod notify_Signalduino notify sduino:.* get sduino ccconf, setreading sduino logEntry [sduino:ccconf]
Und der sduino sieht so aus:
Internals:
Clients :IT:CUL_TCM97001:SD_RSL:OREGON:CUL_TX:SD_AS:Hideki:SD_WS07:SD_WS09: :SD_WS:RFXX10REC:Dooya:SOMFY:SD_UT:SD_WS_Maverick:FLAMINGO:CUL_WS:Revolt: :FS10:CUL_FHTTK:Siro:FHT:FS20:SIGNALduino_un:
DEF /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A104WS3F-if00-port0
DMSG W44#A92DA32556D25CDBD4
DevState initialized
DeviceName /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A104WS3F-if00-port0@57600
FD 11
LASTDMSG W44#A92DA32556D25CDBD4
MSGCNT 9196
NAME sduino
NR 21
NR_CMD_LAST_H 1
PARTIAL
RAWMSG MU;P0=-32001;P1=2012;P2=-1930;P3=-3913;P4=3908;D=01213431313121213121213121313121313121312121213131212131212131213121312131213131213131213121213121213121313131212131312131312131313131213121312;CP=1;R=16;
RSSI -66
STATE opened
TIME 1525680026
TYPE SIGNALduino
sendworking 0
unknownmessages
version V 3.3.2b-dev SIGNALduino cc1101 - compiled at Feb 25 2018 18:47:47
versionmodul v3.3.3-dev_11.04.
DoubleMsgIDs:
MatchList:
10:SD_WS07 ^P7#[A-Fa-f0-9]{6}F[A-Fa-f0-9]{2}(#R[A-F0-9][A-F0-9]){0,1}$
11:SD_WS09 ^P9#F[A-Fa-f0-9]+
12:SD_WS ^W\d+x{0,1}#.*
13:RFXX10REC ^(20|29)[A-Fa-f0-9]+
14:Dooya ^P16#[A-Fa-f0-9]+
15:SOMFY ^Ys[0-9A-F]+
16:SD_WS_Maverick ^P47#[A-Fa-f0-9]+
17:SD_UT ^u30#.*
18:FLAMINGO ^P13#[A-Fa-f0-9]+
19:CUL_WS ^K[A-Fa-f0-9]{5,}
1:IT ^i......
20:Revolt ^r[A-Fa-f0-9]{22}
21:FS10 ^P61#[A-F0-9]+
22:Siro ^P72#[A-Fa-f0-9]+
23:FHT ^81..(04|09|0d)..(0909a001|83098301|c409c401)..
24:FS20 ^81..(04|0c)..0101a001
2:CUL_TCM97001 ^s[A-Fa-f0-9]+
3:SD_RSL ^P1#[A-Fa-f0-9]{8}
4:OREGON ^(3[8-9A-F]|[4-6][0-9A-F]|7[0-8]).*
5:CUL_TX ^TX..........
6:SD_AS ^P2#[A-Fa-f0-9]{7,8}
7:Hideki ^P12#75[A-F0-9]+
9:CUL_FHTTK ^T[A-F0-9]{8}
X:SIGNALduino_un ^[u]\d+#.*
QUEUE:
READINGS:
2017-06-26 16:33:12 ITParms Unsupported command
2018-05-06 22:18:14 ccconf freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB (DataRate:824.45Baud)
2018-04-29 15:07:23 ccpatable C3E = 00 C0 00 00 00 00 00 00 => 10_dBm
2017-06-26 16:53:00 ccreg C3E = 00 84 00 00 00 00 00 00
2017-12-17 14:33:13 config MS=1;MU=1;MC=1
2018-05-07 07:02:07 logEntry start
2018-05-03 06:17:27 ping OK
2018-05-06 22:06:13 raw C0Dn03=10B071
2018-04-27 11:17:11 state opened
2017-12-15 07:19:00 uptime 20 09:33:54
2018-04-27 11:17:11 version V 3.3.2b-dev SIGNALduino cc1101 - compiled at Feb 25 2018 18:47:47
XMIT_TIME:
1525679795
getcmd:
keepalive:
ok 0
retry 0
mcIdList:
10
11
12
18
43
47
52
57
58
msIdList:
0
1
13
14
15
17
2
22
23
25
3
3.1
32
33
35
38
4
41
51
55
6
65
68
7
72.1
muIdList:
13.1
16
20
21
24
26
27
28
29
30
31
36
37
39
40
44
44.1
45
46
48
49
5
50
56
59
60
61
62
64
66
67
69
70
71
72
75
79
8
9
Attributes:
alias SIGNALduino
devStateIcon Initialized:cul_usb@green:Open Open:cul_usb@red:Initialized
flashCommand avrdude -c arduino -b 57600 -P [PORT] -p atmega328p -vv -U flash:w:[HEXFILE] 2>[LOGFILE]
group Kommunikation
hardware nanoCC1101
noMsgVerbose 3
Zitat von: Otto123 am 07 Mai 2018, 10:01:29
Wobei Du mit Deinem notiy bei jedem Event was der Signalduino erzeugt dann ein get auslöst, das kann ziemlich stressig werden.
Bisher kommt da fast nix an. Erst recht ist nicht klar, wieso sich die Frequenz verstellt. Eine Vermutung waren kalte Lötstellen, das kann immer sein, aber ich denke eher an ein Softwareproblem - mit der alten dev hatte ich da nix.
Das ist so nicht richtig:
get sduino ccconf, setreading sduino logEntry [sduino:ccconf]
https://commandref.fhem.de/commandref_DE.html#command
Komma ist ein Trenner zwischen Geräten, Semikolon zwischen Befehlen.
Mach mal den Eventmonitor auf und schau was bei dem Filter auf sduino:.* so passiert.
Gruß Otto
Zitat von: Otto123 am 07 Mai 2018, 10:07:14
Das ist so nicht richtig:
Danke, und doppeltes Semikolon. Richtig?
Zitat von: Otto123 am 07 Mai 2018, 10:07:14
Mach mal den Eventmonitor auf und schau was bei dem Filter auf sduino:.* so passiert.
Ich wusste gar nicht, dass das geht. Dann lasse ich das mal eine Stunde offen und schaue mal. Gestern kam nach 10 minuten nämlich gar nichts. Danke!
Beim define doppelt ;; im DEF Editor nur einfach ; ;D
Im Eventmonitor geht noch mehr -> https://wiki.fhem.de/wiki/Event_monitor
Vor allem notify erzeugen lassen. ;D
Mist. Jetzt ist es passiert, siehe Screenshot. Und ich habe keinen Eintrag im Eventmonitor. Irgend etwas habe ich falsch gemacht.
Ralf9 schreibt (in einem anderen Thread), dass sich die Frequenz nicht verstellt, sondern falsch gelesen wird. Das deutet nun stark in Richtung Hardware. Also doch ausbauen und neu löten oder das Ding ist gar kaputt, ist mW ein billiges Teil aus China (blaue Version). Das hier kann ich beenden.
Gesendet von iPhone mit Tapatalk Pro