XHR=1 und Javascript (?) vereinen?

Begonnen von andies, 06 Mai 2018, 22:22:26

Vorheriges Thema - Nächstes Thema

andies

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.
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

#1
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.
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

andies

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.
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Otto123

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.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

andies

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
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

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.
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

andies

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!
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

andies

Mist. Jetzt ist es passiert, siehe Screenshot. Und ich habe keinen Eintrag im Eventmonitor. Irgend etwas habe ich falsch gemacht.
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

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
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann