Readings von verschiedenen Devices in einem Textfile

Begonnen von uwirt, 14 Juli 2019, 10:28:06

Vorheriges Thema - Nächstes Thema

uwirt

Für die Anzeige von Wetterwerten auf meiner Webseite muss ich verschiedene aktuelle Werte von zwei Devices in einer Text-Datei zur Verfügung haben.

Konkret sieht die Textdatei dann folgendermassen aus:


6.02 8.77 16.1 38 1010.2 0.0 215 15.8 21.5 58 200 5


Die einzelnen Werte kommen von den Readings von zwei verschiedenen HomeMatic Devices

Was wäre da wohl der einfachste Weg? Soweit ich Lösungen hier finden konnte wäre wohl "notify" eine geeignete Lösung.

Danke für die Hilfe
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

MadMax-FHEM

#1
Poste doch mal ein list des FileLog und je ein list der beiden HomeMatic Geräte...

list Devicename

Und Ausgabe dann hier in "code-Tags" (das '#' im "Menü") posten...

Evtl. geht es (jenachdem wie du die Geräte benamst hast) mit einer "guten Wahl" des RegEx beim FileLog...

Ansonsten gibt es noch readingsProxy kenne ich aber nur dem Namen nach...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Byte09

Zitat von: uwirt am 14 Juli 2019, 10:28:06
Für die Anzeige von Wetterwerten auf meiner Webseite muss ich verschiedene aktuelle Werte von zwei Devices in einer Text-Datei zur Verfügung haben.

Konkret sieht die Textdatei dann folgendermassen aus:


6.02 8.77 16.1 38 1010.2 0.0 215 15.8 21.5 58 200 5


Die einzelnen Werte kommen von den Readings von zwei verschiedenen HomeMatic Devices

Was wäre da wohl der einfachste Weg? Soweit ich Lösungen hier finden konnte wäre wohl "notify" eine geeignete Lösung.

Danke für die Hilfe

das kommt wohl darauf an , was der auslöser für das schreiben der datei sein soll. Soll es ein ankommendes event von einem der devices sein oder soll die datei in regelmässigen abständen einfach neu erzeugt werden.

eventbasiert kommt wohl notify, doif, Mswitch etc. in Frage - als regelmässige aktion wohl at,doif,MSwitch .

gruss Byte09

TomLee

Hallo,

mir kommt da gleich meine Einkaufsliste in den Kopf

Die benötigten Daten in ein userReadings (die wohl einfachste Variante) schreiben und dieses dann mit Hilfe von notify und Filewrite in eine Datei.

Such mal hier im Forum nach Einkaufsliste Filewrite da findest ein Beispiel. Gehört dann noch angepasst an deine Leerzeichen als Trenner.

Eine Lösung ohne userReadings würde mich selbst interessieren.

Gruß

Thomas

Byte09

da ich die namen deiner devices nicht kenne nur als Bild im Anhang die eventbasierte MSwitchlösung .

gruss Byte09


MadMax-FHEM

@Byte09: jep, klar. Ich bin mal von FileLog und Events ausgegangen... ;)

@TomLee und uwirt:

hier mal ein Beispiel was ich meine:


define MultiFileLog FileLog ./log/Multi-%Y.log HomeMatic.*:(temperature|humidity).*


Angenommen meine Geräte würden:

HomeMatic1, HomeMatic2, ... heißen und eben Readings "temperature" und "humidity" die man loggen will haben, dann würden von diesen Devices genau diese Readings (sofern es Events dazu gibt) geloggt...

Drum finde ich die Wahl der Device-Namen auch "wichtig" ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

TomLee

Zitathier mal ein Beispiel was ich meine:

Ist sicherlich die einfachste Variante, die Frage ist jetzt, kann der TE mit einer .log überhaupt was anfangen ?
Da sind die beiden anderen Varianten wieder im Vorteil.

Gruß

Thomas

MadMax-FHEM

Tja, da es von Byte09bereits angesprochen wurde und von mir bestätigt und nun auch von dir...
...muss sich dazu der TE äußern...

...und noch ein paar Infos liefern...

Dann wird man sehen ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

uwirt

#8
Hier schon mal die Listings meiner Devices:

Gerät 1:

Internals:
   DEF        62E4BD
   FUUID      5cea696b-f33f-7756-f5fa-338b939a8446bfe0
   HMLAN1_MSGCNT 291
   HMLAN1_RAWMSG E62E4BD,0000,AA3D3A43,FF,FFA9,7E867062E4BD00000000A63E0FB180553BFBCF
   HMLAN1_RSSI -87
   HMLAN1_TIME 2019-07-14 11:26:26
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     291
   NAME       HM_WDS100
   NOTIFYDEV  global
   NR         55
   NTFY_ORDER 50-HM_WDS100
   STATE      T: 16.6 H: 62 W: 8.5 R: 1185.015 IR: 0 WD: 295 WDR: 45 S: 251 B: 207
   TYPE       CUL_HM
   chanNo     01
   lastMsg    No:7E - t:70 s:62E4BD d:000000 00A63E0FB180553BFBCF
   peerList   HM_2EF03F_CS,
   protLastRcv 2019-07-14 11:26:26
   protRcv    291 last_at:2019-07-14 11:26:26
   protSnd    6 last_at:2019-07-13 23:21:27
   protState  CMDs_done
   rssi_at_HMLAN1 cnt:291 min:-97 max:-81 avg:-86.52 lst:-87
   READINGS:
     2019-07-13 23:20:12   Activity        alive
     2019-07-13 23:21:26   CommandAccepted yes
     2019-05-26 12:24:43   D-firmware      1.6
     2019-05-26 12:24:43   D-serialNr      OEQ1864824
     2019-07-13 23:21:26   PairedTo        0x2BAC9E
     2019-07-05 20:45:53   R-HM_2EF03F_CS-stormLowThresh 5
     2019-07-05 20:45:53   R-HM_2EF03F_CS-stormUpThresh 20
     2019-07-05 20:45:52   R-burstRx       on
     2019-07-05 20:45:52   R-pairCentral   0x2BAC9E
     2019-07-05 20:45:52   R-sunThresh     50
     2019-07-05 20:45:52   R-windSpeedRsltSrc max
     2019-07-13 23:21:26   RegL_00.         00:00 01:01 02:01 0A:2B 0B:AC 0C:9E 18:00
     2019-07-13 23:21:27   RegL_01.         00:00 05:32 06:14 07:05 0A:01
     2019-07-13 23:21:27   RegL_01.HM_2EF03F_CS  00:00 05:32 06:14 07:05 0A:01
     2019-07-13 23:21:28   RegL_04.HM_2EF03F_CS  00:00 05:00
     2019-07-14 11:26:26   battery         ok
     2019-07-14 11:26:26   brightness      207
     2019-07-14 11:26:26   humidity        62
     2019-07-14 11:26:26   isRaining       0
     2019-07-13 23:21:26   peerList        HM_2EF03F_CS,
     2019-07-14 11:26:26   rain            1185.015
     2019-07-14 11:26:26   rssi_at_HMLAN1  -87
     2019-07-14 11:26:26   state           T: 16.6 H: 62 W: 8.5 R: 1185.015 IR: 0 WD: 295 WDR: 45 S: 251 B: 207
     2019-07-12 23:15:52   storm           unknown:03
     2019-07-14 11:26:26   sunshine        251
     2019-07-14 11:26:26   temperature     16.6
     2019-07-12 23:15:52   trig_01         HM_WDC7000
     2019-07-12 23:15:52   trigger_cnt     2
     2019-07-14 11:26:26   windDirRange    45
     2019-07-14 11:26:26   windDirection   295
     2019-07-14 11:26:26   windSpeed       8.5
   helper:
     HM_CMDNR   126
     cSnd       012BAC9E62E4BD01042EF03F0901,012BAC9E62E4BD01042EF03F0904
     mId        00AE
     peerFriend peerAct,peerVirt
     peerIDsRaw ,2EF03F09,00000000
     peerOpt    1p:THSensor,4:THSensor,p:THSensor
     regLst     0,1,1p,4p
     rxType     140
     supp_Pair_Rep 0
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +62E4BD,00,00,00
       nextSend   1563096386.65834
       prefIO     
       rxt        2
       vccu       
       p:
         62E4BD
         00
         00
         00
     mRssi:
       mNo        7E
       io:
         HMLAN1:
           -85
           -85
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   
       qReqStat   
     regCollect:
     role:
       chn        1
       dev        1
     rssi:
       at_HMLAN1:
         avg        -86.5257731958763
         cnt        291
         lst        -87
         max        -81
         min        -97
     shadowReg:
Attributes:
   IODev      HMLAN1
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_raw
   firmware   1.6
   model      HM-WDS100-C6-O-2
   peerIDs    00000000,2EF03F09,
   room       CUL_HM
   rssiLog    1
   serialNr   OEQ1864824
   subType    THSensor



Gerät 2:

Internals:
   DEF        2EF03F
   FUUID      5ce996f1-f33f-7756-4f2f-3f510985ae651c5c
   HMLAN1_MSGCNT 289
   HMLAN1_RAWMSG E2EF03F,0000,AA3EC725,FF,FFB5,1784702EF03F00000000CC360366
   HMLAN1_RSSI -75
   HMLAN1_TIME 2019-07-14 11:28:08
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     289
   NAME       HM_WDC7000
   NOTIFYDEV  global
   NR         28
   NTFY_ORDER 50-HM_WDC7000
   STATE      T: 20.4 H: 54 AP: 870
   TYPE       CUL_HM
   channel_01 HM_2EF03F_TH_01
   channel_02 HM_2EF03F_TH_02
   channel_03 HM_2EF03F_TH_03
   channel_04 HM_2EF03F_TH_04
   channel_05 HM_2EF03F_TH_05
   channel_06 HM_2EF03F_TH_06
   channel_07 HM_2EF03F_TH_07
   channel_08 HM_2EF03F_TH_08
   channel_09 HM_2EF03F_CS
   channel_0A HM_2EF03F_WEATHER
   lastMsg    No:17 - t:70 s:2EF03F d:000000 00CC360366
   protLastRcv 2019-07-14 11:28:08
   protRcv    289 last_at:2019-07-14 11:28:08
   rssi_at_HMLAN1 cnt:289 min:-78 max:-74 avg:-76.04 lst:-75
   READINGS:
     2019-05-25 21:26:50   D-firmware      3.0
     2019-05-25 21:26:50   D-serialNr      LEQ0772229
     2019-05-25 21:26:50   PairedTo        0x2BAC9E
     2019-05-25 21:26:50   R-pairCentral   0x2BAC9E
     2019-05-25 21:26:50   RegL_00.        00:00 02:01 0A:2B 0B:AC 0C:9E
     2019-07-14 11:28:08   airpress        870
     2019-07-14 11:28:08   battery         ok
     2019-07-14 11:28:08   humidity        54
     2019-07-14 11:28:08   rssi_at_HMLAN1  -75
     2019-07-14 11:28:08   state           T: 20.4 H: 54 AP: 870
     2019-07-14 11:28:08   temperature     20.4
   helper:
     HM_CMDNR   23
     mId        000B
     peerFriend
     peerOpt    -:THSensor
     regLst     0
     rxType     1
     supp_Pair_Rep 0
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +2EF03F,00,00,00
       nextSend   1563096488.24488
       prefIO     
       rxt        0
       vccu       
       p:
         2EF03F
         00
         00
         00
     mRssi:
       mNo        17
       io:
         HMLAN1:
           -73
           -73
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   
       qReqStat   
     role:
       dev        1
     rssi:
       at_HMLAN1:
         avg        -76.0415224913494
         cnt        289
         lst        -75
         max        -74
         min        -78
Attributes:
   IODev      HMLAN1
   autoReadReg 4_reqStatus
   expert     2_raw
   firmware   3.0
   model      HM-WDC7000
   room       CUL_HM
   rssiLog    1
   serialNr   LEQ0772229
   subType    THSensor
   webCmd     getConfig:clear msgEvents


Konkret wären die Werte folgende:


windSpeed/WDS100 temperature/WDS100 humidity/WDS100  airpress/WDC7000 rain/WDS100 windDirection/WDS100 temperature/WDC7000 humidity/WDC7000 sunshine/WDS100 brigthness/WDS100


Und ja - es sollte in regelmässigen Abständen die alte Datei durch eine neue ersetzt werden und es sollen nur die numerischen Werte ohne Datum/Zeit oder Einheiten mit einem Abstand getrennt in der Text-Datei dargestellt werden. Die Datei heisst dann datain38.ini.
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

Byte09

#9
die angehängte raweines MSwitch würde diese datei alle 10 minuten neu erstellen 8 unabhängig von events , was ich im grunde eher immer nicht optimal finde, da es bei änderung entsprechender readings ja durchaus reichen würde.

im aufhuhrenden teil müsstest du deinezu schreibenden readings halt noch an deine wünsche anpassen , sollte kein problem sein.

( bitte nicht in der rawändern , sondern im webinterface nach dem erstellen.)

gruss Byte09

defmod maketxt MSwitch
attr maketxt MSwitch_Debug 0
attr maketxt MSwitch_Delete_Delays 1
attr maketxt MSwitch_Expert 0
attr maketxt MSwitch_Extensions 0
attr maketxt MSwitch_Help 0
attr maketxt MSwitch_Ignore_Types .*
attr maketxt MSwitch_Include_Devicecmds 1
attr maketxt MSwitch_Include_MSwitchcmds 0
attr maketxt MSwitch_Include_Webcmds 0
attr maketxt MSwitch_Inforoom MSwitch
attr maketxt MSwitch_Lock_Quickedit 1
attr maketxt MSwitch_Mode Notify

setstate maketxt active
setstate maketxt 2019-07-14 12:05:38 .Device_Affected FreeCmd-AbsCmd1
setstate maketxt 2019-07-14 12:06:10 .Device_Affected_Details FreeCmd-AbsCmd1#[NF]cmd#[NF]cmd#[NF]{#[nl]#[nl]my#[sp]$test#[sp]=#[sp]ReadingsVal(#[sp]'Aussenpflanze'#[ko]#[sp]'temperature'#[ko]#[sp]0#[sp])#[se]#[nl]$test.="#[sp]"#[se]#[nl]$test.=#[sp]ReadingsVal(#[sp]'Aussenpflanze1'#[ko]#[sp]'temperature'#[ko]#[sp]0#[sp])#[se]#[nl]open#[sp](DATEI#[ko]#[sp]">/opt/fhem/datain38.ini")#[sp]or#[sp]die#[sp]$!#[se]#[nl]print#[sp]DATEI#[sp]$test#[se]#[nl]close#[sp](DATEI)#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]#[NF]#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]1
setstate maketxt 2019-07-14 12:06:16 .Device_Events no_trigger
setstate maketxt 2019-07-14 12:05:29 .First_init done
setstate maketxt 2019-07-14 12:05:29 .Trigger_cmd_off no_trigger
setstate maketxt 2019-07-14 12:05:29 .Trigger_cmd_on no_trigger
setstate maketxt 2019-07-14 12:13:59 .Trigger_condition
setstate maketxt 2019-07-14 12:05:29 .Trigger_off no_trigger
setstate maketxt 2019-07-14 12:05:29 .Trigger_on no_trigger
setstate maketxt 2019-07-14 12:13:59 .Trigger_time on~off~ononly[00#[dp]10*00#[dp]05-23#[dp]55]~offonly~onoffonly
setstate maketxt 2019-07-14 12:05:29 .V_Check V2.00
setstate maketxt 2019-07-14 12:13:59 Trigger_device no_trigger
setstate maketxt 2019-07-14 12:05:29 Trigger_log off
setstate maketxt 2019-07-14 12:13:59 state active


MadMax-FHEM

#10
Das loggen per FileLog-Device würde schon gehen (wenn du nicht weitere Geräte hast, die vom Namen her so anfangen "HM_WD"):


define MultiFileLog FileLog ./log/Multi-%Y.log HM_WD.*:(ReadingsOfInterest).*


Auch dass immer neue Dateien angelegt werden lässt sich machen (je nachdem wie du den Dateinamen "angibst" / auch automatisches Löschen wäre möglich Attribut narchive)

Allerdings deine letzte Anforderung, dass die Zeile genau so aussehen soll wie du schreibst wird mit FileLog nicht gehen (ich glaube nicht, dass man FileLog "verbieten kann" vorne weg Datum Uhrzeit etc. zu schreiben)...
...da wird es wohl nicht anders gehen als ein Notify zu machen und dann wie von TomLee vorgeschlagen die einzelnen Werte auszulesen und dann per FileWrite in eine Datei zu schreiben...

Evtl. so:


define nWriteLog notify HM_WD.*:(ReadingsOfInterest / oder .* für "egal welche Änderung") {myWriteLog()}


und dann eben eine Sub in myUtils (pseudocode!!):


myWriteLog()
{
my $Wert1=ReadingsNum("HM_WDS100","ReadingName",0); # weil du wolltest ja nur den Zahlenwert ohne Einheit etc. Ansonsten: ReadingsVal()
my $Wert2=ReadingsNum("HM_WDC7000","ReadingName",0);

#pseudocode:
my File = openfile("Filename");
writeFile(File,$Wert1,$Wert2,...);
}


Hab grad nicht parat wie OpenFile/WriteFile etc. in Perl geht, lässt sich aber ja nachschauen...

EDIT: ups, zu langsam ;) Da ist die MSwitch-Variante mit "nur" fhem-Mitteln wohl einfacher...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

uwirt

#11
Ich werde es mal mit MSwitch versuchen.

Könnte @Byte09 mir bitte die Kommandozeile ohne die Steuerzeichen geben?

Zitatsetstate maketxt 2019-07-14 12:06:10 .Device_Affected_Details FreeCmd-AbsCmd1#[NF]cmd#[NF]cmd#[NF]{#[nl]#[nl]my#[sp]$test#[sp]=#[sp]ReadingsVal(#[sp]'Aussenpflanze'#[ko]#[sp]'temperature'#[ko]#[sp]0#[sp])#[se]#[nl]$test.="#[sp]"#[se]#[nl]$test.=#[sp]ReadingsVal(#[sp]'Aussenpflanze1'#[ko]#[sp]'temperature'#[ko]#[sp]0#[sp])#[se]#[nl]open#[sp](DATEI#[ko]#[sp]">/opt/fhem/datain38.ini")#[sp]or#[sp]die#[sp]$!#[se]#[nl]print#[sp]DATEI#[sp]$test#[se]#[nl]close#[sp](DATEI)#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]#[NF]#[NF]1#[NF]0#[NF]#[NF]0#[NF]0#[NF]

Ich sehe im Beispiel von @Byte09 zwei verschiedene Werte. Kann man die restlichen einfach sequentiell hintereinander mittels perl code hinzufügen?

Ich versuche das dann mal in den nächsten Tagen umzusetzen.
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

TomLee

Ich hab nur mal reingeschnuppert, einfach auf das + drücken und das Beispiel von Byte09 reinkopieren inkl. setstates (war mir auch nicht bewusst das das geht).

Die Funktion steht dann in MSwitch 'cmd1' drinnen.

Wenn ich aber das Device aufrufe bekomme ich folgenden Fehler angezeigt:


fhem?detail=maketxt line 321:
Uncaught SyntaxError: Unexpected token )


Byte09

#13
Zitat von: TomLee am 15 Juli 2019, 13:08:31
Ich hab nur mal reingeschnuppert, einfach auf das + drücken und das Beispiel von Byte09 reinkopieren inkl. setstates (war mir auch nicht bewusst das das geht).

Die Funktion steht dann in MSwitch 'cmd1' drinnen.

Wenn ich aber das Device aufrufe bekomme ich folgenden Fehler angezeigt:


fhem?detail=maketxt line 321:
Uncaught SyntaxError: Unexpected token )



das ist ein fehler den ich gerade überhaupt nicht einordnen oder nachvollziehen kann ( auf 3 systemen nicht ) , was meinst du mit 'aufrufen' ? Nur die detailansicht des devices aufrufen ... und dann Fehler im Frontend ?

mit welchem Browser arbeitest du ?

gruss Byte09


TomLee

Zitat von: Byte09 am 15 Juli 2019, 17:36:35

das ist ein fehler den ich gerade überhaupt nicht einordnen oder nachvollziehen kann ( auf 3 systemen nicht ) , was meinst du mit 'aufrufen' ? Nur die detailansicht des devices aufrufen ... und dann Fehler im Frontend ?

mit welchem Browser arbeitest du ?

gruss Byte09

Kann ich jetzt nachvollziehen  :P

Genau, nur aufrufen der Detailansicht oder aktualisieren der Seite.

Der Fehler kommt nur auf dem Tablet (Android) mit dem Standard-Browser der sich "Internet" schimpft. Mit allen anderen, ob  Tablet oder PC klappt alles einwandfrei.


Byte09

Zitat von: TomLee am 15 Juli 2019, 19:48:55
Kann ich jetzt nachvollziehen  [emoji14]

Genau, nur aufrufen der Detailansicht oder aktualisieren der Seite.

Der Fehler kommt nur auf dem Tablet (Android) mit dem Standard-Browser der sich "Internet" schimpft. Mit allen anderen, ob  Tablet oder PC klappt alles einwandfrei.
Danke, ich schaue mir das morgen mal an.

grussByte09

Gesendet von meinem ELE-L29 mit Tapatalk


uwirt

Ich habe das jetzt mal versucht. Das erstellen vom Device und so ging ohne Probleme - nur leider wird keine Datei erstellt:
cmd1 ist:

{
my $test = ReadingsVal( 'HM_WDS100', 'temperature', 0 );
$test.=" ";
$test.= ReadingsVal( 'HM_WDC7000', 'temperature', 0 );
open (DATEI, ">/volume1/@appstore/fhem/opt/FHEM/datain38.ini") or die $!;
print DATEI $test;
close (DATEI);
}



Im Logfile steht dazu:


2019-07-15 20:55:00 MSwitch datain38_ini last_activation_by: timer
2019-07-15 20:55:00 MSwitch datain38_ini EVENT: datain38_ini:execute_timer_P3:20:55
2019-07-15 20:55:00 MSwitch datain38_ini EVTFULL: datain38_ini:execute_timer_P3:20:55
2019-07-15 20:55:00 MSwitch datain38_ini EVTPART1: datain38_ini
2019-07-15 20:55:00 MSwitch datain38_ini EVTPART2: execute_timer_P3
2019-07-15 20:55:00 MSwitch datain38_ini EVTPART3: 20:55
2019-07-15 20:55:00 MSwitch datain38_ini last_exec_cmd:   {my $test = ReadingsVal( 'HM_WDS100', 'temperature', 0 );$test.=" ";$test.= ReadingsVal( 'HM_WDC70....
2019-07-15 20:55:00 MSwitch datain38_ini last_cmd: 1

FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

Byte09

da kann ich jetzt auf die schnelle nichts zu sagen . sicher ist , das er entsprechenden befehl ausgeführt hat , und eskeine fehlermeldung gab . auf was für einem system bist du unterwegs ?

habe es eben nochmal probiert, bei mir wird die datei einwandfrei geschrieben .

ich müsste mir das ansonsten morgen noch mal in ruhe anschauen.

gruss Byte09


TomLee

Zitat/volume1/@appstore/fhem/opt/FHEM/datain38.ini

Auch wenn nichts im Log steht, bei mir gabs noch nie ein opt/FHEM mglw. kann man da ansetzen ;)

uwirt

#19
Zitat von: Byte09 am 15 Juli 2019, 21:29:46
... auf was für einem system bist du unterwegs ?

Mein FHEM läuft auf einem Synology NAS


Zitat von: TomLee am 15 Juli 2019, 21:56:06
Auch wenn nichts im Log steht, bei mir gabs noch nie ein opt/FHEM mglw. kann man da ansetzen ;)

Das Unterverzeichnis exisitert auf der NAS tatsächlich. Ich hab auch schon andere Verzeichnisse ausprobiert, aber alles ohne Erfolg. Die Datei wird einfach nicht geschrieben - egal wohin ich sie auch hinsetzen will.
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

Byte09

kannst du bitte mal versuchen auf die fhemeigene filewrite routine umzustellen. ist zwar mal ein schuss ins blaue, aber einen versuch wert.

ersetze mal den code im FreeCmd durch folgenden und versuche ob er die datei dann schreibt.

{
my $test = ReadingsVal( 'Aussenpflanze', 'temperature', 0 );
$test.=" ";
$test.= ReadingsVal( 'Aussenpflanze1', 'temperature', 0 );
my @content;
push( @content, $test );
my $filename = "/opt/fhem/datain39.ini";
my $error = FileWrite($filename, @content);
Log3( "TEST" ,0 , "test ".$error);

}


... datei und readings musst du natürlich an dein system anpassen
gruss Byte09

uwirt

Es sieht folgendermassen aus:


2019-07-17 08:52:00 MSwitch datain38_ini last_activation_by: timer
2019-07-17 08:52:00 MSwitch datain38_ini EVENT: datain38_ini:execute_timer_P3:08:52
2019-07-17 08:52:00 MSwitch datain38_ini EVTFULL: datain38_ini:execute_timer_P3:08:52
2019-07-17 08:52:00 MSwitch datain38_ini EVTPART1: datain38_ini
2019-07-17 08:52:00 MSwitch datain38_ini EVTPART2: execute_timer_P3
2019-07-17 08:52:00 MSwitch datain38_ini EVTPART3: 08:52
2019-07-17 08:52:00 MSwitch datain38_ini last_exec_cmd:   {my $test = ReadingsVal( 'HM_WDS100', 'temperature', 0 );$test.=" ";$test.= ReadingsVal( 'HM_WDC70....
2019-07-17 08:52:00 MSwitch datain38_ini last_cmd: 1


Leider wird immer noch keine Datei geschrieben. Gibt es ein Logfile mit den Details? Ich habe Debug im MSwitch auf 4 gestellt.

Was meinst du mit:
Zitat von: Byte09 am 16 Juli 2019, 20:07:55
kannst du bitte mal versuchen auf die fhemeigene filewrite routine umzustellen. ist zwar mal ein schuss ins blaue, aber einen versuch wert.
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

Byte09

Zitat von: uwirt am 17 Juli 2019, 08:55:40
Es sieht folgendermassen aus:


2019-07-17 08:52:00 MSwitch datain38_ini last_activation_by: timer
2019-07-17 08:52:00 MSwitch datain38_ini EVENT: datain38_ini:execute_timer_P3:08:52
2019-07-17 08:52:00 MSwitch datain38_ini EVTFULL: datain38_ini:execute_timer_P3:08:52
2019-07-17 08:52:00 MSwitch datain38_ini EVTPART1: datain38_ini
2019-07-17 08:52:00 MSwitch datain38_ini EVTPART2: execute_timer_P3
2019-07-17 08:52:00 MSwitch datain38_ini EVTPART3: 08:52
2019-07-17 08:52:00 MSwitch datain38_ini last_exec_cmd:   {my $test = ReadingsVal( 'HM_WDS100', 'temperature', 0 );$test.=" ";$test.= ReadingsVal( 'HM_WDC70....
2019-07-17 08:52:00 MSwitch datain38_ini last_cmd: 1


Leider wird immer noch keine Datei geschrieben. Gibt es ein Logfile mit den Details? Ich habe Debug im MSwitch auf 4 gestellt.

Was meinst du mit:
Der debugmode vom MSwitch ist hier nicht erheblich, da das MSwitch fehlerfrei durchläuft.  den kannst du also wieder auf 1 oder 0 stellen.

die Datei wird aus einem anderen Grund nicht geschrieben. Daher müsstest du den perl Code im MSwitch mal gegen den oben angegebenen ersetzen. Ist ja ähnlich so das du siehst welcher auszutauschen ist.

danach versuch es bitte nochmal.

mit set device exec_cmd_1 in der set list kannst du das MSwitch direkt den Code ausführen lassen und musst nicht warten bis der timer greift.

gruss Byte09

Gesendet von meinem ELE-L29 mit Tapatalk


uwirt

#23
Es funktioniert jetzt mit folgendem code:


{
my $test = ReadingsVal( 'HM_WDS100', 'temperature', 0 );
$test.=" ";
$test.= ReadingsVal( 'HM_WDC7000', 'temperature', 0 );
my @content;
push( @content, $test );
my $filename = "datain39.ini";
my $error = FileWrite($filename, @content);
Log3( "TEST" ,0 , "test ".$error);
}


Es hatte offenbar tatsächlich auch mit dem Pfad zur Datei zu tun.

Weil es ja jetzt mit dem Beispiel oben geht wollte ich mein komplettes Script mit der Speicherung auf dem anderen Pfad ausprobieren:


{
my $test = ReadingsVal( 'HM_WDS100', 'windSpeed', 0 );
$test.=" 0.00 ";
$test.= ReadingsVal( 'HM_WDS100', 'temperature', 0 );
$test.=" ";
$test.= ReadingsVal( 'HM_WDS100', 'humidity', 0 );
$test.=" ";
$test.= ReadingsVal( 'HM_WDC7000', 'airpress', 0 );
$test.=" ";
$test.= ReadingsVal( 'HM_WDS100', 'rain', 0 );
$test.=" ";
$test.= ReadingsVal( 'HM_WDS100', 'windDirection', 0 );
$test.=" 0.0 ";
$test.= ReadingsVal( 'HM_WDC7000', 'temperature', 0 );
$test.=" ";
$test.= ReadingsVal( 'HM_WDC7000', 'humidity', 0 );
$test.=" ";
$test.= ReadingsVal( 'HM_WDS100', 'sunshine', 0 );
$test.=" ";
$test.= ReadingsVal( 'HM_WDS100', 'brightness', 0 );
my @content;
push( @content, $test );
my $filename = "/volume1/web/home/consolewdfiles/datain39.ini";
my $error = FileWrite($filename, @content);
Log3( "TEST" ,0 , "test ".$error);
}


Das geht leider nicht. Wie kann ich einen absoluten Pfad definieren? Scheinbar hat FHEM ein Problem mit Perl und Pfaden.
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

Byte09

Ich gehe jetzt einfach mal davon aus, das fhem einfach nicht die erforderlichen Rechte hat in diesem Ordner zu schreiben. Ich schaue mir das heute abend nochmal an.

gruss Byte09

Gesendet von meinem ELE-L29 mit Tapatalk


uwirt

Ich kriege das irgendwie nicht hin. Ich kann die datain39.ini datei in irgendein FHEM unterverzweichnis kopieren - das funktioniert. Nur sobald ich diese Datei in /volume1/web/home/consolewdfiles kopieren möchte wird keine Datei erstellt Ich dachte ich hätte mit



chmod 777 -R /volume1/web/home/consolewdfiles



allgemeine Lese- und Schreibrechte vergeben.

das consolewdfiles unterverzeichnis sieht folgendermassen aus:


drwxrwxrwx 1 http http 694 Jul 13 20:41 consolewdfiles
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

uwirt

Das Thema hat sich erledigt - die Schreibberechtigung in einem übergeordneten Verzeichnis hat gefehlt.
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya