Kalender-Termine ausfiltern / div. Fragen

Hallo Miteinander,

wie der ein oder andere in einigen Threads schon gesehen haben mag, bin ich neu hier und vollkommen unbeleckt was PHP angeht.
Ich habe mich da etwas rein gearbeitet und kann schon einen bestimmten Google-Kalender abfragen.

Leider schaffe ich es nicht da etwas auszusortieren und zwar verwende ich folgendes Skript:

<?
$heute = date("d.m.Y");  // z.B.  "30.10.2014"
$regexheute = '/$heute (.*)/';
$kalenderdata = getvaluestring (47992);
preg_match($regexheute, $kalenderdata, $termine);
print_r($termine);
?>

Hier bekomme ich immer nur zurück:

Array
(
)

($Kalenderdata enthält folgendes (bsp.):

26.12.2014 ---  Ganztägig  ---   N
27.12.2014 ---  Ganztägig  ---   X
28.12.2014 ---  Ganztägig  ---   X
usw...

Irgendwie stimmt ja bei der suche evtl. die Definition von $regexheute nicht. Ich möchte / muss ein N oder X etc. zurückbekommen. Und es dürfen nur Bezeichnungen mit einem Zeichen (N, S, X, U und nicht "Geburtstag Fritzchen Mayer) ausgewertet werden.

Kann jemand helfen - alles was ich bisher zu dem pre_match gefunden habe hilft mir garnicht. Ich will ehrlich sein, ich weiß nicht einmal so recht, wann ich „“ benutze und wann () bzw. ’ '.
Leider findet sich (evtl bin ich auch zu blöde zum suchen!) da nirgendwo etwas zu.

Zu guter Letzt: Wenn ich nun ein Skript habe, was (später, baut hier drauf auf) meine Heizzeiten regelt, wie führe ich das passen aus - alle paar Minuten oder nach einem Ereignis oder wie macht Ihr das?

Gruß,
Matthias

Also…warum auch immer…hier die vorgekaute Version…den Rest musst du dann doch bitte selbst hinbekommen, ansonsten solltest du dir evtl. überlegen, ob du vlt. lieber ein anderes Hobby betreiben solltest :wink:

<?

$puffer = '25.12.2014 ---  Ganztägig  ---   X
26.12.2014 ---  Ganztägig  ---   N
27.12.2014 ---  Ganztägig  ---   X
28.12.2014 ---  Ganztägig  ---   X
29.12.2014 ---  Ganztägig  ---   X
30.12.2014 ---  Ganztägig  ---   X
31.12.2014 ---  Ganztägig  ---   X
01.01.2015 ---  Ganztägig  ---   X
02.01.2015 ---  Ganztägig  ---   F
03.01.2015 ---  Ganztägig  ---   X
04.01.2015 ---  Ganztägig  ---   X
05.01.2015 ---  Ganztägig  ---   S
06.01.2015 ---  Ganztägig  ---   S
07.01.2015 ---  Ganztägig  ---   S
08.01.2015 ---  Ganztägig  ---   S
09.01.2015 ---  Ganztägig  ---   N
10.01.2015 ---  Ganztägig  ---   N
11.01.2015 ---  Ganztägig  ---   N
12.01.2015 ---  Ganztägig  ---   X
13.01.2015 ---  Ganztägig  ---   Oswald Geb.
13.01.2015 ---  Ganztägig  ---   X
14.01.2015 ---  Ganztägig  ---   S
15.01.2015 ---  Ganztägig  ---   F
15.01.2015 14:30:00 - 15:30:00   Helen treffen
16.01.2015 ---  Ganztägig  ---   F
17.01.2015 ---  Ganztägig  ---   X
18.01.2015 ---  Ganztägig  ---   X
19.01.2015 ---  Ganztägig  ---   X
20.01.2015 ---  Ganztägig  ---   X
21.01.2015 ---  Ganztägig  ---   S';

$regexTage = '|(.*)[0-9.]{10}|';
$regexSchichten = '|(.*)[0-9.]{10}.*\s\s\s(.*)|';


$heute = date("d.m.Y");  // z.B.  "30.10.2014"
$regexHeute = '/'.$heute.'/';


preg_match_all($regexTage, $puffer, $matchTage);
//print_r($matchTage);
preg_match_all($regexSchichten, $puffer, $matchSchichten);
//print_r($matchSchichten);


$tagex = 0;
foreach($matchTage["0"] AS $tage) {
	//echo $tage."
";
	preg_match($regexHeute, $tage, $matchHeute);

	if ($matchHeute == true) {
		$terminx = $matchSchichten[2][$tagex];
		$terminx = str_replace("\r", "", $terminx);
		$regexTerminx = '|'.$terminx.'|';

		preg_match($regexTerminx, "N", $matchN);
		if ($matchN == true) {
			// SetValue($SchichtN, 1);  // hier wird dann die Variable gesetzt, welches die Heizungsautomatik verwenden kann um Temperaturen zu setzen (passend zum Wochenplan)
			echo "Heute ist Schicht -N- aktiv!";
		}
	}
	$tagex = $tagex + 1;
}

?>

Dieses Skript gibt, passend zum heutigen Tag das N aus. Musst du halt noch für deine anderen Buchstaben erweitern und als Quelle das hier „$kalenderdata = getvaluestring (47992);“ verwenden, statt dem „$string“ von mir. Dann überlegen, welche Variablen du wie setzen willst, damit deine Heizungsautomatik auf was zurückgreifen kann. Theoretisch kann das auch eine String-Variable sein, in der jeweils z.B. nur „N“ steht und IF da N drinne steht, dann stell soll dein IPS den Wochenplan „2“ nehmen und da sind deine Zeiten hinterlegt und Temperaturen…taaaadaaa…fertig ist die Geschichte.

Viel Erfolg und jetzt bitte fleißig selbst programmieren :slight_smile:

Grüße,
Chris

PS: Mein Skript geht sicher schöner und anders auch, aber auf die schnelle zum Vorkauen ist das ausreichend :wink:

Suuuuper!
Vielen, Vielen Dank! Ich muss mir das jetzt heute Abend mal in aller Ruhe ansehen und mal aufschreiben (Papier :D) was die einzelnen Schritte bewirken.

Ich meine ich würde das ja ansich wirklich sehr gerne selbst schreiben - leider kann ich es einfach (noch?) nicht.
Allerdings hoffe ich, deine Vorlage hilft mir ein wenig weiter.
Würdest Du das dann einmal am Tag (Ich denke da an 0:30 oder so) laufen lassen?

Wie gesagt - ich muss ja eine fremde Sprache lernen - quasi wie eine Fremdsprache, wenn man aber niemand hat, der einem Grammatik beibringt (Syntax) und man zudem nicht alle Wörter und ihre genaue Bedeutung (Funktionen) kennt, ist das halt nicht so easy.

Ich nehme an, Du hast das mal ganz locker aus der hohlen Hand geschüttelt.
Ich habe meinem Vater mit CCBasic (ist auf einer Conrad CControl SPS) auch ein Programm geschrieben mit Steuerung für eine Ölheizung, einen Holzvergaser, eine Solaranlage mit FU-geregelter Pumpe sowie Proportionalventil, Funkuhr, 6 PT100 Sensoren (inkl. AD-Wandler), Umschaltventil und 3 Umwälzpumpen… Aber das ist schon 5 Jahre her und CCBasic ist komplett anders als PHP. Aber ich habe es halt auch mal gelernt :wink:

Ich habe vor 3-4 Monaten mit IPS und damit auch mit PHP angefangen, also nix aus der hohlen Hand, musste schon auch denken :smiley: Aber mittlerweile fällt es mir schon etwas leichter. Habe die letzten Wochen/Monate aber auch wirklich sehr sehr viel Zeit investiert und viel viel viel gelesen und noch viel mehr gebastelt und gegoogelt usw… Aller Anfang ist schwer, aber wenn man sich ein wenig Mühe gibt, dann ist das bissi PHP was man für IPS braucht, wirklich kein Hexenwerk :slight_smile:
Aber wenn man, wie du (und ich auch) schon GRUNDKENNTNISSE in irgendwelchen Programmiersprachen hat, dann lernt man auch andere Sprachen recht schnell. Die Logik ist bei den meisten ja recht ähnlich, und die paar Befehle die man hier für die Grund-IPS-Dinge braucht, die hat man schnell drin :wink:

Also tschaaaaaakaaaa :cool:

Mit dem Skript von mir, hast du erstmal alles was du zum „Auswerten“ von deinem Kalender brauchst. Wenn du das ordentlich in Variablen dann rausschreibst, dann kannste da wiederrum mit dem Heizungskram und den Wochenplänen drauf aufsetzen.

Und ja, einfach Nachts (nach 0 Uhr) laufen lassen das Skript.

-Chris-

Oh okay, ja nachdem was Du so schreibst sah es so aus, als ob Du da der Vollprofi bist.

Ansich glaube ich, würde das auch noch leichter gehen - wenn man mehr Zeit hätte - habe mit 32 noch angefangen Wirtschaftsingenieur in Teilzeit (d.h. berufsbegleitend) zu studieren - da hat man den Kopf schonmal etwas zu voll :slight_smile:

Ich denke allerdings ich muss jetzt mal in Ruhe deine Funktionen entschlüsseln und mal sehen, was ich daraus lernen kann.

Ach was ganz anderes (kann ja nicht für jeden Mist nen Thread aufmachen :-)):

Ich habe mir überlegt, es wäre (zus. zur Android-Software) eigentlich relativ cool, wenn man in der Küche oder im Wohnzimmer eine Art Statusdisplay fürs Haus hat.
Wie regelst Du / bzw. Ihr (wer auch immer mit liest) das? Ich habe mal nach Zentrales Display etc. gesucht aber nicht wirklich was gefunden. Meine erste Idee war, ein günstiges Android Tablet (es gibt bei Real eins für 50€) zu kaufen und da die Software bzw. die Website anzuzeigen.

Ich habe übrigens die BASIC Version - wenn ich das richtig gesehen habe, macht da die Website nicht soviel Sinn oder? Ich habe nämlich festgestellt, dass ich da kaum etwas ändern kann.
Gruß,
Matthias

Ohje, was du so alles erzählst, da hast du noch viiiiel Lesebedarf im Bezug auf IPS :smiley:

Also Tipp Nr. 1 > Wenn du es mit IPS ernst meinst und das wirklich richtig in dein Haus/Wohnung integrieren willst, dann kauf dir direkt das Update auf die PROF Version! Der WebFront-Editor in der PROF macht vieles einfacher und man muss nicht alles doppelt machen :slight_smile: Mit der Basic Verison kann man auch ein WebFront aufbauen, aber man ist sehr eingeschränkt dabei. Hingegen mit der PROF, da biste frei wie der Wind :cool:

Bzgl. welches Tablet für dich am besten ist, da musste mal hier im Forum rumlesen, da hat jeder was anderes. Die einen haben alte iPads, die anderen Android Tablets, wieder andere einen miniPC mit Monitor in der Wand integriert usw usw… Ich selbst nutze ein Galaxy Tab 4 7.0 und ein iPad 4. Entscheident ist FÜR MICH die Auflösung, weil soll ja irgendwo genug Platz sein, für das was man anzeigen möchte. Und hat man da nur eine Auflösung von 600x400 oder sonstwas in der Richtung, dann wird es eng g

Aber nochma zum Thema lesen…alle deine Fragen sind an vielen Stellen nachzulesen…man muss es nur auch lesen (wollen) :slight_smile: Weil wenn man zuviel Fragen stellt, die man ganz einfach selbst im Forum oder in der IPS-Doku oder auf der Webseite nachlesen kann, dann wollen die Leute irgendwann nicht mehr so hilfsbereit sein :wink: :smiley:

Ja, da gebe ich dir absolut Recht… aber das Problem mit dem Lesen ist - man (ich) findet oft nicht was man sucht bzw. braucht.
Z.b. bei der Sache mit der Reaktionszeit für die Ventile: Ich habe nach Reaktionszeit und Zykluszeit usw gesucht. Das das ganze im Thread „Was mache ich falsch“ zu finden ist konnte ich ja nicht wissen.
Andererseits gibts hier tausende von Beiträgen und einfach mal alles lesen geht einfach zeitlich nicht.

Ich habe halt jetzt n paarmal festgestellt, dass ich einfach mit falschen Begriffen suche - evtl auch weil mir diese noch nicht so geläufig sind. Ich gelobe aber Besserung und zudem suche Ich IMMER bevor ich nen Thread eröffne. (okay nicht bei jedem Beitrag).

Aber auch fürs Display habe ich nach „Statusdisplay“ „Systemzentrale“ und noch so n paar Dingen gesucht - da kam aber wenig raus und das was da war hatte kaum was mit dem zu tun was ich brauche.

Doku habe ich auch schon angefangen - bin aber (mal wieder aus Zeitgründen) noch lange nicht durch.

Aber bzgl. Rat befolgen: ich denke auf jeden Fall ernsthaft über die Prof-Variante nach und habe mir eben die CCU2 bestellt (83€) und den Widerruf für den LAN-Adapter abgegeben - also ich höre schon auf einen guten Rat :wink:

Gruß,
Matthias

Yeah :smiley: Also CCU2 ist sicher eine gute Entscheidung und auf die PROF macht einiges angenehmer…

Hier mal ein paar Links quer Beet :smiley:

WebFront Editor:
WebFront — IP-Symcon :: Automatisierungssoftware

HomeMatic CCU2 mit IPS:
HomeMatic — IP-Symcon :: Automatisierungssoftware

IPS - wie kann ich…?
HomeMatic — IP-Symcon :: Automatisierungssoftware

IPS-Wochenplan:
Wochenplan Ereignis: Status einer Variablen setzen

Tablet für die Wand:
Eure Empfehlungen: Touchpanel für Wandmontage (10"-15")
Tablet für Wandmontage
Touchpanel - Android - Ethernet
iPad als Webfront Terminal - Tasker Funktionalitäten
Tablett Wandhalterung

Heizungssteuerung:
Universelle Heizungssteuerung
Heizkörperthermostat Heizprogramme per WebFront einstellen

HomeMatic Datenpunkte:
Homematic Datenpunkte

HM Companion:
HMCompanion - Schnittstelle zur CCU • HomeMatic-Forum / FHZ-Forum

WebFront Objektdarstellungs-Varianten:
Objekt-Darstellung — IP-Symcon :: Automatisierungssoftware
Beispiel 2 — IP-Symcon :: Automatisierungssoftware

IPS Befehlsreferenz:
Befehlsreferenz — IP-Symcon :: Automatisierungssoftware

PHP Manual (um mal einzelne PHP Befehle nachzulesen):
https://php.net/manual/de/index.php

Denke jetzt hast du erstmal genug zum Lesen/Anschauen :smiley:

Grüße,
Chris