CalDAV-Unterstützung, z. B. für ownCloud, mit Autorisierung

Begonnen von RobK, 23 Juli 2013, 23:47:20

Vorheriges Thema - Nächstes Thema

fhemtobi

Hi kvo,

na klar, hier der relevante Teil, inkl. Definition der 4 GPIO-Ports für die Fußbodenheizung und Einbindung des Kalenders.

Dort stehen auch gar kein User/PW oder der Direktlink zum Webdav drin, das erledigt ja das getcalender.sh für mich und speichert den webdav-kalender als ics in /home/pi/calendar.ics

Wichtig: Im Owncloud-Kalender muss bei den jeweiligen Kalendereinträgen der Betreff exakt so heißen, wie der Dummyschalter.

Wenn der Dummyschalter "dusche_fb" heißt, muss der Titel des Owncloud-Kalendereintrages auch "dusche_fb" sein.



#############################################
################ Definition GPIO-Ports ###############

# GPIO 17, 18, 27, 22 als Ausgang definieren
{qx(/usr/local/bin/gpio mode 0 out)}
{qx(/usr/local/bin/gpio mode 1 out)}
{qx(/usr/local/bin/gpio mode 2 out)}
{qx(/usr/local/bin/gpio mode 3 out)}


# Dummyschalter für GPIO 17
define dusche_fb dummy
attr dusche_fb room dusche
attr dusche_fb setList on off
define off_dusche_fb notify dusche_fb:off {qx(/usr/local/bin/gpio -g write 17 0)}
define on_dusche_fb notify dusche_fb:on {qx(/usr/local/bin/gpio -g write 17 1)}

# Dummyschalter für GPIO 18
define bad_fb dummy
attr bad_fb room bad
attr bad_fb setList on off
define off_bad_fb notify bad_fb:off {qx(/usr/local/bin/gpio -g write 18 0)}
define on_bad_fb notify bad_fb:on {qx(/usr/local/bin/gpio -g write 18 1)}

# Dummyschalter für GPIO 27
define wohnzimmer_fb dummy
attr wohnzimmer_fb room wohnzimmer
attr wohnzimmer_fb setList on off
define off_wohnzimmer_fb notify wohnzimmer_fb:off {qx(/usr/local/bin/gpio -g write 27 0)}
define on_wohnzimmer_fb notify wohnzimmer_fb:on {qx(/usr/local/bin/gpio -g write 27 1)}

#  Dummyschalter für GPIO 22
define buero_fb dummy
attr buero_fb room buero
attr buero_fb setList on off
define off_buero_fb notify buero_fb:off {qx(/usr/local/bin/gpio -g write 22 0)}
define on_buero_fb notify buero_fb:on {qx(/usr/local/bin/gpio -g write 22 1)}

###########################################
########### Kalender - Owncloud ##################

# Owncloud-Kalender, der vorher via WGET-Script heruntergeladen wurde, einbinden und alle 15 Minuten neu einlesen
define cal_heizung Calendar ical file /home/pi/calendar.ics 900

# Die Funktion prüft, ob es einen Dummyschalter mit dem Betreff vom Kalendereintrag hat, und schaltet ihn bei modeStarted ein und bei modeEnded wieder aus
define on_fb_cal notify cal_heizung:modeStarted.* { my $reading="%EVTPART0";; my $uid= "%EVTPART1";; my $actor= fhem("get cal_heizung summary $uid");; if(defined $actor) { fhem("set $actor on;;setreading $actor state on") } }

define off_fb_cal notify cal_heizung:modeEnded.* { my $reading="%EVTPART0";; my $uid= "%EVTPART1";; my $actor= fhem("get cal_heizung summary $uid");; if(defined $actor) { fhem("set $actor off;;setreading $actor state off") } }


kvo1

Hallo fhemtobi,

danke , ich glaube, ich habe das wohl falsch verstanden , doch Du holst die Daten ohne wget .......

gemäß

http://forum.fhem.de/index.php/topic,28667.msg215133.html#msg215133

gruss
kvo1
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

fhemtobi

nee ich hole die mit wget. deswegen liegt ja dann später der kalender von der owncloud auf home/pi/calendar.ics

mein wget-script (getcalendar.sh) sieht so aus:


#!/bin/sh

wget --auth-no-challenge \
--output-document="/home/pi/calendar.ics" --auth-no-challenge --no-check-certificate --http-user="<owncloud-username>" --http-password="password>" "https://ssl.webpack.de/<domain>/owncloud/remote.php/caldav/calendars/<owncloud-username>/<kalendername>?export"



hab dann in der crontab das sh script eingetragen, so dass er es alle 15 minuten ausführt und den aktuellen kalender von dem owncloud-server holt.

Dann noch "chown pi:pi getcalendar.sh" und "chmod 750 getcalendar.sh" und dann zieht sich fhem mit "efine cal_heizung Calendar ical file /home/pi/calendar.ics 840" den Kalender, den ich vorher mit getcalendar.sh lokal gespeichert habe.

viele Grüße

jan01

#18
Hallo Zusammen,

nutze hier owncloud 7 auf debian 8 der leichteste weg war für mich:

define Kalender_Schalter Calendar ical url http://USER:PASSWORT@URL_VON_OWNCLOUD/index.php/apps/calendar/export.php?calid=X

User und Passwort sowie URl sollten selbst sprechend sein.

Das X ist die ID eures Kallenders, herauszufinden über das Web Interface von Owncloud, links steht der Name des Kalendars daneben 5 Symbole das mittlere ist ein Pfeil nach unten, dient zum download des ics files. Hier könnt ihr die ID von eurem Kalendar rausfinden.

Hoffen den einem oder anderen damit geholfen zu haben.

VG Jan

Zephyr

Zitat von: jan01 am 10 Februar 2015, 19:33:21
Hoffen den einem oder anderen damit geholfen zu haben.
VG Jan

Hatte das auch mal so konstruriert. Mit dem Ergebnis, dass der Kalender regelmäßig keinen Status hatte bzw. nicht aktualisiert wurde. Passiert das bei Dir nicht?
Fehlersuche blieb bei mir erfolglos.

gruß
Zephyr
FHEM 5.5 auf Fritz!Box 7390 und Beagle Bone black mit RFXtrx433

jan01

Hallo Zephyr

nein der STATE ist bei mir immer Active!
Verwende kein https und ssl auch nicht aktualisierung habe ich 300 eingestellt.

vg jan

betateilchen

Bei mir funktioniert



define oc_Heizung Calendar ical url https://<ownCloudServer>/remote.php/caldav/calendars/fhem/fhem_heizung?export



seit langem völlig problemlos (mehrere Kalender sind so definiert) und ohne Ausfälle.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Zephyr

Danke für eure Rückmeldungen. Ich muss mich wohl an anderer Stelle mal auf die Suche machen.
FHEM 5.5 auf Fritz!Box 7390 und Beagle Bone black mit RFXtrx433

xhabit

Hallo,

also, der owncloud kalenderzugriff funktioniert bei mir. nur ich überlege gerade was ich mit der information in fhem anfangen kann. das es einen Termin gibt.
sprich für welche anwendung das von nutzen sein kann. was macht ihr mit der info?

gruss xhabit

betateilchen

Ich steuere damit die Heizzeiten meine Wohnzimmers und die Heizung der Wasserbetten im Schlafzimmer, je nachdem, wann ich überhaupt zuhause bin.

(http://up.picr.de/21068946bi.jpg)

Der Vorteil: Ich kann die Zeiten jederzeit beeinflussen und spätestens eine Stunde später weiss auch mein fhem Bescheid (Aktualisierungsintervall der Kalener = 3600 Sekunden) ohne dass ich dazu per DNS,VPN oder wie auch immer direkten Zugriff auf mein fhem zu Hause haben muss.


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

kvo1

ZitatIch steuere damit die Heizzeiten meine Wohnzimmers und die Heizung der Wasserbetten im Schlafzimmer, je nachdem, wann ich überhaupt zuhause bin.
Gute , kannst Du mal bitte ein Beispiel posten wie das geht ?
Wenn ich mein ownCloud  vom NAS auf den cubie umgezogen habe, schwebt mir so etwas auch vor.

Zitat...ohne dass ich dazu per DNS,VPN oder wie auch immer direkten Zugriff auf mein fhem zu Hause haben muss.
..... aber einen Zugriff per DNS,VPN oder wie auch immer auf den Kalender ? ODER !

gruss
Klaus
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

betateilchen

Zitat von: kvo1 am 21 Februar 2015, 22:03:19
Gute , kannst Du mal bitte ein Beispiel posten wie das geht ?

Das habe ich hier im Forum schon mehrfach beschrieben.

Zitat von: kvo1 am 21 Februar 2015, 22:03:19
..... aber einen Zugriff per DNS,VPN oder wie auch immer auf den Kalender ? ODER !

Natürlich. Aber meine ownCloud läuft 24/7 auf einem gemieteten Server bei Strato und nicht bei mir zuhause. Das Netzwerk zuhause und die Kalenderdaten sind also komplett voneinander getrennt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

kvo1

Hallo Zusammen,

ein kleiner Hinweis:

wenn man das gemäß "jan01" definiert, bekomme ich  sogar das Reading "calname" mit

Zitatdefine Kalender_Schalter Calendar ical url http://USER:PASSWORT@url_von_owncloud/index.php/apps/calendar/export.php?calid=X



bei der variante gemäß  "betateilchen" fehlt das

Zitatdefine oc_Heizung Calendar ical url https://<owncloudserver>/remote.php/caldav/calendars/fhem/fhem_heizung?export

Aber beides geht ... mit oc 8 !

kvo1


RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Franz Tenbrock

Hallo
bin seit einigen Stunden dabei mich in owncloud einzuarbeiten
auf dem cubie ist es eingerichtet,
termine kann ich im webbrowser eingeben

muss man den Kalender immer noch exportieren oder kann man direkt darauf zugreifen.
rauf und runter gelesen, wieder Tomaten vor der Brille  grrr

CFGFN

DEF
ical url http://192.168.178.46/owncloud/remote.php/caldav/calendars/owncloud/franz
NAME

Kalender1
NR

1309
STATE

Not an ical file at URL
TYPE

Calendar


halt kein ical

was ist mit user:passwort
kann man das verschlüsselt eingeben damit es nicht im Klartext in der Def steht?
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

kvo1

hallo Franz,
exportieren muß man nix !

define <Kalendername> Calendar ical url http://USER:PW@meine_ip/owncloud/index.php/apps/calendar/export.php?calid=9 3600


gruss
kvo1
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB