Schnelle Anzeige Wochenplanaktionen

Bei mir wird dynamisch ein Wochenplan fürs Laden vom Auto erstellt. Basis sind Daten von Awattar. Den Wochenplan hab ich im WF verlinkt um ihn ggf. bearbeiten zu können. Gibts eine einfach Möglichkeit die Aktionen für den nächsten Tag in eine Variable zu bekommen?

Servus,
schau dir mal die 2 Themen an

Aktuelles Ereignis zu einen beliebigen Zeitpunkt

Wochenplan in Datei sichern

… da kannst Du Dir die nötigen Funktionen rauskopieren, damit Du den Wochenplan für den nächsten Tag dynamisch beschreiben kannst

… gefühlt sieht das dann so ähnlich aus (Auszug aus einer Wochenplansicherung)

//Group 0
@IPS_SetEventScheduleGroup($ID,0,0);

IPS_SetEventScheduleGroup($ID,0,1);

IPS_SetEventScheduleGroupPoint($ID,0,2,0,0,0,3);
IPS_SetEventScheduleGroupPoint($ID,0,1,6,0,0,1);
IPS_SetEventScheduleGroupPoint($ID,0,4,14,0,0,2);
IPS_SetEventScheduleGroupPoint($ID,0,5,22,0,0,3);

tgusi74

TEST_14993.PHP.txt (2,5 KB)

Danke. Das Beschreiben/Erstellen funktioniert schon. Ich dachte an eine schnelle Anzeige, ohne den Wochenplan öffnen zu müssen. Klar, man sieht wann der nächste Schaltzeitpunkt ist, aber halt nur den und nicht die möglichen anderen des z.b. nächsten Tages.

Kannst ja in einer Schleife aufrufen z.B. jetzt, dann bekommst Du ja den Zeitpunkt wo das Event endet und rufst dann mit „Endzeitpunkt+1Sek.“ wieder auf

tgusi74

Ich dachte da an so etwas


Habs jetzt mit einem Skript gelöst.
Gibt es eine Möglichkeit eine Änderung am Wochenplan zu erkennen? @paresy

wird dann ja so ähnlich ausschauen

<?php
$ID = 14993;

$StartCheckTime = mktime(00, 00, 00, date("m"), date("d"), date("Y"));
$EndCheckTime = mktime(00, 00, 00, date("m"), date("d")+1, date("Y"));
 
$ActivState = GetWeekplanState($ID,$StartCheckTime);
$Text = $ActivState['ActionName'];

while ($ActivState['EndSysTime'] <= $EndCheckTime)
      {
       $ActivState = GetWeekplanState($ID,$ActivState['EndSysTime']+1);
       $Text .= " --> " . date("H:i", $ActivState['StartSysTime']) . " - " . $ActivState['ActionName'];
      }

print($Text);

liefert dann als Ausgabe
3-NACHTSCHICHT → 06:00 - 1-FRUEHSCHICHT → 14:00 - 2-MITTELSCHICHT → 22:00 - 3-NACHTSCHICHT

Hm, eigentlich nicht. Wobei ich das Modul nicht installiert habe. Ich verarbeite das Array direkt

$tag=1;
$wochentag=date("w",time()+(24*60*60*$tag));
//Wochentag Gruppe Montag=0, Dienstag=1, Mittwoch=2, Donnerstag=3, Freitag=5, Samstag=5, Sonntag=6
$gruppe=$wochentag-1;
//Sonntag
if ($gruppe == -1) $gruppe=6;
$schaltzeiten=IPS_GetEvent(37039)["ScheduleGroups"][$gruppe]["Points"];
$anzeige="";
$letzte_aktion=0;
foreach($schaltzeiten as $schaltzeit)
{
    if ($schaltzeit["ID"] >1)
    {
        if ($schaltzeit["ActionID"] == 1) $aktion="Laden beenden"; else $aktion="Laden starten";
        if ($anzeige != "") $anzeige=$anzeige.", "; 
        $anzeige=$anzeige.$schaltzeit["Start"]["Hour"].":".$schaltzeit["Start"]["Minute"]."0 ".$aktion;
        $letzte_aktion=$schaltzeit["ActionID"];
    }
}

if ($letzte_aktion == 2) $anzeige=$anzeige.", 24:00 Laden beenden";
echo $anzeige;