+ Antworten
Seite 17 von 18 ErsteErste ... 7 15 16 17 18 LetzteLetzte
Ergebnis 161 bis 170 von 174
  1. #161
    Registriert seit
    Apr 2011
    Beiträge
    2,148

    Oh... nein, bitte nicht.

    Also ich "erahne" mal, dass deine PHP-Kenntnisse relativ jung sind, dementsprechen versuche ich es dir ein klein wenig detaillierter zu erkären:

    Zuerst: Sleep: NUR für ganz kurze Pausen, sobald die Ausführung des Scripts die maximale Laufzeit erreicht wird es abgebrochen, was du da vor hast geht nicht.
    Dafür wird ein Timer verwendet, zeige ich dir dann weiter unten.

    Nächster Punkt: Wer soll denn das Script überhaupt aufrufen? Das läuft ja nicht von alleine... wenn das ein Event macht, dann erspar dir die Unterscheidung im Script, das macht es für dich selber verständlicher, zumindest am Anfang.

    So, jetzt in kurzen Worten, aber Schritt-für-Schritt wie du das machst (ausm Kopf, verhafte mich nicht gleich drauf):
    1. Ereignis erstellen -> Auslöser: Regen-Variable (45066) -> bei bestimmten Wert "true" -> ausgelöst wird Script 1
    2. Script 1 erstellen, Inhalt in etwa:
    PHP-Code:
    GAR_AktionAusfuehren(56874,1); // da muss die Instance rein und der Wert aus dem Variablen-Profil, also 1 für parken bis auf weiteres 
    3. Ereignis erstellen -> Auslöser: Regen-Variable (45066) -> bei bestimmten Wert "false" -> ausgelöst wird Script 2
    4. Script 2 erstellen, Inhalt in etwa:
    PHP-Code:
    if ($_IPS['SENDER'] == "TimerEvent")
        {
        

            
    // Timer ausschalten

            
    IPS_SetScriptTimer($_IPS['SELF'], 0);
            
    // Aktion ausführen
                  
    GAR_AktionAusfuehren(56874,3);     // Start/Wiederaufnahme Timer
                

        
    }

    else  {
                  
    // Ziehe einen Timer auf dich selber für 180 Minuten (3 Stunden) auf
        
    IPS_SetScriptTimer($_IPS['SELF'], 180*60); // 180 Minuten *60 macht es leichter zu lesen als 10800
            // wenn der Timer abgelaufen ist ruft sich das Script selber auf und kommt nicht in diesen else-Zweig 
                    // sondern oben in den IF-Zweig
           


    Damit sollte dein Problem eigentlich gelöst sein
    HM-Funk, HM-Wired, EnOcean, Eltako, Z-Wave, Zigbee, 1-Wire, Harmony, Hue, IP-Cams, Modbus, Pluggit, Rasp-Pi's und Eigenbauten

  2. #162
    Registriert seit
    Aug 2017
    Beiträge
    22

    Zitat Zitat von Hagbard235 Beitrag anzeigen
    Welchen Parken-Befehl nutzt du denn: "Parken bis nächsten Timer" oder "bis auf weiteres parken" ?
    Hallo Hagbard235,

    der Fehler lag bei mir. Jetzt funktioniert alles . Danke.

    Gruß Philipp

  3. #163
    Registriert seit
    Oct 2017
    Beiträge
    30

    Standard Mäher mäht nur 20min

    Hallo Zusammen,

    nachdem ich meinen Mäher mit dem Gardena Update versehen habe mäht er leider nur ca. 20min. und fährt dann wieder zurück zum Laden. Habe an der Programmierung seit letztem Jahr nichts geändert. In der Gardena App wird kurz nach dem Start immer die Zeit angezeigt, wann er wieder zurückfahrt. Darauf habe ich keinen Einfluss. Ich habe in der App nur einen Zeitplan, immer Montags von 06:00 - 06:01 Uhr.

    Ich starte den Mäher mit:
    PHP-Code:
    GAR_AktionAusfuehren(16361,4); 
    Hat Gardena etwas geändert? Hat jemand anders das gleiche Problem?

    Gruß, Michael

  4. #164
    Registriert seit
    Apr 2011
    Beiträge
    2,148

    Option 4 wäre 24 Stunden mähen.... aber wenn er nach 20 Minuten wieder zurück fährt würde ich auf den Akku-Stand schielen.... er fährt ja bei Restenergie ~40% wieder zurück.... ist vielleicht der Akku hinüber?
    HM-Funk, HM-Wired, EnOcean, Eltako, Z-Wave, Zigbee, 1-Wire, Harmony, Hue, IP-Cams, Modbus, Pluggit, Rasp-Pi's und Eigenbauten

  5. #165
    Registriert seit
    Oct 2017
    Beiträge
    30

    Hallo,

    danke für den Tipp mit dem Akku. War bei mir aber nicht das Problem. Er ist immer bei ca. 80% zurück gefahren.

    Ich habe die Programierung wie folgt geändert. So geht es wieder.

    PHP-Code:
    GAR_AktionAusfuehren(16361,5); 
    Grüße vom Bodensee, Michael

  6. #166
    Registriert seit
    Apr 2011
    Beiträge
    2,148

    Option 5 ist "Start für 3 Tage" und unterscheidet sich nur in der Anzahl Minuten die übergeben werden.... ich glaube nicht das es daran lag.
    HM-Funk, HM-Wired, EnOcean, Eltako, Z-Wave, Zigbee, 1-Wire, Harmony, Hue, IP-Cams, Modbus, Pluggit, Rasp-Pi's und Eigenbauten

  7. #167
    Registriert seit
    Oct 2017
    Beiträge
    30

    Vielleicht löst es das Problem noch nicht. Es funktioniert aber wieder. Der Robi mäht bis ca.45% Batteriekapazität.

    Woran könnte es sonst noch liegen?

    Name:  IMG_2625.jpg
Hits: 130
Größe:  71.2 KB

  8. #168
    Registriert seit
    Jun 2016
    Beiträge
    158

    Standard php_gardena_senor_class.ips.php

    Hallo Zusammen,

    ich habe mir jetzt auch das Gateway und Feuchtesensor von Gardena zugelegt. Hat noch jemand die Klasse: php_gardena_senor_class.ips.php aktualisiert am laufen?

    Bekomme die Klasse von Seite 3 Post #25 irgendwie nicht zum laufen.
    Wäre dankbar für Unterstützung. Ich habe selbst noch keine Klasse erstellt und bin jetzt etwas überfordert.
    Vielleicht kann mir auch jemand auf die Sprünge helfen, was ich in dem Script ändern muss.

    Vielen Dank

    VG Alex
    Homamatik Wired und Funk User, IPS 5.3 auf Win 7, Sonos, Unifi Netzwerk, Fritzbox Telefonanlage

  9. #169
    Registriert seit
    Jun 2016
    Beiträge
    158

    Kann mir vielleicht jemand weiterhelfen?

    Aktuell habe ich drei Schripte:

    Script 1: pass
    PHP-Code:
    $user "meine Mail Adresse";
    $pw "Mein Passwort"
    Script 2 ist die Abfrage:
    PHP-Code:
    <?php

        error_reporting
    (E_ALL);
        include 
    IPS_GetKernelDir()."scripts\\59757.ips.php";
        include 
    IPS_GetKernelDir()."scripts\\45657.ips.php";

        
    $gardena = new gardena_sensor($user$pw);
        
    $mower $gardena -> getFirstDeviceOfCategory($gardena::CATEGORY_SENSOR);

        
    print_r($gardena);
    und Script 3 ist die Class: "php_gardena_senor_class"
    PHP-Code:
    <?php

    // -----------------------------------------------------------------------------
    class gardena_sensor
    {
        var 
    $user_id$token$locations;
        var 
    $devices = array();

        const 
    LOGINURL        "https://sg-api.dss.husqvarnagroup.net/sg-1/sessions";
        const 
    LOCATIONSURL    "https://sg-api.dss.husqvarnagroup.net/sg-1/locations/?user_id=";
        const 
    DEVICESURL    "https://sg-api.dss.husqvarnagroup.net/sg-1/devices?locationId=";
        const 
    CMDURL        "https://sg-api.dss.husqvarnagroup.net/sg-1/devices/|DEVICEID|/abilities/sensor/command?locationId=";
    //-----------------------------------------------------------------------------
        // Sensor
        
    const CATEGORY_DEVICE_INFO         "device_info";
        const 
    CATEGORY_SENSOR              "sensor";
        
    // Sensor Batterie
        
    const CATEGORY_BATTERY             "battery";
        
    // Sensor Radio - Funksignal
        
    const CATEGORY_RADIO               "radio";
        
    // Sensor Temperatur
        
    const CATEGORY_AMBIENT_TEMPERATURE "ambient_temperature";
        
    // Sensor Boden_Temperatur
        
    const CATEGORY_SOIL_TEMPERATURE "soil_temperature";
        
    // Sensor Luftfeuchtigkeit
        
    const CATEGORY_HUMIDITY"humidity";
        
    // Sensor Helligkeit
        
    const CATEGORY_LIGHT"light";

    //-----------------------------------------------------------------------------
        
    function gardena_sensorauslesen($user$pw)
        {
            
    $data = array(
                
    "sessions" => array(
                    
    "email" => "$user""password" => "$pw")
                );
            
    $data_string json_encode($data);
            
    $ch curl_init(self::LOGINURL);
            
    curl_setopt($chCURLOPT_CUSTOMREQUEST"POST");
            
    curl_setopt($chCURLOPT_POSTFIELDS$data_string);
            
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
            
    curl_setopt($chCURLOPT_HTTPHEADER, array(
                
    'Content-Type:application/json',
                
    'Content-Length: ' strlen($data_string))
            );
            
    $result curl_exec($ch);
            
    $data json_decode($result);
            
    $this -> token $data -> sessions -> token;
            
    $this -> user_id $data -> sessions -> user_id;
            
    $this -> loadLocations();
            
    $this -> loadDevices();
        }
    // -----------------------------------------------------------------------------
        
    function loadLocations()
        {
            
    $url self::LOCATIONSURL $this -> user_id;
            
    $ch curl_init($url);
            
    curl_setopt($chCURLOPT_CUSTOMREQUEST"GET");
            
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
            
    curl_setopt($chCURLOPT_HTTPHEADER, array(
                
    'Content-Type:application/json',
                
    'X-Session:' $this -> token)
            );
            
    $this -> locations json_decode(curl_exec($ch)) -> locations;  
        }
    // -----------------------------------------------------------------------------
        
    function loadDevices()
        {
            foreach(
    $this->locations as $location)
            {
                
    $url self::DEVICESURL $location -> id;
                
    $ch curl_init($url);
                
    curl_setopt($chCURLOPT_CUSTOMREQUEST"GET");
                
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
                
    curl_setopt($chCURLOPT_HTTPHEADER, array(
                    
    'Content-Type:application/json',
                    
    'X-Session:' $this -> token)
                );
                
    $this -> devices[$location -> id] = json_decode(curl_exec($ch)) -> devices;
            }
        }
    // -----------------------------------------------------------------------------
        /*
        * Finds the first occurrence of a certain category type.
        * Example: You want to find your only mower, having one or more gardens. 
        * @param constant $category
        */
        
    function getFirstDeviceOfCategory($category)
        {
            foreach(
    $this -> devices as $locationId => $devices)
            {
                foreach(
    $devices as $device)
                    if (
    $device -> category == $category)
                        return 
    $device;
            }
        }
    // -----------------------------------------------------------------------------
        
    function getDeviceLocation($device)
        {
            foreach(
    $this -> locations as $location)
                foreach(
    $location -> devices as $d)
                    if (
    $d == $device -> id)
                        return 
    $location;
        }
    // -----------------------------------------------------------------------------
        
    function getInfo($device$category_name$proberty_name)
        {
            foreach (
    $device -> abilities as $ability)
                if (
    $ability -> name == $category_name)
                    foreach(
    $ability -> properties as $property)
                        if (
    $property -> name == $proberty_name)
                            return 
    $property -> value;
        }

    }

    ?>
    Wenn ich die Abfrage starte bekomme ich folgende Ausgabe:

    gardena_sensor Object ( [user_id] => [token] => [locations] => [devices] => Array ( ) )

    Kann mir jemand helfen, wo mein Fehler liegt?

    VG Alex

    Update: Fehler gefunden.
    Ich habe in der Klasse folgende Zeile geändert und schon kamen die Daten:

    function gardena_sensorauslesen($user, $pw)
    in
    function __construct($user, $pw)
    Geändert von Alexandro (01.05.20 um 11:04 Uhr)
    Homamatik Wired und Funk User, IPS 5.3 auf Win 7, Sonos, Unifi Netzwerk, Fritzbox Telefonanlage

  10. #170
    Registriert seit
    Jun 2016
    Beiträge
    158

    Hallo Zusammen,

    ich habe 2 Feuchtesensoren. Wie kann ich denn den Status des zweiten Sensors abfragen?
    Im Script von WiBo wird ja immer nur der erste abgefragt.
    PHP-Code:
    <?php
        error_reporting
    (E_ALL);
        require_once(
    IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.IPS_GetScriptFile(59757 ));
        require_once(
    IPS_GetKernelDir()."scripts".DIRECTORY_SEPARATOR.IPS_GetScriptFile(45657    ));

        
    $gardena = new gardena_sensor($user$pw);
        
    $mower $gardena -> getFirstDeviceOfCategory($gardena::CATEGORY_SENSOR);
        
        
    $category_name "device_info";

        
    $proberty_name "serial_number";
        
    $status $gardena -> getInfo($mower$category_name$proberty_name);

        echo 
    $status;
    Kann mir jemand hier weiterhelfen?

    VG Alex
    Homamatik Wired und Funk User, IPS 5.3 auf Win 7, Sonos, Unifi Netzwerk, Fritzbox Telefonanlage

Ähnliche Themen

  1. Mähroboter Worx Landroid - Erfahrungen?
    Von Titus im Forum Haustechnik
    Antworten: 56
    Letzter Beitrag: 29.03.20, 21:52
  2. Antworten: 31
    Letzter Beitrag: 18.04.17, 10:31
  3. Antworten: 25
    Letzter Beitrag: 02.02.17, 23:23
  4. Gardena engagiert sich im Bereich Smart Garden
    Von Bayaro im Forum Off Topic
    Antworten: 6
    Letzter Beitrag: 02.08.16, 16:52
  5. Mähroboter Robomow RS630
    Von tomgr im Forum Haustechnik
    Antworten: 19
    Letzter Beitrag: 02.07.16, 17:05