+ Antworten
Seite 9 von 9 ErsteErste ... 7 8 9
Ergebnis 81 bis 90 von 90
  1. #81
    Registriert seit
    Dec 2007
    Ort
    Nienburg (Weser)
    Beiträge
    1,335

    Naja, wie wird denn $today gefüllt ?
    Hast du mal ein echo $today gemacht ?
    _________
    IPS Unlimited unter WHS2011 auf HP N40L
    Wago 750 System, Homematic, 1-Wire,
    Squeezebox, Fritzbox, Dreambox, Instar Cams

  2. #82
    Registriert seit
    Aug 2014
    Ort
    Nähe Flensburg
    Beiträge
    207

    Hi,

    also:

    $today = date("d.m.Y");
    echo($today);

    Ergebnis: 08.03.2017

    wenn ich es mit der Hand eingebe funktioniert es...

    mit $today = Notice: Undefined variable: today in /var/lib/symcon/scripts/47470.ips.php on line 129
    Geändert von Izack (08.03.17 um 17:33 Uhr)
    Ips 4.1 auf RPI2 / All3500 / 1-Wire Usb Stick / 1-Wire Controller 2 E-Service /
    Symcon Z-Wave + / Ir Kopf von Udo / Synology NAS

  3. #83
    Registriert seit
    Dec 2007
    Ort
    Nienburg (Weser)
    Beiträge
    1,335

    Der Fehler sagt doch aus das die Variable unbekannt ist !?
    Du musst die natürlich vorher auch definieren bzw. füllen. Wie sieht der Aufruf denn aus? Nur mit Einzelheiten lässt sich schwer etwas dazu sagen
    _________
    IPS Unlimited unter WHS2011 auf HP N40L
    Wago 750 System, Homematic, 1-Wire,
    Squeezebox, Fritzbox, Dreambox, Instar Cams

  4. #84
    Registriert seit
    Aug 2014
    Ort
    Nähe Flensburg
    Beiträge
    207

    Hab es gefunden, danke... also das $today stand ganz oben am Anfang des scriptes und wurde wohl zwischen durch gelöscht....

    PHP-Code:
    $today date("d.m.Y");
    //echo($today);                         
    $tomorrow date("d.m.Y"strtotime("+1 days"));

        
    if (
    array_search($tomorrow$restmuelltrue ) ) {
       echo 
    "Heute ist Restmüll dran";

    so funktioniert es....tausend dank Jens....

    LG Izack
    Ips 4.1 auf RPI2 / All3500 / 1-Wire Usb Stick / 1-Wire Controller 2 E-Service /
    Symcon Z-Wave + / Ir Kopf von Udo / Synology NAS

  5. #85
    Registriert seit
    Dec 2007
    Ort
    Nienburg (Weser)
    Beiträge
    1,335

    Gerne doch

    Das $today was Du meinst ist nur innerhalb der Funktion gültig , da wurde nix gelöscht ;-)
    _________
    IPS Unlimited unter WHS2011 auf HP N40L
    Wago 750 System, Homematic, 1-Wire,
    Squeezebox, Fritzbox, Dreambox, Instar Cams

  6. #86
    Registriert seit
    Aug 2014
    Ort
    Nähe Flensburg
    Beiträge
    207

    Hallo,

    nun funktioniert alles, anbei das Schript:
    PHP-Code:
    <?
    $filename       
    =  IPS_GetKernelDir()."Abfuhrtermine.ics"//Ort der iCalender-Datei liegt
    //Aufruf der Funktion
    $iCal_String   =  iCal_to_String($filename);
    function 
    iCal_to_String($filename)
    {
    /*=============================================================
    iCal_to_String - Martin Heinzel - 16.12.2011
    Version: 0.1

    Beschreibung:
    Mit dieser Funktion wird eine iCalender Datei in eine String-
    variable gewandelt.


    Änderungen
    ----------

    tt.mm.jjjj von Version x.x -> y.y

    Beschreibung:

    ================================================================*/

    // Variablen Deklaration --------------------------------------

    // Variablen
    //--------------
    $iCal_DS_komplett                             =  "";    //Komplette iCalender Datensatz
    $restmuell                                    =  "";    //gewandelter iCalender Datensatz
    $biomuell                                    =  "";    //gewandelter iCalender Datensatz
    $wertstoff                                    =  "";    //gewandelter iCalender Datensatz
    $papier                                        =  "";    //gewandelter iCalender Datensatz
    //$baum                                            =  "";    //gewandelter iCalender Datensatz
    $term_jahr                                  =  "";    //Termin Jahr
    $term_monat                                 =  "";    //Termin Monat
    $term_tag                                   =  "";    //Termin Tag
    $term_inhalt                                =  "";    //Termin Text

    //-------------------------------------------------------------

    //--------------------------- Main ----------------------------

    //Daten holen
    if(file_exists($filename))
        {

            
    //Termine in Variable einlesen
            
    $iCal_DS_komplett                    file_get_contents($filename);
            
    //Echo($iCal_DS_komplett);
            //Den kompletten Datensatz zerlegen
            
    $iCal_DS_komplett_arr             explode("BEGIN:"$iCal_DS_komplett);

            
    //alle Datensätze durchlaufen
            
    foreach($iCal_DS_komplett_arr as $key => $value)
                {
                
    //Der erste Datensatz ist "2"
               
    if($key 1)
                    {
                    
    //einzelnen Datensatz in Daten zerlegen
                   
    $iCal_arr explode("\r\n"$value);

                    
    //Nur Datensätze vom Typ "VEVENT" durchlaufen
                    
    if($iCal_arr[0] == "VEVENT")
                        {
                        
    //alle Daten durchlaufen
                        
    foreach($iCal_arr as $ikey => $ivalue)
                            {
                               
    //Daten zerlegen in Parameter und Wert
                                
    $Data_arr explode(":"$ivalue);

                                    
    //Kontrolle der Parameter
                                    
    Switch($Data_arr[0])
                                    {

                                        
    //Zeitstempel Datum
                                        
    case "DTSTART;VALUE=DATE":
                                           
    $term_jahr      substr($Data_arr[1], 04);
                                           
    $term_monat     substr($Data_arr[1], 42);
                                           
    $term_tag        substr($Data_arr[1], 62);
                                            break;

                                        case 
    "SUMMARY":
                                          
    $term_inhalt     $Data_arr[1];
                                        
    //echo($term_inhalt); // zum Überprüfen ob etwas in der $term_inhalt steht
                                    
    }
                            }
                             Switch(
    $term_inhalt)
                                 {
                                   case 
    "Restabfalltonne (60-240l)(14tgl.)"// Suchbegriff
                                    
    $restmuell[] = $term_tag.".".$term_monat.".".$term_jahr;
                                 break;
                              case 
    "Biotonne(14tgl.)":
                                        
    $biomuell[] = $term_tag.".".$term_monat.".".$term_jahr;
                                   break;
                              case 
    "Gelber Sack(14tgl.)":
                                        
    $wertstoff[] = $term_tag.".".$term_monat.".".$term_jahr;
                                   break;
                              case 
    "Papiertonne(4wö.)":
                                         
    $papier[] = $term_tag.".".$term_monat.".".$term_jahr;
                                 
    //break;
                              //case "Weihnachtsbaeume":
                                         //$baum[] = $term_tag.".".$term_monat.".".$term_jahr;
                                
    }
                        }
                }
            }
        }
    else
        {
            
    //Wenn die Datei nicht existiert dann wird ERROR_FILENAME ausgegeben
            
    $iCal_String             "ERROR_FILENAME";
        }




    //--------------------------------Variablen Schalten---------------------------------------------------------

    $today date("d.m.Y");
    //echo($today);                         
    $tomorrow date("d.m.Y"strtotime("+1 days"));
    //echo($tomorrow);
        //schwarze Tonne
        
    if (array_search($today$restmuelltrue ) ) 
        {
           
    SetValueInteger(29196 /*[Müll\Restabfalltonne]*/,1);
        }
        else
        {
        if (
    array_search($tomorrow$restmuelltrue ) ) 
        {
               
    SetValue(29196 /*[Müll\Restabfalltonne]*/,2);
            }    
            else
            {
            
    SetValue(29196 /*[Müll\Restabfalltonne]*/,0);
            }
        }    

        
    //bio Tonne
        
    if (array_search($today$biomuelltrue ) ) 
        {
           
    SetValueInteger(32858 /*[Müll\Biotonne]*/,1);
        }
        else 
        {
        if (
    array_search($tomorrow$biomuelltrue ) ) 
        {
               
    SetValueInteger(32858 /*[Müll\Biotonne]*/,2);
            }
            else 
            {
            
    SetValueInteger(32858 /*[Müll\Biotonne]*/,0);
            }    
        }
        
    //Gelber Sack
        
    if (array_search($today$wertstofftrue ) ) 
        {
           
    SetValueInteger(35438 /*[Müll\Gelber Sack]*/,1);
        }
        else 
        {
        if (
    array_search($tomorrow$wertstofftrue ) ) {
               
    SetValueInteger(35438 /*[Müll\Gelber Sack]*/,2);
            }
            else
            {
            
    SetValueInteger(35438 /*[Müll\Gelber Sack]*/,0);
            }    
        }
        
    //Papier Tonne
        
    if (array_search($today$papiertrue ) ) {
           
    SetValueInteger(36560 /*[Müll\Papiertonne]*/,1);
        }
        else 
        {
        if (
    array_search($tomorrow$papiertrue ) ) 
        {
               
    SetValueInteger(36560 /*[Müll\Papiertonne]*/,2);
            }
            else {
            
    SetValueInteger(36560 /*[Müll\Papiertonne]*/,0);
            }
        }


    //--------------------------------Variablen Schalten Ende---------------------------------------------------------    

    $ergebnis = array($restmuell,$biomuell,$wertstoff,$papier);

    //print_r($ergebnis);


    return $ergebnis;




    //------------------------- Main ENDE --------------------------
    }
    ?>

    Die Variablen werden einmal am Tag ( 00:01) gefüllt. Ablageort der ICS-Datei ist direkt im Symconordner

    Name:  Müll.JPG
