Readings aus Datei erzeugen

Begonnen von semko, 09 Mai 2019, 09:57:38

Vorheriges Thema - Nächstes Thema

semko

Ich habe hier eine Textdatei mit Messwerten, die jede Minute neu erstellt wird. Sie besteht nur aus einer Zeile mit rund 50 Messwerten, die durch Leerzeichen getrennt sind. Hierfür würde ich gerne ein Device anlegen und die Messwerte aus der Datei in Readings einlesen. Ist das so überhaupt machbar und wie müsste ich das anstellen?

Otto123

Hi semko,

nur Ideen/Anregung
Eine Perl Routine basteln
es gibt eine Funktion FileRead
Mit split kannst Du die Zeile in ein Array packen
Die Werte mit setreading in ein Gerät (Dummy) schreiben.
inotify reagiert auf Dateiänderungen im System, ich  glaube es gibt dafür mittlerweile auch ein FHEM Modul.

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

Byte09

Zitat von: semko am 09 Mai 2019, 09:57:38
Ich habe hier eine Textdatei mit Messwerten, die jede Minute neu erstellt wird. Sie besteht nur aus einer Zeile mit rund 50 Messwerten, die durch Leerzeichen getrennt sind. Hierfür würde ich gerne ein Device anlegen und die Messwerte aus der Datei in Readings einlesen. Ist das so überhaupt machbar und wie müsste ich das anstellen?
Kannst du mir bitte mal eine beispieldatei zeigen? Stehen da nur Werte drinnen oder auch potentielle readingnamen?

gruss Byte09

Gesendet von meinem ELE-L29 mit Tapatalk


semko

Zitat von: Byte09 am 09 Mai 2019, 16:02:21
Kannst du mir bitte mal eine beispieldatei zeigen? Stehen da nur Werte drinnen oder auch potentielle readingnamen?
Gerne. Es gibt keine Bezeichnungen der Werte, diese stehen als reine Zahlen oder Maßeinheiten durch Leerzeichen getrennt. Natürlich gibt es extern eine Aufstellung, was die einzelnen Spalten beinhalten.

09.05.19 17:50:19 17.2 58 8.9 0.1 1.1 180 0.0 2.7 987.3 S 0 km/h C hPa mm 33.5 +0.2 15.9 203.7 4.5 22.6 35 17.2 -0.8 20.6 14:54 9.6 06:17 7.4 09:06 13.3 08:56 987.4 10:45 984.7 00:23 1.9.4 1099 2.5 17.2 18.0 0 0.00 0 206 0.0 24 1 0 SSW 1038 m 16.9 0.0 365 0


Byte09

#4
Zitat von: semko am 09 Mai 2019, 18:00:28
Gerne. Es gibt keine Bezeichnungen der Werte, diese stehen als reine Zahlen oder Maßeinheiten durch Leerzeichen getrennt. Natürlich gibt es extern eine Aufstellung, was die einzelnen Spalten beinhalten.

09.05.19 17:50:19 17.2 58 8.9 0.1 1.1 180 0.0 2.7 987.3 S 0 km/h C hPa mm 33.5 +0.2 15.9 203.7 4.5 22.6 35 17.2 -0.8 20.6 14:54 9.6 06:17 7.4 09:06 13.3 08:56 987.4 10:45 984.7 00:23 1.9.4 1099 2.5 17.2 18.0 0 0.00 0 206 0.0 24 1 0 SSW 1038 m 16.9 0.0 365 0

ok , danke. Ich kanne dir da mal was bauen, schaffe es aber erst morgen abend - leider etwas spät jetzt . Solltest  dann aber auch versuchen dich reinzuarbeiten ( entprechende kommentare füge ich ein )

ich komme mit der datei noch nicht ganz klar . du sagst aller werte sind durch leerzeichen getrennt ? Wozu gehören denn dann ( die in diesem Fall einstehenden ) Masseinheiten ?


Das fhem entsprechende Rechte haben muss, diese Datei zumindest zu lesen ist klar denke ich ?!

gruss Byte09

semko

