Modul für Terminansicht CALVIEW

Begonnen von chris1284, 08 Februar 2014, 13:18:31

Vorheriges Thema - Nächstes Thema

onkel-tobi

#240
Zitat von: chris1284 am 26 Februar 2015, 09:20:04
ist abfall evtl der name deiner readingsgroup  :o denn  wird nicht vom calview erstellt.
Nicht, wenn ich nicht total neben mir stehe (s. Anhang)...
Aber da war noch ein Problem mit meiner gesicherten myUtils, die kam noch in die Quere,. Nun ist der output wieder:
Abfall:<Morgen>,tomorrow_001_btime,tomorrow_001_summary,tomorrow_001_edate,tomorrow_001_etime

Update:
Habe mich noch mal versucht und nun Erfolg mit folgendem Code:
sub AbfallNotify {
my $i;
for($i= 1;$i<= ReadingsVal("Abfall","c-tomorrow", 0);$i++){
DebianMail('meine@mail.de',ReadingsVal("Abfall","t_001_summary",""),"");}
}

Gruß,
Tobi

onkel-tobi

Hi OTI,

habe mir mal dein Beispiel angeschaut und diese Lösung über Calview direkt gefällt mir definitiv besser.
Aus "Schönheitsgründen" würde ich noch gerne die ersten 4 Buchstaben aus dem jeweiligen Kalendernamen entfernen, dass müsste doch eigtl. mit substr gehen?
Bekomme das aber leider nicht hin:
define at_KalenderTermine at +*00:05 {\
  my $i;;\
  my $modtext = "<Kalender>,<Datum>,<Uhrzeit>,<Text> ";;\
  for($i= 1;;$i<=20;;$i++){\
  $modtext .= "calv_all:substr(t_".sprintf('%03d',$i)."_source, 4),t_".sprintf('%03d',$i)."_bdate,t_".sprintf('%03d',$i)."_btime,t_".sprintf('%03d',$i)."_summary ";;}\
  fhem("modify rg_KalenderTermine $modtext");;\ 
}

Oder kann das mit substr an der Stelle nicht funktionieren?

Gruß,
Tobi

chris1284

#242
Heute hab ich die neue version mit
- multikalender support
- der neuen sortierung, danke oti
- den neuen calendar modes
- dem source reading und einem location reading (ort des termins)
eingechecked

A.Harrenberg

Hi,

mir ist aufgefallen das der Parameter für Intervall nicht abgespeichert wird. Default steht der auf 43200 = 12 Std. Ich hab' den bei mir auf 900 = 15 min. gesetzt. Das funktionier auch, allerdings ist bei einem Neustart von FHEM wieder der alte default wert von 43200 in den Internals.

Ist das so gedacht? Ich fände es "schöner" wenn der Wert auch einen Neustart überlebt, da ich evtl. auch mal über Tag einen Termin zur Steuerung eintrage und der dann erst gelesen werden würde wenn der Termin bereits vorbei ist...

Zusätzlich habe ich den Eindruck das man nach dem Ändern von Intervall danach einmal "set update" machen muss, damit der die neue Zeit sofort übernimmt, ansonsten anscheinend erst nach dem nächsten regulären Update. Auch hier die Frage, ist das gewollt?

Vielen Dank,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

chris1284

du hast recht, ich habe es gerade gefixed (set intervall rausgenommen und es in die def mit eingbaut). Ich werde es im laufe des tages testen und heute abend einchecken

chris1284

habs gerade eingechecked. nach dem update steht der intervall wieder auf 24h.
ihr müsst ihn über die def setzen
define <name> CALVIEW <kalender> <mode> <intervall>
define Abfall_View CALVIEW cal_Abfall 1 900
(siehe commandref). bei bestehenden devices einfach nochmal auf def klicken und euren wunschinervall hinten anhängen

A.Harrenberg

Hi,

da scheint jetzt aber was nicht zu stimmen... Hab' gerade das Update reingespielt und shutdown restart gemacht.