Hits: 261
Größe:  26.0 KB

    Vielen Dank für die Hilfe hier im Forum.

    LG Izack
    Geändert von Izack (10.03.17 um 20:16 Uhr)
    Ips 4.1 auf RPI2 / All3500 / 1-Wire Usb Stick / 1-Wire Controller 2 E-Service /
    Symcon Z-Wave + / Ir Kopf von Udo / Synology NAS

  7. #87
    Registriert seit
    Aug 2014
    Ort
    Nähe Flensburg
    Beiträge
    207

    Hallo Leute,

    ich stehe auf dem Schlauch :-( Leider bekomme ich beim Ausführen des Skriptes diesen Fehler:

    Fatal error: Uncaught Error: [] operator not supported for strings in /var/lib/symcon/scripts/47470.ips.php:91
    Stack trace:
    #0 /var/lib/symcon/scripts/47470.ips.php(4): iCal_to_String('/var/lib/symcon...')
    #1 {main}
    thrown in /var/lib/symcon/scripts/47470.ips.php on line 91

    Ich denke es tritt, nach dem Update auf IPS5.0 auf. Ich verstehe leider nicht wo das Problem ist.
    Währe toll wenn mir jemand helfen könnte.

    LG Izack
    Ips 4.1 auf RPI2 / All3500 / 1-Wire Usb Stick / 1-Wire Controller 2 E-Service /
    Symcon Z-Wave + / Ir Kopf von Udo / Synology NAS

  8. #88
    Registriert seit
    Aug 2014
    Ort
    Nähe Flensburg
    Beiträge
    207

    Hallo zusammen,

    hier scheint der Fehler zu liegen bei :

    case "Restabfalltonne (60-240l)(14tgl.)": // Suchbegriff
    $restmuell[] = $term_tag.".".$term_monat.".".$term_jahr;
    break;

    Was ist daran falsch?

    Lg Izack
    Ips 4.1 auf RPI2 / All3500 / 1-Wire Usb Stick / 1-Wire Controller 2 E-Service /
    Symcon Z-Wave + / Ir Kopf von Udo / Synology NAS

  9. #89
    Registriert seit
    Aug 2014
    Beiträge
    483

    Hallo,

    ich vermute, es liegt daran, dass Du zuerst $restmuell als String deklarierst (=""), später aber als Array ( [] ) benutzt. Versuchs doch mal mit $restmuell = array().

    Grüße, Gerhard
    LCN, LCN-PCHK, piVCCU auf Raspberry Pi, IPSView

  10. #90
    Registriert seit
    Aug 2014
    Ort
    Nähe Flensburg
    Beiträge
    207

    Hallo Gehard,

    jo das war es vielen Dank für deine Hilfe.

    Anbei das geänderte Skript um die Termine in Stringvariablen abzulegen.

    PHP-Code:
    <?
    $filename       
    =  IPS_GetKernelDir()."Abfuhrtermine.ics"//Ort der iCalender-Datei liegt
    //Aufruf der Funktion
    $iCal_String   =  iCal_to_String($filename);
    function 
    iCal_to_String($filename)
    {
    /*=============================================================
    iCal_to_String - Martin Heinzel - 16.12.2011
    Version: 0.1

    Beschreibung:
    Mit dieser Funktion wird eine iCalender Datei in eine String-
    variable gewandelt.


    Änderungen
    ----------

    tt.mm.jjjj von Version x.x -> y.y

    Beschreibung:

    ================================================================*/

    // Variablen Deklaration --------------------------------------

    // Variablen
    //--------------
    $iCal_DS_komplett                             =  array();    //Komplette iCalender Datensatz
    $restmuell                                    =  array();    //gewandelter iCalender Datensatz
    $biomuell                                    =  array();    //gewandelter iCalender Datensatz
    $wertstoff                                    =  array();    //gewandelter iCalender Datensatz
    $papier                                        =  array();    //gewandelter iCalender Datensatz
    //$baum                                            =  "";    //gewandelter iCalender Datensatz
    $term_jahr                                  =  array();    //Termin Jahr
    $term_monat                                 =  array();    //Termin Monat
    $term_tag                                   =  array();    //Termin Tag
    $term_inhalt                                =  array();    //Termin Text

    //-------------------------------------------------------------

    //--------------------------- Main ----------------------------

    //Daten holen
    if(file_exists($filename))
        {

            
    //Termine in Variable einlesen
            
    $iCal_DS_komplett                    file_get_contents($filename);
            
    //Echo($iCal_DS_komplett);
            //Den kompletten Datensatz zerlegen
            
    $iCal_DS_komplett_arr             explode("BEGIN:"$iCal_DS_komplett);

            
    //alle Datensätze durchlaufen
            
    foreach($iCal_DS_komplett_arr as $key => $value)
                {
                
    //Der erste Datensatz ist "2"
               
    if($key 1)
                    {
                    
    //einzelnen Datensatz in Daten zerlegen
                   
    $iCal_arr explode("\r\n"$value);

                    
    //Nur Datensätze vom Typ "VEVENT" durchlaufen
                    
    if($iCal_arr[0] == "VEVENT")
                        {
                        
    //alle Daten durchlaufen
                        
    foreach($iCal_arr as $ikey => $ivalue)
                            {
                               
    //Daten zerlegen in Parameter und Wert
                                
    $Data_arr explode(":"$ivalue);

                                    
    //Kontrolle der Parameter
                                    
    Switch($Data_arr[0])
                                    {

                                        
    //Zeitstempel Datum
                                        
    case "DTSTART;VALUE=DATE":
                                           
    $term_jahr      substr($Data_arr[1], 04);
                                           
    $term_monat     substr($Data_arr[1], 42);
                                           
    $term_tag        substr($Data_arr[1], 62);
                                            break;

                                        case 
    "SUMMARY":
                                          
    $term_inhalt     $Data_arr[1];
                                        
    //echo($term_inhalt); // zum Überprüfen ob etwas in der $term_inhalt steht
                                    
    }
                            }
                             Switch(
    $term_inhalt)
                                 {
                                   case 
    "Restabfalltonne (60-240l)(14tgl.)"// Suchbegriff
                                    
    $restmuell[] = $term_tag.".".$term_monat.".".$term_jahr;
                                 break;
                              case 
    "Biotonne(14tgl.)":
                                        
    $biomuell[] = $term_tag.".".$term_monat.".".$term_jahr;
                                   break;
                              case 
    "Gelber Sack(14tgl.)":
                                        
    $wertstoff[] = $term_tag.".".$term_monat.".".$term_jahr;
                                   break;
                              case 
    "Papiertonne(4wö.)":
                                         
    $papier[] = $term_tag.".".$term_monat.".".$term_jahr;
                             
                                }
                        }
                }
            }
        }
    else
        {
            
    //Wenn die Datei nicht existiert dann wird ERROR_FILENAME ausgegeben
            
    $iCal_String             "ERROR_FILENAME";
        }





    //--------------------------------Variablen Füllen---------------------------------------------------------

    $restmuell_String implode("|"$restmuell);
    //echo $restmuell_String;
    $Muellsorte='1';
    MUELL_TerminEintragungMuellsorte(54143 /*[Müll\Muellabfuhr]*/$Muellsorte$restmuell_String);

    $papier_String implode("|"$papier);
    //echo $papier_String; 
    $Muellsorte='2';
    MUELL_TerminEintragungMuellsorte(54143 /*[Müll\Muellabfuhr]*/$Muellsorte$papier_String);

    $bio_String implode("|"$biomuell);
    //echo $papier_String; 
    $Muellsorte='3';
    MUELL_TerminEintragungMuellsorte(54143 /*[Müll\Muellabfuhr]*/$Muellsorte$bio_String);


    $gelber_String implode("|"$wertstoff);
    //echo $papier_String; 
    $Muellsorte='4';
    MUELL_TerminEintragungMuellsorte(54143 /*[Müll\Muellabfuhr]*/$Muellsorte$gelber_String);

        
        

    //--------------------------------Variablen Schalten Ende---------------------------------------------------------    

    $ergebnis = array($restmuell,$biomuell,$wertstoff,$papier);

    //print_r($ergebnis);


    return $ergebnis;




    //------------------------- Main ENDE --------------------------
    }
    ?>
    LG Izack
    Ips 4.1 auf RPI2 / All3500 / 1-Wire Usb Stick / 1-Wire Controller 2 E-Service /
    Symcon Z-Wave + / Ir Kopf von Udo / Synology NAS