Ich habe eine Kalenderanzeige aus HTTPMOD. Jede Änderung des Kalenders führt zu einem modify
modify JohannPlan UntisCalview:,,...
modify JohannPlan UntisCalview:,,...
modify JohannPlan UntisCalview:,,...
modify JohannPlan UntisCalview:,,...
und ich muss dann immer Save-Config drücken, was ich gern vermeiden möchte (alles automatisch sichern will ich auch nicht). Weiß jemand, wie ich das abstellen kann?
Zu den Geräten. Ich habe ein UntisCalview
Internals:
DEF UntisCal next
INTERVAL 43200
KALENDER UntisCal
NAME UntisCalview
NR 204
NTFY_ORDER 50-UntisCalview
STATE t: 38 td: 0 tm: 8
TYPE CALVIEW
READINGS:
2018-12-16 17:14:57 c-term 38
...zig weitere Einträge...
Attributes:
event-on-change-reading .*
group intern
modes next
userReadings gesamt
und das Auslesen erfolgt durch
Internals:
DEF ical file ./log/HCG.ics
NAME UntisCal
NOTIFYDEV global
NR 203
NTFY_ORDER 50-UntisCal
STATE triggered
TYPE Calendar
READINGS:
2018-12-16 17:14:56 lastUpdate 2018-12-16 17:14:56
2018-11-20 14:07:04 modeAlarm
2018-12-14 14:40:00 modeAlarmOrStart
2018-11-20 14:07:04 modeAlarmed
2018-12-14 15:14:56 modeChanged
2018-12-15 22:14:56 modeEnd
2018-12-14 15:14:56 modeEnded
2018-12-14 14:40:00 modeStart
2018-12-14 14:14:56 modeStarted
2018-12-16 17:14:56 modeUpcoming 84130214435;89574214605;86521514715;83669414407;86521614715;89232715118;86042614657;83669714407;85900814635;85527314605;86042314657;83669614407;84614814484;86340414697;89232515118;89595514635;89232615118;84130414435;86042514657;86042214657;90135715282;86042414657;84614714484;85527514605;85402814585;84130614435;86042714657;83669314407;84130314435;85402914585;86340614697;86521414715;89599014657;85527414605;83669514407;84130514435;85527614605;86340514697
2018-12-16 17:14:56 nextUpdate 2018-12-16 18:14:56
2018-12-16 17:15:37 nextWakeup 2018-12-16 18:14:56
2018-12-16 17:14:56 state triggered
Attributes:
group intern
wobei die Datei geschrieben wird von
Internals:
DEF UntisCalview:.* {Plananzeige()}
NAME Plan
NOTIFYDEV UntisCalview
NR 206
NTFY_ORDER 50-Plan
REGEXP UntisCalview:.*
STATE 2018-12-16 17:14:57
TRIGGERTIME 1544976897.32742
TYPE notify
READINGS:
2018-12-02 21:14:46 state active
Attributes:
group intern
sowie dem Kommando
sub Plananzeige() {
my $cal = "UntisCalview"; #### Name des Calview-Device
my @daten; ### Hash, speichert Eintraege aus Calview (aber dort nur Index, nicht ganzen Inhalt)
my $anzahl = (ReadingsVal($cal,"c-term",0)); ### Anzahl der Eintraege
my $timeshort = ""; ### Zeiten von '08:00 - 08:45' bis '13:55 - 14:40'
my $btime = ""; ### Startzeit
my $weekday = ""; ### 1 (Montag) bis 5 (Freitag)
my $j = ""; ### Laufindizes
my $jlang = "";
my $zeile = ""; ### Laufindex
### Schleife ueber alle Termine, um sie angerdnet in den zweidimensionalen hash zu schreiben
for ($j =1; $j <=$anzahl; $j++)
### 3stellige Formatierung für t_ ###
{
if
($j <=9)
{$jlang = "00".$j}
else
{$jlang = "0".$j};
$weekday = ReadingsVal($cal,"t_".$jlang."_weekday",0);
$btime = ReadingsVal($cal,"t_".$jlang."_btime",0);
### Zuordnung der Anzeigezeilen ###
### Beispiel Dienstag = Spalte 2 / 13:05 = Zeile 6
if ($btime eq "08:00")
{
$zeile = 1;
}
elsif ($btime eq "08:50")
{
$zeile = 2;
}
elsif ($btime eq "09:40")
{
$zeile = 3;
}
elsif ($btime eq "10:40")
{
$zeile = 4;
}
elsif ($btime eq "12:15")
{
$zeile = 5;
}
elsif ($btime eq "13:05")
{
$zeile = 6;
}
elsif ($btime eq "13:55")
{
$zeile = 7;
}
else
{
$zeile = 0;
}
$daten[$weekday][$zeile]= $jlang;
};
### Zeilen aufbauen, beginnen mit Ueberschrift
my $zeilen = $cal.":<Zeit>,<Montag>,<Dienstag>,<Mittwoch>,<Donnerstag>,<Freitag>";
$zeilen = $zeilen.Einzelzeileholen(\@daten, $cal, ":\<8:00-8:45\>", 1);
$zeilen = $zeilen.Einzelzeileholen(\@daten, $cal, ":\<8:50-9:35\>", 2);
$zeilen = $zeilen.Einzelzeileholen(\@daten, $cal, ":\<9:40-10:25\>", 3);
$zeilen = $zeilen.Einzelzeileholen(\@daten, $cal, ":\<10:40-11:25\>", 4);
$zeilen = $zeilen.Einzelzeileholen(\@daten, $cal, ":\<12:15-13:00\>", 5);
$zeilen = $zeilen.Einzelzeileholen(\@daten, $cal, ":\<13:05-13:50\>", 6);
$zeilen = $zeilen.Einzelzeileholen(\@daten, $cal, ":\<13:55-14:40\>", 7);
### Definieren der ReadingsGroup ########
#Log 1, $zeilen;
fhem( "defmod JohannPlan readingsGroup ".$zeilen);
fhem( "save");
}
Wer löst denn eigentlich das modify aus?!
attr global stacktrace 1
sollte helfen ;)
Hat nix gebracht - ich habe da keine Warnings.
ZitatWer löst denn eigentlich das modify aus?!
Vielleicht du selbst bzw. das defmod am Ende der Sub...
Also die Zeile:
fhem( "defmod JohannPlan readingsGroup ".$zeilen);
Gruß, Joachim
Das modify in der Log kommt sicher von der Funktion, aber danach gibt es ein fhem("save"). Das sollte nicht dazu führen, dass er "dann immer Save-Config drücken muss"
Ich vermute, beide Sachen haben miteinander nichts zu tun: etwas anderes, dass die Config ändert?
ich fange jetzt mal an die Funktionenaufrufe mit Fehlern zu versehen - um dann zu schaue , ob sich das Problem so einkreisen lässt.
es ist in der Tat diese Stelle hier:
fhem( "defmod JohannPlan readingsGroup ".$zeilen);
fhem("save");
Der erste Befehl wird ausgeführt, der zweite nicht. Ich stehe auf dem Schlauch.
Gesendet von iPad mit Tapatalk Pro
Da fehlt vermutlich das Attribut autoSave (oder so)...
Wenn das nicht gesetzt ist, geht glaube ich der save-Befehl nicht von Programmen/Modulen aus sondern nur über die Oberfläche...
Wobei ich so automatische save nicht naja finde ;)
Gruß, Joachim
Attribut autosave im Global Device.
Mit allen Risiken!!!