Wenn ich jetzt auf mein CALVIEW device gehe, habe ich in der Webansicht:
- den Button für set
- dann mein devicenamen
- dann das Auwahlfeld für das Command, dort ist "set (also mit vorangstelltem Anführungszeichen drin)
- dann das Optionfeld, dort steht:
Can't find string terminator '"' anywhere before EOF at (eval 52) line 1.
drin

Im Log steht:

2015.03.05 21:00:12.120 1: PERL WARNING: Bareword found where operator expected at (eval 52) line 1, near """set"
2015.03.05 21:00:12.120 1: PERL WARNING:    (Missing operator before set?)
2015.03.05 21:00:12.120 1: PERL WARNING: String found where operator expected at (eval 52) line 1, near "set",""
2015.03.05 21:00:12.120 1: PERL WARNING: String found where operator expected at (eval 52) line 1, at end of line
2015.03.05 21:00:12.120 1: PERL WARNING:    (Missing semicolon on previous line?)

Wie kann ich weiter nützliche Infos liefern?

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

A.Harrenberg

Hallo,

ein shutdown restart mit verbose 5 bringt auch keine neueren oder detaillierteren Erkenntnisse, die Fehlermeldungen bleiben gleich...
Ich habe die Definition meines CALVIEW device jetzt auch mal ans Ende der cfg-Datei veschoben, auch keine Änderung. list device sieht auch in Ordnung aus

Internals:
   DEF        fhemCalendar 1 900
   INTERVAL   900
   KALENDER   fhemCalendar
   MODES      modeAlarm;modeStart;modeStarted;modeUpcoming
   NAME       myCalView
   NR         200
   STATE      t: 3 td: 0 tm: 0
   TYPE       CALVIEW
   Readings:
     2015-03-05 22:23:23   c-term          3
     2015-03-05 22:23:23   c-today         0
     2015-03-05 22:23:23   c-tomorrow      0
     2015-03-05 22:23:23   state           t: 3 td: 0 tm: 0
     2015-03-05 22:23:23   t_001_bdate     10.03.2015
     2015-03-05 22:23:23   t_001_btime     00:00:00
     2015-03-05 22:23:23   t_001_edate     11.03.2015
     2015-03-05 22:23:23   t_001_etime     00:00:00
     2015-03-05 22:23:23   t_001_location
     2015-03-05 22:23:23   t_001_source    fhemCalendar
     2015-03-05 22:23:23   t_001_summary   Müll: Altpapier
     2015-03-05 22:23:23   t_002_bdate     11.03.2015
     2015-03-05 22:23:23   t_002_btime     00:00:00
     2015-03-05 22:23:23   t_002_edate     12.03.2015
     2015-03-05 22:23:23   t_002_etime     00:00:00
     2015-03-05 22:23:23   t_002_location
     2015-03-05 22:23:23   t_002_source    fhemCalendar
     2015-03-05 22:23:23   t_002_summary   Müll: Restabfall + Biotonne
     2015-03-05 22:23:23   t_003_bdate     11.03.2015
     2015-03-05 22:23:23   t_003_btime     00:00:00
     2015-03-05 22:23:23   t_003_edate     12.03.2015
     2015-03-05 22:23:23   t_003_etime     00:00:00
     2015-03-05 22:23:23   t_003_location
     2015-03-05 22:23:23   t_003_source    fhemCalendar
     2015-03-05 22:23:23   t_003_summary   Müll: gelber Sack
Attributes:
   maxreadings 20
   oldStyledReadings 0
   room       Kalender
   verbose    5


Das CALVIEW device scheint aber "normal" zu laufen, zumindest kann ich keine Fehlfunktion in den Readings erkennen.

Ich habe mal einen Screenshot von der Webansicht angehängt. Wenn man das Drop-Down im Befehl aufklappt steht da noch mehr drin, wahrscheinlich eine geparste Fehlermeldung...

Ich hoffe das hilft. Ich selbst bin jetzt aber erst mal für 'ne Woche weg, vielleicht kann ich morgen abend noch mal kurz reinschauen, ansonsten erst nach dem Urlaub.

Gruß,
Andreas.

FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

spikeh1

Zitat von: A.Harrenberg am 05 März 2015, 21:05:09
Hi,

da scheint jetzt aber was nicht zu stimmen... Hab' gerade das Update reingespielt und shutdown restart gemacht.

Wenn ich jetzt auf mein CALVIEW device gehe, habe ich in der Webansicht:
- den Button für set
- dann mein devicenamen
- dann das Auwahlfeld für das Command, dort ist "set (also mit vorangstelltem Anführungszeichen drin)
- dann das Optionfeld, dort steht:
Can't find string terminator '"' anywhere before EOF at (eval 52) line 1.
drin

Im Log steht:

2015.03.05 21:00:12.120 1: PERL WARNING: Bareword found where operator expected at (eval 52) line 1, near """set"
2015.03.05 21:00:12.120 1: PERL WARNING:    (Missing operator before set?)
2015.03.05 21:00:12.120 1: PERL WARNING: String found where operator expected at (eval 52) line 1, near "set",""
2015.03.05 21:00:12.120 1: PERL WARNING: String found where operator expected at (eval 52) line 1, at end of line
2015.03.05 21:00:12.120 1: PERL WARNING:    (Missing semicolon on previous line?)

Wie kann ich weiter nützliche Infos liefern?

Gruß,
Andreas.

Ist bei mir ebenso. Bin erstmal zurück auf die vorhergehende Version.

Mfg

RoBra81

Hallo,

die Zeile 59 muss von

    return "\"set CALVIEW\" Unknown argument $a[1], choose update" if($a[1] eq '?');


auf

    return "\"set CALVIEW\" Unknown argument $a[1], choose one of update" if($a[1] eq '?');


geändert werden. Scheinbar sucht FHEM hier nach "choose one of"...

Ronny

chris1284

offensichtlich, werde ich heute nachmittag ändern.

A.Harrenberg

Hallo Ronny (RoBra81),

vielleicht offtopic bzw. nur mal so aus Neugier, WIE findet man solch einen Fehler?

Ich bin was FHEM und Perl angeht noch relativ neu dabei, habe aber durchaus Programmierkenntnisse (Old School: Basic, Pascal, Fortran, C, ein wenig C++, ein wenig C#...) d.h. im groben und ganzen kann ich fast alles im Code nachvollziehen.

Ich habe gestern meine GESAMTE Konfig mal global auf verbose 5 gesetzt und mir danach das log angeschaut, das war ein gefühlten Kilometer lang, aber eben nicht detaillierte was diesen Fehler anging.
Auch aus dem Code vom CALVIEW-Modul selber habe ich da nichts erkennen können...

Wo/wie hast Du angesetzt um diese code-Stelle zu identifizieren? Ich habe jetzt noch nicht explizit im Forum oder im Wiki danach gesucht, aber gibt es eine "Anleitung" zum Debuggen von FHEM/Perl?

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

RoBra81

Hallo Andreas,
das war in diesem Fall ziemlich einfach: da ich ungefähr wusste, wo diese Liste gebaut wird, habe ich einfach die vorherige funktionierende Version mit der neuen Version mit Notepad++ verglichen und durch Probieren gefunden...

Ronny

A.Harrenberg

Hallo Ronny,

ok, also ein "educated guess" ,-)

Aber schon mal vielen Dank, hab' das eben bei mir geändert und jetzt ist der Fehler auf jeden Fall weg. Dann kann ich auf jeden Fall etwas beruhigter in Urlaub fahren. Frau bleibt nämlich mit der Heizungsautomatisierung zu Hause und wenn FHEM da im Hintergrund irgendwie nicht richtig funktioniert hätte wäre der WAF tief in die negative Skala gerutscht.

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

chris1284