Modul für Terminansicht CALVIEW

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

Vorheriges Thema - Nächstes Thema

moonsorrox

#465
schau mal auf mein Screenshot die Terminliste ist die Readinggroup, ich habe verschiedene welche mit Ort und welche ohne Ort, denn wo ich arbeite ist ja immer das gleiche also brauche ich die nicht ;)

Terminliste für die Schichten sieht wüst aus aber auch nur weil ich einfach was eintrage und mit einem weiteren DOIF teste
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

ChHerrm

Erstmal so:

define Termine readingsGroup <Datum>,<Uhrzeit>,<Datum - Ende>,<Zeit - Ende>,<Ereignis>,<Kalender>
attr Termine group Kal
attr Termine nameStyle style="font-size:18px"
attr Termine noheading 1
attr Termine nonames 1
attr Termine nostate 1
attr Termine notime 1
attr Termine room Kalender


Steht aber außer den Überschriften nichts drin.

moonsorrox

Zitat von: ChHerrm am 06 Oktober 2015, 19:08:48
Erstmal so:

define Termine readingsGroup <Datum>,<Uhrzeit>,<Datum - Ende>,<Zeit - Ende>,<Ereignis>,<Kalender>
attr Termine group Kal
attr Termine nameStyle style="font-size:18px"
attr Termine noheading 1
attr Termine nonames 1
attr Termine nostate 1
attr Termine notime 1
attr Termine room Kalender


Steht aber außer den Überschriften nichts drin.

das geht ja auch nicht so...!
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

moonsorrox

#468
nimm mal die für den Schichtkalender:
define rg_Termine_S readingsGroup <Datum>,<Uhrzeit>,<Datum - Ende>,<Zeit - Ende>,<Ereignis>,<Kalender> View_S:t_001_bdate,t_001_btime,t_001_edate,t_001_etime,t_001_summary,t_001_source View_S:t_002_bdate,t_002_btime,t_002_edate,t_002_etime,t_002_summary,t_002_source View_S:t_003_bdate,t_003_btime,t_003_edate,t_003_etime,t_003_summary,t_003_source View_S:t_004_bdate,t_004_btime,t_004_edate,t_004_etime,t_004_summary,t_004_source View_S:t_005_bdate,t_005_btime,t_005_edate,t_005_etime,t_005_summary,t_005_source View_S:t_006_bdate,t_006_btime,t_006_edate,t_006_etime,t_006_summary,t_006_source View_S:t_007_bdate,t_007_btime,t_007_edate,t_007_etime,t_007_summary,t_007_source View_S:t_008_bdate,t_008_btime,t_008_edate,t_008_etime,t_008_summary,t_008_source View_S:t_009_bdate,t_009_btime,t_009_edate,t_009_etime,t_009_summary,t_009_source View_S:t_010_bdate,t_010_btime,t_010_edate,t_010_etime,t_010_summary,t_010_source View_S:t_011_bdate,t_011_btime,t_011_edate,t_011_etime,t_011_summary,t_011_source View_S:t_012_bdate,t_012_btime,t_012_edate,t_012_etime,t_012_summary,t_012_source View_S:t_013_bdate,t_013_btime,t_013_edate,t_013_etime,t_013_summary,t_013_source View_S:t_014_bdate,t_014_btime,t_014_edate,t_014_etime,t_014_summary,t_014_source View_S:t_015_bdate,t_015_btime,t_015_edate,t_015_etime,t_015_summary,t_015_source View_S:t_016_bdate,t_016_btime,t_016_edate,t_016_etime,t_016_summary,t_016_source View_S:t_017_bdate,t_017_btime,t_017_edate,t_017_etime,t_017_summary,t_017_source View_S:t_018_bdate,t_018_btime,t_018_edate,t_018_etime,t_018_summary,t_018_source View_S:t_019_bdate,t_019_btime,t_019_edate,t_019_etime,t_019_summary,t_019_source View_S:t_020_bdate,t_020_btime,t_020_edate,t_020_etime,t_020_summary,t_020_source
attr rg_Termine_S alias -- Schichten --
attr rg_Termine_S cellStyle { "r:1"=>'style="font-weight:normal;;font-size:16px;;color:AntiqueWhite;;"',"c:0"=>'style="font-weight:normal;;font-size:14px;;text-align:left;;padding-left:0pt;;color:LightSteelBlue;;"'}
attr rg_Termine_S group Terminliste
attr rg_Termine_S nameStyle style="font-weight:bold;;color:White"
attr rg_Termine_S nonames 1
attr rg_Termine_S room Kalender
attr rg_Termine_S sortby 02
attr rg_Termine_S valueStyle {if(substr($READING,5,7) eq "_source" && $VALUE eq "UrlaubsKalender"){ 'style="color:blue"' }elsif( substr($READING,5,7) eq "_source" && $VALUE eq "SchichtKalender" ){ 'style="color:red"' }elsif( substr($READING,5,7) eq "_source" && $VALUE eq "MusikKalender" ){ 'style="color:DarkOrchid"' }else{ 'style="color:white"' } }
#attr rg_Termine_S visibility hidden




alles andere Namen usw. kannst du später an deine Bedürfnisse anpassen
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

ChHerrm

Ja ich habe alles so übernommen, noch immer ohne Anzeige.

Hier nochmal das Gesamtwerk:

define SchichtKalender Calendar ical file /home/XYZ/KalenderCH.ics 60
attr SchichtKalender alias Schicht Kalender
attr SchichtKalender room Kalender


define View_S CALVIEW SchichtKalender 2 3600
attr View_S maxreadings 10
attr View_S room Kalender
#attr View_S modus all

define at_KalenderTermine_S at +*00:02:00 {\
  my $i;;\
  my $modtext = "<Datum>,<Uhrzeit>,<Datum - Ende>,<Zeit - Ende>,<Ereignis>,<Kalender> ";;\
  for($i= 1;;$i<=20;;$i++){\
  $modtext .= "View_S:t_".sprintf('%03d',$i)."_bdate,t_".sprintf('%03d',$i)."_btime,t_".sprintf('%03d',$i)."_edate,t_".sprintf('%03d',$i)."_etime,t_".sprintf('%03d',$i)."_summary,t_".sprintf('%03d',$i)."_source " ;;}\
  fhem("modify rg_Termine_S $modtext");;\
  fhem("save");;\
}
attr at_KalenderTermine_S alias Schicht - Kalender wird aktualisiert ==>
attr at_KalenderTermine_S group Timer
attr at_KalenderTermine_S icon time_timer@LightSeaGreen
attr at_KalenderTermine_S room Kalender


define rg_Termine_S readingsGroup <Datum>,<Uhrzeit>,<Datum - Ende>,<Zeit - Ende>,<Ereignis>,<Kalender> View_S:t_001_bdate,t_001_btime,t_001_edate,t_001_etime,t_001_summary,t_001_source View_S:t_002_bdate,t_002_btime,t_002_edate,t_002_etime,t_002_summary,t_002_source View_S:t_003_bdate,t_003_btime,t_003_edate,t_003_etime,t_003_summary,t_003_source View_S:t_004_bdate,t_004_btime,t_004_edate,t_004_etime,t_004_summary,t_004_source View_S:t_005_bdate,t_005_btime,t_005_edate,t_005_etime,t_005_summary,t_005_source View_S:t_006_bdate,t_006_btime,t_006_edate,t_006_etime,t_006_summary,t_006_source View_S:t_007_bdate,t_007_btime,t_007_edate,t_007_etime,t_007_summary,t_007_source View_S:t_008_bdate,t_008_btime,t_008_edate,t_008_etime,t_008_summary,t_008_source View_S:t_009_bdate,t_009_btime,t_009_edate,t_009_etime,t_009_summary,t_009_source View_S:t_010_bdate,t_010_btime,t_010_edate,t_010_etime,t_010_summary,t_010_source
attr rg_Termine_S alias -- Schichten --
attr rg_Termine_S cellStyle { "r:1"=>'style="font-weight:normal;;font-size:16px;;color:AntiqueWhite;;"',"c:0"=>'style="font-weight:normal;;font-size:14px;;text-align:left;;padding-left:0pt;;color:LightSteelBlue;;"'}
attr rg_Termine_S group Terminliste
attr rg_Termine_S nameStyle style="font-weight:bold;;color:White"
attr rg_Termine_S nonames 1
attr rg_Termine_S room Kalender
attr rg_Termine_S sortby 02
attr rg_Termine_S valueStyle {if(substr($READING,5,7) eq "_source" && $VALUE eq "UrlaubsKalender"){ 'style="color:blue"' }elsif( substr($READING,5,7) eq "_source" && $VALUE eq "SchichtKalender" ){ 'style="color:red"' }elsif( substr($READING,5,7) eq "_source" && $VALUE eq "MusikKalender" ){ 'style="color:DarkOrchid"' }else{ 'style="color:white"' } }
#attr rg_Termine_S visibility hidden

moonsorrox

Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

ChHerrm

Ja, ergebnislos. Nochmal ein set update oder sowas nötig?

moonsorrox

ja kann nicht schaden, aber im list von vorhin stehen ja die Termine drin...!
irgendwo ein kleiner Fehler im DEF der Readingsgroup...!

DEF Code:
<Datum>,<Uhrzeit>,<Datum - Ende>,<Zeit - Ende>,<Ereignis>,<Kalender> View_S:t_001_bdate,t_001_btime,t_001_edate,t_001_etime,t_001_summary,t_001_source View_S:t_002_bdate,t_002_btime,t_002_edate,t_002_etime,t_002_summary,t_002_source View_S:t_003_bdate,t_003_btime,t_003_edate,t_003_etime,t_003_summary,t_003_source View_S:t_004_bdate,t_004_btime,t_004_edate,t_004_etime,t_004_summary,t_004_source View_S:t_005_bdate,t_005_btime,t_005_edate,t_005_etime,t_005_summary,t_005_source View_S:t_006_bdate,t_006_btime,t_006_edate,t_006_etime,t_006_summary,t_006_source View_S:t_007_bdate,t_007_btime,t_007_edate,t_007_etime,t_007_summary,t_007_source View_S:t_008_bdate,t_008_btime,t_008_edate,t_008_etime,t_008_summary,t_008_source View_S:t_009_bdate,t_009_btime,t_009_edate,t_009_etime,t_009_summary,t_009_source View_S:t_010_bdate,t_010_btime,t_010_edate,t_010_etime,t_010_summary,t_010_source View_S:t_011_bdate,t_011_btime,t_011_edate,t_011_etime,t_011_summary,t_011_source View_S:t_012_bdate,t_012_btime,t_012_edate,t_012_etime,t_012_summary,t_012_source View_S:t_013_bdate,t_013_btime,t_013_edate,t_013_etime,t_013_summary,t_013_source View_S:t_014_bdate,t_014_btime,t_014_edate,t_014_etime,t_014_summary,t_014_source View_S:t_015_bdate,t_015_btime,t_015_edate,t_015_etime,t_015_summary,t_015_source View_S:t_016_bdate,t_016_btime,t_016_edate,t_016_etime,t_016_summary,t_016_source View_S:t_017_bdate,t_017_btime,t_017_edate,t_017_etime,t_017_summary,t_017_source View_S:t_018_bdate,t_018_btime,t_018_edate,t_018_etime,t_018_summary,t_018_source View_S:t_019_bdate,t_019_btime,t_019_edate,t_019_etime,t_019_summary,t_019_source View_S:t_020_bdate,t_020_btime,t_020_edate,t_020_etime,t_020_summary,t_020_source
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