@Byte09
Vielen Dank für dein Hilfsangebot!
Die Datei ist etwas ungewöhnlich aufgebaut. Die Maßeinheiten können zu mehreren Wertefeldern gehören. So ist z.B. die Angabe in Feld 17 (mm) zuständig für die Werte in den Feldern 9,10 und 48.

Es würde mir wahrscheinlich schon helfen, wenn du mir ein Beispiel für die ersten paar Zellen gibst, den Rest würde ich dann selbst versuchen.

Byte09

#6
Zitat von: semko am 09 Mai 2019, 23:38:18
@Byte09
Vielen Dank für dein Hilfsangebot!
Die Datei ist etwas ungewöhnlich aufgebaut. Die Maßeinheiten können zu mehreren Wertefeldern gehören. So ist z.B. die Angabe in Feld 17 (mm) zuständig für die Werte in den Feldern 9,10 und 48.

Es würde mir wahrscheinlich schon helfen, wenn du mir ein Beispiel für die ersten paar Zellen gibst, den Rest würde ich dann selbst versuchen.

im anhang die rawdefinition eines MSwitches . Dieses liest die Datei ein und erstellt in sich selbst durchnumerierte readings mit entsprechendem Inhalt.

$filename muss an deine datei angepasst werden. ( nach erstellen des Devices im webinterface)

Die Readings liessen sich auch anders benennen , dafür bräuchte ich aber entsprechende Zuordnung.
In diesem Beispiel wird die Datei alle 5 Minuten neu eingelesen.
gruss Byte09

defmod fileread MSwitch
attr fileread MSwitch_Comments 1
attr fileread MSwitch_Debug 0
attr fileread MSwitch_Delete_Delays 1
attr fileread MSwitch_Expert 1
attr fileread MSwitch_Extensions 0
attr fileread MSwitch_Help 1
attr fileread MSwitch_Ignore_Types .*
attr fileread MSwitch_Include_Devicecmds 1
attr fileread MSwitch_Include_MSwitchcmds 0
attr fileread MSwitch_Include_Webcmds 0
attr fileread MSwitch_Inforoom MSwitch
attr fileread MSwitch_Lock_Quickedit 1
attr fileread MSwitch_Mode Notify
attr fileread eventMap /exec_cmd_1:read_file/exec_cmd_1 ID 1:clear_readings/
attr fileread room 02_Test
attr fileread webCmd read_file:clear_readings

setstate fileread active
setstate fileread 2019-05-10 05:30:57 .Device_Affected FreeCmd-AbsCmd1,FreeCmd-AbsCmd2
setstate fileread 2019-05-10 05:41:50 .Device_Affected_Details FreeCmd-AbsCmd1#[NF]cmd#[NF]cmd#[NF]{#[nl]#[nl]my#[sp]$filename#[sp]=#[sp]"/opt/fhem/test.txt"#[se]#[nl]#[nl]my#[sp]($error#[ko]#[sp]@content)#[sp]=#[sp]FileRead($filename)#[se]#[nl]Log3(#[sp]'TEST'#[ko]#[sp]5#[ko]#[sp]$error#[sp])#[se]#[nl]my#[sp]@readings#[sp]=#[sp]split#[sp]/#[sp]/#[ko]#[sp]$content[0]#[se]#[nl]my#[sp]$x=0#[se]#[nl]foreach#[sp](@readings)#[sp]#[nl]#[sp]{#[nl]#[sp]$x++#[se]#[nl]#[sp]my#[sp]$y#[sp]=#[sp]sprintf("%02d"#[ko]$x)#[se]#[nl]#[sp]fhem("setreading#[sp]$SELF#[sp]Reading_$y#[sp]$_")#[se]#[nl]#[sp]}#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]0#[NF]kommentar#[sp]#[dp]#[sp]filename#[sp]enthaelt#[sp]den#[sp]pfad#[sp]und#[sp]namen#[sp]der#[sp]einzulesenden#[sp]datei#[NF]0#[NF]0#[NF]1#[ND]FreeCmd-AbsCmd2#[NF]cmd#[NF]cmd#[NF]{#[nl]fhem("deletereading#[sp]$SELF#[sp]Reading_.*")#[se]#[nl]}#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]1#[NF]#[NF]0#[NF]0#[NF]1
setstate fileread 2019-05-10 06:12:03 .Device_Events no_trigger
setstate fileread 2019-05-10 05:11:41 .First_init done
setstate fileread 2019-05-10 05:11:41 .Trigger_cmd_off no_trigger
setstate fileread 2019-05-10 05:11:41 .Trigger_cmd_on no_trigger
setstate fileread 2019-05-10 06:12:38 .Trigger_condition
setstate fileread 2019-05-10 05:11:41 .Trigger_off no_trigger
setstate fileread 2019-05-10 05:11:41 .Trigger_on no_trigger
setstate fileread 2019-05-10 06:12:38 .Trigger_time on~off~ononly[00#[dp]05*00#[dp]01-23#[dp]59]~offonly~onoffonly
setstate fileread 2019-05-10 05:11:41 .V_Check V2.00
setstate fileread 2019-05-10 06:11:02 Reading_01 09.05.19
setstate fileread 2019-05-10 06:11:02 Reading_02 17:50:19
setstate fileread 2019-05-10 06:11:02 Reading_03 17.2
setstate fileread 2019-05-10 06:11:02 Reading_04 58
setstate fileread 2019-05-10 06:11:02 Reading_05 8.9
setstate fileread 2019-05-10 06:11:02 Reading_06 0.1
setstate fileread 2019-05-10 06:11:02 Reading_07 1.1
setstate fileread 2019-05-10 06:11:02 Reading_08 180
setstate fileread 2019-05-10 06:11:02 Reading_09 0.0
setstate fileread 2019-05-10 06:11:02 Reading_10 2.7
setstate fileread 2019-05-10 06:11:02 Reading_11 987.3
setstate fileread 2019-05-10 06:11:02 Reading_12 S
setstate fileread 2019-05-10 06:11:02 Reading_13 0
setstate fileread 2019-05-10 06:11:02 Reading_14 km/h
setstate fileread 2019-05-10 06:11:02 Reading_15 C
setstate fileread 2019-05-10 06:11:02 Reading_16 hPa
setstate fileread 2019-05-10 06:11:02 Reading_17 mm
setstate fileread 2019-05-10 06:11:02 Reading_18 33.5
setstate fileread 2019-05-10 06:11:02 Reading_19 +0.2
setstate fileread 2019-05-10 06:11:02 Reading_20 15.9
setstate fileread 2019-05-10 06:11:02 Reading_21 203.7
setstate fileread 2019-05-10 06:11:02 Reading_22 4.5
setstate fileread 2019-05-10 06:11:02 Reading_23 22.6
setstate fileread 2019-05-10 06:11:02 Reading_24 35
setstate fileread 2019-05-10 06:11:02 Reading_25 17.2
setstate fileread 2019-05-10 06:11:02 Reading_26 -0.8
setstate fileread 2019-05-10 06:11:02 Reading_27 20.6
setstate fileread 2019-05-10 06:11:02 Reading_28 14:54
setstate fileread 2019-05-10 06:11:02 Reading_29 9.6
setstate fileread 2019-05-10 06:11:02 Reading_30 06:17
setstate fileread 2019-05-10 06:11:02 Reading_31 7.4
setstate fileread 2019-05-10 06:11:02 Reading_32 09:06
setstate fileread 2019-05-10 06:11:02 Reading_33 13.3
setstate fileread 2019-05-10 06:11:02 Reading_34 08:56
setstate fileread 2019-05-10 06:11:02 Reading_35 987.4
setstate fileread 2019-05-10 06:11:02 Reading_36 10:45
setstate fileread 2019-05-10 06:11:02 Reading_37 984.7
setstate fileread 2019-05-10 06:11:02 Reading_38 00:23
setstate fileread 2019-05-10 06:11:02 Reading_39 1.9.4
setstate fileread 2019-05-10 06:11:02 Reading_40 1099
setstate fileread 2019-05-10 06:11:02 Reading_41 2.5
setstate fileread 2019-05-10 06:11:02 Reading_42 17.2
setstate fileread 2019-05-10 06:11:02 Reading_43 18.0
setstate fileread 2019-05-10 06:11:02 Reading_44 0
setstate fileread 2019-05-10 06:11:02 Reading_45 0.00
setstate fileread 2019-05-10 06:11:02 Reading_46 0
setstate fileread 2019-05-10 06:11:02 Reading_47 206
setstate fileread 2019-05-10 06:11:02 Reading_48 0.0
setstate fileread 2019-05-10 06:11:02 Reading_49 24
setstate fileread 2019-05-10 06:11:02 Reading_50 1
setstate fileread 2019-05-10 06:11:02 Reading_51 0
setstate fileread 2019-05-10 06:11:02 Reading_52 SSW
setstate fileread 2019-05-10 06:11:02 Reading_53 1038
setstate fileread 2019-05-10 06:11:02 Reading_54 m
setstate fileread 2019-05-10 06:11:02 Reading_55 16.9
setstate fileread 2019-05-10 06:11:02 Reading_56 0.0
setstate fileread 2019-05-10 06:11:02 Reading_57 365
setstate fileread 2019-05-10 06:11:02 Reading_58 0
setstate fileread 2019-05-10 06:12:38 Trigger_device no_trigger
setstate fileread 2019-05-10 05:11:41 Trigger_log off
setstate fileread 2019-05-10 06:11:02 last_cmd 1
setstate fileread 2019-05-10 06:11:02 last_exec_cmd   {my $filename = "/opt/fhem/test.txt";;my ($error, @content) = FileRead($filename);;Log3( 'TEST', 5, ....
setstate fileread 2019-05-10 06:12:38 state active


semko

Super, das hat mir sehr geholfen. Ein ganz großes Dankeschön dafür.

sparkiie

Hier mal ein Beispiel wie ich Werte eines SDM630 Stromzähler aus einer txt Datei per UserReadings auslese. Der Wert ist der erste in einer mit Leerzeichen getrennten Auflistung.

SDM630_Saldiert {(split(" ",qx(cat /opt/fhem/solar/tmp/ACTsdm630g.txt)))[0]},

semko

Zitat von: Byte09 am 10 Mai 2019, 05:45:07

Die Readings liessen sich auch anders benennen , dafür bräuchte ich aber entsprechende Zuordnung.
In diesem Beispiel wird die Datei alle 5 Minuten neu eingelesen.


Da die durchnummerierten Readings für das Lesen nicht gerade optimal sind, wäre es toll, wenn ich aussagekräftige Bezeichnungen für die Readings hätte. Hier ist die Liste der Feldbezeichnungen:

01 Datum
02 Zeit
03 TempAussen
04 FeuchteAussen
05 Taupunkt
06 WindDschn
07 WindAkt
08 WindRichtung
09 RegenAkt
10 RegenHeute
11 Druck
12 WindRichtgText
13 WindBeaufort
14 WindEinh
15 TempEinh
16 LuftdrEinh
17 RegenEinh
18 WindRun
19 DruckTrend
20 RegenMonat
21 RegenJahr
22 RegenGestern
23 TempInnen
24 FeuchteInnen
25 WindChill
26 TempTrend
27 TempMaxHeute
28 TempMaxZeit
29 TempMinHeute
30 TempMinZeit
31 WindMaxHeute
32 WindMaxZeit
33 WindSpitzeHeute
34 WindSpitzeZeit
35 DruckMaxHeute
36 DruckMaxZeit
37 DruckMinHeute
38 DruckMinZeit
39 CumulusVers
40 CumulusBuild
41 WindGustMax10Min
42 HeatIndex
43 Humidex
44 UVIndex
45 EvapoToday
46 SolarRadiation
47 WindRichtg10Min
48 Regen1hr
49 ForecastNr
50 Daylight
51 SensorLost
52 WindRichtgDschnTxt
53 Wolkenbasis
54 WolkenbEinh
55 TempGefuehlt
56 SonnenStd
57 SolarRadMax
58 Sonnig


Ich wäre dir sehr dankbar, wenn du das für mich anpassen könntest.

Und noch eine Frage. Das Triggern geschieht jetzt zeitgesteuert. Wäre es auch möglich, den Ablauf immer dann zu starten, wenn sich die Datei geändert hat?

TomLee

Und noch eine Frage. Das Triggern geschieht jetzt zeitgesteuert. Wäre es auch möglich, den Ablauf immer dann zu starten, wenn sich die Datei geändert hat?

Zitat von: Otto123 am 09 Mai 2019, 10:03:45

.... inotify reagiert auf Dateiänderungen im System, ich  glaube es gibt dafür mittlerweile auch ein FHEM Modul.....

Gruß Otto


Gibts : https://forum.fhem.de/index.php/topic,83538.msg757621.html#msg757621

Gruß

Thomas

Byte09

#11
Zitat von: semko am 16 Juli 2019, 10:23:57
Da die durchnummerierten Readings für das Lesen nicht gerade optimal sind, wäre es toll, wenn ich aussagekräftige Bezeichnungen für die Readings hätte. Hier ist die Liste der Feldbezeichnungen:

01 Datum
02 Zeit
03 TempAussen
04 FeuchteAussen
05 Taupunkt
06 WindDschn
07 WindAkt
08 WindRichtung
09 RegenAkt
10 RegenHeute
11 Druck
12 WindRichtgText
13 WindBeaufort
14 WindEinh
15 TempEinh
16 LuftdrEinh
17 RegenEinh
18 WindRun
19 DruckTrend
20 RegenMonat
21 RegenJahr
22 RegenGestern
23 TempInnen
24 FeuchteInnen
25 WindChill
26 TempTrend
27 TempMaxHeute
28 TempMaxZeit
29 TempMinHeute
30 TempMinZeit
31 WindMaxHeute
32 WindMaxZeit
33 WindSpitzeHeute
34 WindSpitzeZeit
35 DruckMaxHeute
36 DruckMaxZeit
37 DruckMinHeute
38 DruckMinZeit
39 CumulusVers
40 CumulusBuild
41 WindGustMax10Min
42 HeatIndex
43 Humidex
44 UVIndex
45 EvapoToday
46 SolarRadiation
47 WindRichtg10Min
48 Regen1hr
49 ForecastNr
50 Daylight
51 SensorLost
52 WindRichtgDschnTxt
53 Wolkenbasis
54 WolkenbEinh
55 TempGefuehlt
56 SonnenStd
57 SolarRadMax
58 Sonnig


Ich wäre dir sehr dankbar, wenn du das für mich anpassen könntest.

Und noch eine Frage. Das Triggern geschieht jetzt zeitgesteuert. Wäre es auch möglich, den Ablauf immer dann zu starten, wenn sich die Datei geändert hat?

möchte ich nicht, zuviel schreibkram.  ;) ... zeige dir aber gerne wie es geht.

ersetze den code im FreeCmd1 gegen den folgenden :

{
my @readingnames =qw(Datum Zeit TempAussen);

my $filename = "/opt/fhem/test.txt";
my ($error, @content) = FileRead($filename);
Log3( 'TEST', 5, $error );
my @readings = split / /, $content[0];
my $x=0;

foreach (@readings)
{
my $y = sprintf("%02d",$x);
my $readingname = $y."_Reading_$y";
$readingname = $y."_".$readingnames[$x] if defined $readingnames[$x];
fhem("setreading $SELF $readingname $_");
$x++;
}
}


die erste Zeile musst du mit den Readingnamen anpassen.
(my @readingnames =qw(Datum Zeit TempAussen name name name name . . . );


diese zeile
my $filename = "/opt/fhem/test.txt";
bitte auch wieder an deine gegebenheiten anpassen.


im zweiten Freecmd ersetzt du den code gegen folgenden:
{
fhem("deletereading $SELF .._.* ");
}


fertig und es sollte hoffentlich funktionieren ;-) und wie im Anhang aussehen.
Vorausgesetzt , die Werte in der Datei sind immer in derselben Reihenfolge, wie die Readingnamen die du in besagter Zeile definierst !  . aber davon ist wohl auszugehen.

wenn du inotify entsprechend eingerichtet hast kann MSwitch selbstverständlich auf events von diesem Device reagieren ( anstatt der Zeitangaben ).

gruss Byte09

semko

Vielen Dank, das sieht jetzt gut aus.

inotify habe ich installiert und eingerichtet. Laut Eventmonitor wird bei Änderung der Datei getriggert. Den Namen des inotify device habe ich in MSwitch als Trigger device eingetragen. Der Eventmonitor zeigt auch, dass MSwitch reagiert, allerdings werden die cmds anscheinend nicht ausgeführt, es werden also keine Reagimgs verändert. Was übersehe ich?

2019-07-17 18:01:47 inotify MXinotify lastEventFile: /opt/fhem/test.txt
2019-07-17 18:01:47 inotify MXinotify lastEventMask: IN_MODIFY
2019-07-17 18:01:47 MSwitch CumulusMX last_activation_by: event
2019-07-17 18:01:47 MSwitch CumulusMX EVENT: lastEventFile:/opt/fhem/test.txt
2019-07-17 18:01:47 MSwitch CumulusMX EVTFULL: MXinotify:lastEventFile:/opt/fhem/test.txt
2019-07-17 18:01:47 MSwitch CumulusMX EVTPART1: MXinotify
2019-07-17 18:01:47 MSwitch CumulusMX EVTPART2: lastEventFile
2019-07-17 18:01:47 MSwitch CumulusMX EVTPART3: /opt/fhem/test.txt
2019-07-17 18:01:47 MSwitch CumulusMX last_event: lastEventFile:/opt/fhem/test.txt
2019-07-17 18:01:47 MSwitch CumulusMX active
2019-07-17 18:01:47 MSwitch CumulusMX EVENT: lastEventMask:IN_MODIFY
2019-07-17 18:01:47 MSwitch CumulusMX EVTFULL: MXinotify:lastEventMask:IN_MODIFY
2019-07-17 18:01:47 MSwitch CumulusMX EVTPART1: MXinotify
2019-07-17 18:01:47 MSwitch CumulusMX EVTPART2: lastEventMask
2019-07-17 18:01:47 MSwitch CumulusMX EVTPART3: IN_MODIFY
2019-07-17 18:01:47 MSwitch CumulusMX last_event: lastEventMask:IN_MODIFY

Byte09

#13
Zitat von: semko am 17 Juli 2019, 18:05:59
Vielen Dank, das sieht jetzt gut aus.

inotify habe ich installiert und eingerichtet. Laut Eventmonitor wird bei Änderung der Datei getriggert. Den Namen des inotify device habe ich in MSwitch als Trigger device eingetragen. Der Eventmonitor zeigt auch, dass MSwitch reagiert, allerdings werden die cmds anscheinend nicht ausgeführt, es werden also keine Reagimgs verändert. Was übersehe ich?

2019-07-17 18:01:47 inotify MXinotify lastEventFile: /opt/fhem/test.txt
2019-07-17 18:01:47 inotify MXinotify lastEventMask: IN_MODIFY
2019-07-17 18:01:47 MSwitch CumulusMX last_activation_by: event
2019-07-17 18:01:47 MSwitch CumulusMX EVENT: lastEventFile:/opt/fhem/test.txt
2019-07-17 18:01:47 MSwitch CumulusMX EVTFULL: MXinotify:lastEventFile:/opt/fhem/test.txt
2019-07-17 18:01:47 MSwitch CumulusMX EVTPART1: MXinotify
2019-07-17 18:01:47 MSwitch CumulusMX EVTPART2: lastEventFile
2019-07-17 18:01:47 MSwitch CumulusMX EVTPART3: /opt/fhem/test.txt
2019-07-17 18:01:47 MSwitch CumulusMX last_event: lastEventFile:/opt/fhem/test.txt
2019-07-17 18:01:47 MSwitch CumulusMX active
2019-07-17 18:01:47 MSwitch CumulusMX EVENT: lastEventMask:IN_MODIFY
2019-07-17 18:01:47 MSwitch CumulusMX EVTFULL: MXinotify:lastEventMask:IN_MODIFY
2019-07-17 18:01:47 MSwitch CumulusMX EVTPART1: MXinotify
2019-07-17 18:01:47 MSwitch CumulusMX EVTPART2: lastEventMask
2019-07-17 18:01:47 MSwitch CumulusMX EVTPART3: IN_MODIFY
2019-07-17 18:01:47 MSwitch CumulusMX last_event: lastEventMask:IN_MODIFY


kann ich so nicht wirklich sagen . ich muss mir erstmal anschauen as inotify wirklich für event liefert ( erst installieren ) .

und ich müsste mir die config deines mswitches mal anschauen . geh dafür im device mal bitte auf get get_support_info und poste die angezeigte datei , ich schaue dann drüber.

gruss Byte09

PS: ich bekomme das inotify leider erst gar nicht ans laufen  >:(   ..... reagiert bei mir schlicht auf gar nichts

semko

@Byte09

Hier ist die Support_info:

Modulversion: 2.30
Datenstruktur: V2.00

----- Devicename -----
CumulusMX

----- Attribute -----
Attribut room: 02_Test
Attribut MSwitch_Help: 1
Attribut webCmd: read_file:clear_readings
Attribut MSwitch_Mode: Notify
Attribut MSwitch_Include_Webcmds: 0
Attribut MSwitch_Extensions: 0
Attribut MSwitch_Include_Devicecmds: 1
Attribut MSwitch_Include_MSwitchcmds: 0
Attribut MSwitch_Expert: 0
Attribut MSwitch_Inforoom: MSwitch
Attribut MSwitch_Lock_Quickedit: 1
Attribut MSwitch_Delete_Delays: 1
Attribut MSwitch_Ignore_Types: notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
Attribut stateFormat: 00_Datum 01_Zeit - T:02_TempAussen°C H:03_FeuchteAussen% R:08_RegenAkt mm R1:47_Regen1hr mm Rd:09_RegenHeute mm
Attribut MSwitch_Debug: 0
Attribut verbose: 2

----- Trigger -----
Trigger device:  MXinotify
Trigger time:
Trigger condition:
Trigger Device Global Whitelist: undef

----- Trigger Details -----
Trigger cmd1: no_trigger
Trigger cmd2: no_trigger
Trigger cmd3: no_trigger
Trigger cmd4: no_trigger

----- Device Actions -----

Device: FreeCmd-AbsCmd1
cmd1: cmd {
my @readingnames =qw(Datum Zeit TempAussen FeuchteAussen Taupunkt WindDschn WindAkt WindRichtung RegenAkt RegenHeute Druck WindRichtgText WindBeaufort WindEinh TempEinh LuftdrEinh RegenEinh WindRun DruckTrend RegenMonat RegenJahr RegenGestern TempInnen FeuchteInnen WindChill TempTrend TempMaxHeute TempMaxZeit TempMinHeute TempMinZeit WindMaxHeute WindMaxZeit WindSpitzeHeute WindSpitzeZeit DruckMaxHeute DruckMaxZeit DruckMinHeute DruckMinZeit CumulusVers CumulusBuild WindGustMax10Min HeatIndex Humidex UVIndex EvapoToday SolarRadiation WindRichtg10Min Regen1hr ForecastNr Daylight SensorLost WindRichtgDschnTxt Wolkenbasis WolkenbEinh TempGefuehlt SonnenStd SolarRadMax Sonnig);

my $filename = "/opt/fhem/test.txt";
my ($error, @content) = FileRead($filename);
Log3( 'TEST', 5, $error );
my @readings = split / /, $content[0];
my $x=0;

foreach (@readings)
{
my $y = sprintf("%02d",$x);
my $readingname = $y."_Reading_$y";
$readingname = $y."_".$readingnames[$x] if defined $readingnames[$x];
fhem("setreading $SELF $readingname $_");
$x++;
}
}
cmd2: cmd {
fhem("deletereading $SELF .._.* ");
}
cmd1 condition:
cmd2 condition:
cmd1 delay: 00:00:00
cmd2 delay: 00:00:00
repeats: 0
repeats delay: 0
priority: 1
id: 0
comment:
cmd1 exit: 0
cmd2 exit: 0