ChHerrm

Es läuft jetzt, danke!!! Hab nochmal ein set update gemacht und mal wirklich auch 20 readings auslesen, nicht wie vorher 10. Und jetzt läufts auch. Danke für die Hilfe!

moonsorrox

 :D
Nun kannste in Ruhe mal deine Namen nehmen und alles ändern...!  ;)
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Franz Tenbrock

#475
so
hab meine eigene owncloud eingerichtet
bei google gesucht dann versucht , gelesen versucht etc, das übliche halt
das als erstes
http://blog.virtualweb.at/installation-konfiguration-der-cloud-software-owncloud

dann aber nicht weitergekommen
"Bevor es nun an die eigentliche Installation geht, legen wir eine Datenbank und einen Benutzer in MySQL via phpMyAdmin an und vergeben ihm alle Rechte an der Datenbank."
da fehlte halt eine Menge....
aber dank Google doch geklappt
leider ist die Doku mit den gesamten Snaps irgendwie verschwunden, schade, ev hätte es dem einen oder anderen geholfen

das Tool phpMyAdmin kann ich nun mit dme Brwoser erreichen, dort auch Dtenbanken User etc anlegen

den owncloud calender kann ich nun mit dem Explorer auch erreichen.

https://doc.owncloud.org/server/4.5/user_manual/calendars.html#exporting-importing-events
und wieder was weiter :-)

so und nun kann ich Termine eintragen und auch über das Dashboard richtig anzeigen :-)
noch nicht alles 100% ok aber
Top
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

ChHerrm

Ich habe noch einen Wunsch für meinen Kalender, bei dem ich mit meinen bisherigen Ansätzen aber nicht weiterkomme:

Ich würde gerne die morgen anstehenden Termine gelb und die heutigen rot färben. Meine Idee wäre:
-Auslesen von Calview: Status z.B. td = 1, daraufhin dann bei ReadingsGroup die 2. Zeile rot färben usw.

Angefangen habe ich das Ganze in der 99_myUtils als Fkt. Aber das wäre dann ja nur für das Calview-Element als Attribut zugänglich und könnte nicht eine bestimmte Zeile bei der ReadingsGroup färben oder??
Also würde ich einer Statusvariablen einen Wert geben, welcher irgendwie für die ReadingsGroup ausgewertet werden kann. Ist das überhaupt verständlich? ???

Zusammengefasst:
attr Calview Kalenderpruefen
--> Unterprogramm
if (td =1)
Statusvariable = 2

if (tm = 1)
Statusvariable = 3


- ReadingsGroup: Wert der Statusvariablen erkennen??

Es scheitert jetzt aber schon daran, dass ich nicht weiß wie ich eine Statusvariable anlege, die in anderen Funktionen ausgewertet werden kann. :-\ Kann mir hierbei jemand auf die Sprünge helfen? Geht das alles vlt auch einfacher?

ChHerrm

Nochmal ein konkreterer Versuch:

In der 99_myUtils befindet sich momentan folgender Testcode zum Auslesen:
my $Kal1status = 0;
my $Kal2status = 0;

sub Kalendererkennung($$) {
  my ($name, $wert) = @_;
  if ($name eq "c-today") {
    my $Kal1status = 1 if($wert = 0);
    my $Kal1status = 2 if($wert = 1);
    my $Kal1status = 3 if($wert = 2);
  }
  elsif ($name eq "c-tomorrow") {
    my $Kal2status = 1 if($wert == 0);
    my $Kal2status = 2 if($wert == 1);
    my $Kal2status = 3 if($wert == 2);
  }
}

sub Kalendermarkierung(;$) {
  $Kal2status = @_;
  if ($Kal2status == 1) {
    return 'style="color:green;;font-weight:normal"';
  }
  elsif ($Kal2status == 2) {
    return {"r:2"=>'style="color:red;;font-weight:bold"',"r:3"=>'style="color:yellow;;font-weight:bold"'};
  }
  else { return 'style="color:white;;font-weight:normal"'; }
}



in fhem.cfg:

attr Calview-zeug userattr {Kalendererkennung($READING,$VALUE)}
...
attr Readingsgroup-zeug cellStyle {Kalendermarkierung()}


Da ich mich mit Perl nicht so auskenne, weiß ich nicht so recht was daran falsch ist. Die Rückgabe des Styles, auch für einzelne Zeilen, funktioniert. Es scheint eher an dem Abfragen oder der Übergabe des Wertes von Kal2status zu liegen. Ist die Variable vlt nicht für die andere Funktion zugänglich? Habe da schon mehrere Varianten für eine Übergabe versucht, scheinbar aber nicht die richtige.
Kann mir bitte jemand einen Hinweis zu dem Code geben? :-\

ChHerrm

Okay ein letzter Versuch in der Thematik bzw. ein letztes Stören, vlt kann mir ja doch einer dazu was sagen:
Inzwischen weiß ich, dass man in perl eine local-Variable braucht damit die nächste sub darauf zugreifen kann. So auch getan und die Übergabe funktioniert. Jetzt glaube ich eher, das Problem liegt beim Reading.
Der Code:

sub Kalendererkennung($$) {
  my ($name, $wert) = @_;
  if ($name eq "c-today") {
    local $Kal2status = 1 if($wert == 0);
    local $Kal2status = 2 if($wert > 0);
  }
  else { return 'style="color:yellow"';} #local $Kal7status = 2}
}

sub Kalendermarkierung() {
  if ( &Kalendererkennung(Kal2status) == 1) {
    return 'style="color:green;;font-weight:normal"';
  }
  elsif (&Kalendererkennung(Kal2status) == 2) {
    return {"r:2"=>'style="color:red;;font-weight:bold"',"r:3"=>'style="color:yellow;;font-weight:bold"'};
  }
  else { return 'style="color:white;;font-weight:normal"'; }
}


Nehme ich jetzt den auskommentierten Code (local $Kal7status = 2) rein, erkennt die sub Kalendermarkierung eine 2 und markiert den Text auch entsprechend, auch wenn die Variable eigentlich anders heißen soll. Das bleibt aber auch das Einzige, was beachtet wird. Die if-Zuweisungen scheinen gar nichts auszulösen.
In fhem lautet ja mein Aufruf beim Calview-Element momentan:

attr View_Christoph userattr {Kalendererkennung($READING,$VALUE)}

Ist das vlt schon falsch? Bitte um Hilfe! :(


moonsorrox

was mir aufgefallen ist, wenn ich einen Termin im Google Kalender eingebe der z.B. über 2 Tage geht erkennt er den 1. Tag aber den 2. nicht.
Das heißt er hat ihn in den Readings schon drin, aber bei "c-today 0" steht eben eine Null drin obwohl heute der Termin drin steht.

STATE      t: 5 td: 0 tm: 0
   TYPE       CALVIEW
   Readings:
     2015-10-17 02:22:23   c-term          5
     2015-10-17 02:22:23   c-today         0
     2015-10-17 02:22:23   c-tomorrow      0
     2015-10-17 02:22:23   state           t: 5 td: 0 tm: 0
     2015-10-17 02:22:23   t_001_bdate     16.10.2015
     2015-10-17 02:22:23   t_001_btime     06:00:00
     2015-10-17 02:22:23   t_001_edate     17.10.2015
     2015-10-17 02:22:23   t_001_etime     14:10:00
     2015-10-17 02:22:23   t_001_location   
     2015-10-17 02:22:23   t_001_source    SchichtKalender
     2015-10-17 02:22:23   t_001_summary   Frühschicht


gestern hat er das noch angezeigt, wenn ich diese Termine aber einzeln eintrage zeigt er das an.
Ist da bei mir irgendwo ein Fehler im System..?
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM