+ Antworten
Ergebnis 1 bis 10 von 10
  1. #1
    Registriert seit
    Feb 2009
    Ort
    Berlin
    Beiträge
    55

    Question Gartenbewässerung mit Gardena Gatewaybox und IPS

    Hallo,

    im Moment setze ich für die Gartenbewässerung den Bewässerungscomputer C 1060 solar plus von Gardena in Verbindung mit einem Gardena Bodenfeuchtesensor ein. Die Programmierung des Computers in Verbindung mit dem Bodenfeuchtesensor und einem automatischen Wasserverteiler ist aber leider sehr eingeschränkt, so dass man für die einzelnen Bewässerungsstränge keine freien Startzeiten mehr einstellen kann.

    Nun gibt es für ca 50€ für den C1060 plus/solar plus eine Gatewaybox und eine kleine Software, mit der man vom PC aus den Bewässerungscomputer programmieren und steuern kann. Infos zu dem Gerät siehe: Informationen zur Programmierung von Bewässerungcomputern über PC
    Dort kann man sich den Treiber und die Software runterladen. Anhand des Treibernamens ist die verwendete Hardware eine USB to UART Bridge von Silicon Labs.

    Da ich mich mit seriellen Protokollen und dem Reverse Engineering der Software leider so gar nicht auskenne muss ich die Frage hier einfach mal ins Forum stellen: Ist es möglich über diese Gatewaybox aus IPS heraus das Ventil zu steuern und den Bodenfeuchtesensor abzufragen?
    Würde mich freuen wenn jemand der sich mit sowas auskennt mal seine Meinung kund tut.

    Vielen Dank und erstmal ein schönes Wochenende!
    Tobias

  2. #2
    Registriert seit
    Feb 2009
    Ort
    Berlin
    Beiträge
    55

    So, ich habe mir mal mit Auto-IT ein kleines Script gebastelt, welches mir die Daten aus der Gardena-SW ausliest und an IPS überträgt und mit dem ich theoretisch auch das Ventil öffnen und schließen kann... Theoretisch, weil ich noch auf die bestellte Gatewaybox von Gardena warte.
    Dazu habe ich mir ein Script im IPS gebastelt welches dann die Daten auswertet und für meinen Gardena-Wasserverteiler passend die Bewässerung auslöst. Wenn die Box da ist werde ich noch etwas basteln müssen und stelle dann bei Interesse gerne die Scripte zur Verfügung.

  3. #3
    Registriert seit
    Apr 2008
    Ort
    Obersulm
    Beiträge
    261

    hi, klar wäre klasse, wenn du dein script veröffentlichst. hätte intresse dran

    gruß
    LG Reblade
    Homeserver 2011; IPS 5.x; HM; Alexa; HUE; sonos; netatmo; Fitzbox 7590: Samsung PowerBot's; Siemens HomeConnect; Landroid S; Xiaomi; Nuki

  4. #4
    Registriert seit
    Feb 2009
    Ort
    Berlin
    Beiträge
    55

    1. Zuerst habe ich im IPS Variablen wie im Screenshot zu sehen angelegt:
    Anhang 12952

    2. Dann habe ich die BWC_Remote_v1.0.exe heruntergeladen und ins IP-Symcon Hauptverzeichnis kopiert.

    3. Die IPSCommand.exe aus der angehängten rar-Datei wird ebenfalls in das IP-Symcon Hauptverzeichnis kopiert.

    4. Auto-It herunterladen und installieren.

    5. Das IPS-Skript:

    PHP-Code:
    <?
    $debug 
    true;
    //Event-IDs
    $BWStart 49297;
    $Sicheraus 52578;

    //Daten vom BWC holen
    IPS_ExecuteEx(".\GardenaGatewaybox.exe""Status"falsetrue1);

    //Daten aus Variablen auslesen
    $Regenmenge24h GetValueFloat(41210);
    $Bodenfeuchte GetValueString(21982);
    $Ventilstatus GetValueString(42277);
    $VentilRestlaufzeit date("H:i",strtotime(GetValue(35041)));
    $Runtime date("H:i",strtotime(GetValue(37606)));
    $Batteriestatus GetValueString(40144);
    $Systemzeit strtotime(GetValue(48286));
    $Uhrzeit date("H:i",time());
    $Wasserverteiler GetValueInteger(32857);
    $Ventilchanged IPS_GetVariable(42277);
    $Ventilchanged $Ventilchanged['VariableChanged'];


    if (isset(
    $IPS_EVENT))
        {
        if (
    $IPS_EVENT == "$BWStart")
            {
            
    switch (
    $Wasserverteiler){
            case 
    1:
                
    //Entscheidung treffen ob an diesem Tag bewässert werden soll
                
    if ($Bodenfeuchte == "Sensor trocken" && $Regenmenge24h && $Ventilstatus == "Ventil geschlossen")
                {
                
    SetValueBoolean(39220true);
             
    $Runtime 15//Bewässerungsdauer für aktuellen Bewässerungsstrang am Verteiler setzen
                //jeweils nächste Startzeit setzen
                
    IPS_SetEventCyclicTimeBounds ($BWStartmktime(8000), 0);
                }
                Else 
    SetValueBoolean(39220false);
                break;

            case 
    2:
                
    $Runtime 10;
                
    IPS_SetEventCyclicTimeBounds ($BWStartmktime(9000), 0);
                break;
                
            case 
    3:
                
    $Runtime 10;
                
    IPS_SetEventCyclicTimeBounds ($BWStartmktime(18000), 0);
                break;
                
              case 
    4:
                
    $Runtime 5;
                
    IPS_SetEventCyclicTimeBounds ($BWStartmktime(19000), 0);
                break;
                
            case 
    5:
                
    $Runtime 5;
                
    IPS_SetEventCyclicTimeBounds ($BWStartmktime(20000), 0);
                break;
                
            case 
    6:
                
    $Runtime 4;
                
    IPS_SetEventCyclicTimeBounds ($BWStartmktime(7000), 0);
                break;
                                                    }
    IPS_SetEventActive($BWStart,true);

    if (
    GetValueBoolean(39220))
    {
            
    IPS_ExecuteEx(".\GardenaGatewaybox.exe""Runtime $Runtime"falsetrue1);
            
    sleep(5);
            
    IPS_ExecuteEx(".\GardenaGatewaybox.exe""VentilAuf"falsetrue1);
            
    sleep(5);
            
    IPS_ExecuteEx(".\GardenaGatewaybox.exe""Status"falsetrue1);
            
    sleep(5);
            if (
    $Wasserverteiler 6SetValueInteger(32857$Wasserverteiler +1);
            Else 
    SetValueInteger(328571);

    //Sicherheitsabschaltung 3 Minuten nach Ende der Restlaufzeit
        
    $VentilRestlaufzeit explode(":"GetValue(35041));
        
    $Sicherheitsaus strtotime($Uhrzeit)+180+($VentilRestlaufzeit[1]*60);
        
    IPS_SetEventCyclicTimeBounds ($Sicheraus,$Sicherheitsaus0);
        
    IPS_SetEventActive($Sicheraus,true);
    }
            }
        }
        

    if (isset(
    $IPS_EVENT))
        {
        if (
    $IPS_EVENT == "$Sicheraus")
            {
            
    IPS_ExecuteEx(".\GardenaGatewaybox.exe""VentilZu"truefalse1);
            
    sleep(5);
            
    IPS_SetEventActive($Sicheraus,false);
            
    IPS_ExecuteEx(".\GardenaGatewaybox.exe""Status"falsetrue1);
            }
        }



    if (
    $debug){
    echo 
    "BWC-Systemzeit: ".date("H:i"$Systemzeit)."\n";
    echo 
    "PC-Systemzeit: $Uhrzeit \n";
    echo 
    "Sicherheitsaus: ".date("H:i"$Sicherheitsaus)."\n";
    echo 
    "Sicherheitsaus: $Sicherheitsaus\n";
    //echo "VentilRestlaufzeit: ".date("H:i",$VentilRestlaufzeit)."\n";
    echo "VentilRestlaufzeit: $VentilRestlaufzeit \n";
    echo 
    "Runtime: $Runtime \n";
    echo 
    "Regenmenge24h: $Regenmenge24h \n";
    echo 
    "Bodenfeuchte: $Bodenfeuchte \n";
    echo 
    "Ventilstatus: $Ventilstatus \n";
    echo 
    "VentilRestlaufzeit: $VentilRestlaufzeit \n";
    echo 
    "Runtime: $Runtime \n";
    echo 
    "Batteriestatus: $Batteriestatus \n";
    echo 
    "Wasserverteiler: $Wasserverteiler \n";
    echo 
    "Ventilchanged: ".date("H:i"$Ventilchanged)."\n";
    }
    ?>
    An das Skript habe ich drei Events wie folgt angehängt:
    Anhang 12939

    Im Skript müssen einige IDs angepasst werden, die sich hoffentlich aus den Screenshots erklären.

    Das Skript ist im Moment so aufgebaut, dass es zuerst anhand der verfügbaren Daten prüft ob an diesem Tag bewässert werden soll. Wenn ja, dann setzt es die Timer und die Bewässerungszeit und macht 6 Bewässerungen mit voreingestellten Zeiten, um den automatischen Wasserverteiler von Gardena jeweils auf den nächsten Ausgang zu schalten. Ohne den Verteiler könnte man das Skript vermutlich noch deutlich einfacher gestalten.
    Ich ziehe zur Entscheidung ob bewässert werden soll noch meinen Regenmengenmesser hinzu ($Regenmenge24h = GetValueFloat(41210); ).

    6. Das Auto-It-Skript wird im IPS-Homeverzeichnis abgelgt und dort nach Anpassung der IDs kompiliert.
    PHP-Code:
    #cs ----------------------------------------------------------------------------

     
    AutoIt Version3.3.6.1
     Author
    :         myName

     Script 
    Function:
        
    Template AutoIt script.

    #ce ----------------------------------------------------------------------------
    ;Prüfen ob Fenster vorhanden
    Wenn Fenster nicht vorhanden dann starte GardenaSW und warte bis aktiv
    ;Verbindung herstellen
    If Not WinExists ("Gardena - BWC Remote - Untitled"Then
        Run 
    ("BWC_Remote_v1.0.exe")
        
    WinWait ("Gardena - BWC Remote - Untitled")
        
    ControlClick("Gardena - BWC Remote - Untitled","","[ID:1039]")
        ;
    warten bis Verbindung hergestellt
    EndIf


    If 
    $CmdLine[0] = 0 Then
    MsgBox
    (4096"Hilfe""Mögliche Parameter:" & @CR "Status" & @CR "VentilAuf" & @CR "VentilZu" & @CR "Timesync" & @CR "Runtime"20)
    Else


    Switch 
    $CmdLine[1]

    Case 
    $CmdLine[1] = "Status"
    ;Daten auslesen Button drücken
    $Sensor 
    ControlGetText ("Gardena - BWC Remote - Untitled","","[ID:1079]")
    $Ventil ControlGetText ("Gardena - BWC Remote - Untitled","","[ID:1083]")
    $VentilRestlaufMinute ControlGetText ("Gardena - BWC Remote - Untitled","","[ID:1004]")
    $VentilRestlaufStunde ControlGetText ("Gardena - BWC Remote - Untitled","","[ID:1003]")
    $Batterie ControlGetText ("Gardena - BWC Remote - Untitled","","[ID:1001]")
    $SystemStunde ControlGetText ("Gardena - BWC Remote - Untitled","","[ID:1020]")
    $SystemMinute ControlGetText ("Gardena - BWC Remote - Untitled","","[ID:1021]")
    $RuntimeStunde ControlGetText ("Gardena - BWC Remote - Untitled","","[ID:1047]")
    $RuntimeMinute ControlGetText ("Gardena - BWC Remote - Untitled","","[ID:1048]")
    ;
    MsgBox(4096"Daten aus BWC""Sensor: " $Sensor & @CR "Batterie: " $Batterie & @CR "Ventilstatus: " $Ventil & @CR "Systemzeit: " $SystemStunde ":" $SystemMinute & @CR "Runtime: " $RuntimeStunde ":" $RuntimeMinute 20)
    ;
    Daten in IPS-Variablen schreiben
    Run
    ('IPSCommand.exe -h 192.168.6.100 -s 40144 '&chr(34)&$Batterie&chr(34)&' -s 21982 '&chr(34)&$Sensor&chr(34)&' -s 37606 '&chr(34)&$RuntimeMinute&chr(34)&' -s 42277 '&chr(34)&$Ventil&chr(34)&' -s 48286 '&chr(34)&$SystemStunde&chr(34)&':'&chr(34)&$SystemMinute&chr(34)&' -s 35041 '&chr(34)&$VentilRestlaufStunde&chr(34)&':'&chr(34)&$VentilRestlaufMinute&chr(34))


    Case 
    $CmdLine[1] = "VentilAuf"
    ;Button Ventil auf drücken
    ControlClick
    ("Gardena - BWC Remote - Untitled","","[ID:1073]")
    $Ventil ControlGetText ("Gardena - BWC Remote - Untitled","","[ID:1083]")
    Run('IPSCommand.exe -h 192.168.6.100 -s 42277 '&chr(34)&$Ventil&chr(34)&'')

    Case 
    $CmdLine[1] = "VentilZu"
    ;Button Ventil zu drücken
    ControlClick
    ("Gardena - BWC Remote - Untitled","","[ID:1074]")
    $Ventil ControlGetText ("Gardena - BWC Remote - Untitled","","[ID:1083]")
    Run('IPSCommand.exe -h 192.168.6.100 -s 42277 '&chr(34)&$Ventil&chr(34)&'')

    Case 
    $CmdLine[1] = "Timesync"
    ;Buton mit PC-Zeit synchronisieren drücken
    ControlClick
    ("Gardena - BWC Remote - Untitled","","[ID:1019]")
    $SystemStunde ControlGetText ("Gardena - BWC Remote - Untitled","","[ID:1020]")
    $SystemMinute ControlGetText ("Gardena - BWC Remote - Untitled","","[ID:1021]")
    Run('IPSCommand.exe -h 192.168.6.100 -s 48286 '&chr(34)&$SystemStunde&chr(34)&':'&chr(34)&$SystemMinute&chr(34)&'')

    Case 
    $CmdLine[1] = "Runtime"
    ;Zeit setzen und Daten übertragen
    ControlSetText 
    ("Gardena - BWC Remote - Untitled","","[ID:1048]"$CmdLine[2])
    ControlSend ("Gardena - BWC Remote - Untitled","","[ID:1048]""{ENTER}")
    ControlCommand("Gardena - BWC Remote - Untitled","","[ID:59392]""SendCommandID"32779)

    EndSwitch

    EndIf 
    7. Für die Gateway-Box gibt es aktuellere Treiber direkt vom Hersteller der Platine.

    Bei unklarheiten einfach fragen!

    Gruß
    Tobias
    Geändert von Strichcode (18.08.11 um 14:12 Uhr) Grund: Skripte Fehlerbereinigt, Screenshots aktualisiert, IPS-Skript nochmals Fehlerbereinigt
    IPS 5.1, ca. 1200 Variablen, Windows Server 2016 mit Essentials Rolle, IntelDB65AL, i5, 40TB HDD, 24GB RAM, FHZ1300 an Fritz!Box, diverse FS20 und Homematic-Komponenten, Homematic CCU3, Homematic LAN, mehrere Fritzboxen, WLAN-Cams, 2 Windows 10 Mobile-Geräte, 2 Windows 10 Tablets, Android Mobile-Geräte, Philips Hue

  5. #5
    Registriert seit
    Feb 2009
    Ort
    Berlin
    Beiträge
    55

    So, Hardware ist da, habe noch einige Fehler beseitigt und das AutoIt_Skript an die Merkwürdigkeiten der Gardena_SW angepasst. Bei der Runtime lässt sich z.B. die Stunde nicht setzen, ich werte jetzt nur noch die Minuten aus und habe dafür die ehemalige String-Variable als Integer-Variable neu angelegt.

    Bis jetzt läuft erstmal alles was ich getestet habe, ob sich das Skript im Alltag bewährt wird sich zeigen.

    Gruß
    Tobias
    IPS 5.1, ca. 1200 Variablen, Windows Server 2016 mit Essentials Rolle, IntelDB65AL, i5, 40TB HDD, 24GB RAM, FHZ1300 an Fritz!Box, diverse FS20 und Homematic-Komponenten, Homematic CCU3, Homematic LAN, mehrere Fritzboxen, WLAN-Cams, 2 Windows 10 Mobile-Geräte, 2 Windows 10 Tablets, Android Mobile-Geräte, Philips Hue

  6. #6
    Registriert seit
    Jul 2005
    Ort
    Schwanewede/Niedersachsen
    Beiträge
    1,898

    Hallo Tobias,

    Wie ist denn die Anbindung realisiert ? Der Gardena Bewässerungscompter muss doch mit der Gateway Box verbunden werden und diese wieder mit dem IPS Server ?! Wie hast Du denn Weg vom Rechner zur Gateway Box gelöst?
    Gruss
    Horst

    IP-Symcon 5.0 IPS-868, FS20, HM, HUE, Plugwise

  7. #7
    Registriert seit
    Feb 2009
    Ort
    Berlin
    Beiträge
    55

    Habe nochmals ein paar Fehler im IPS-Skript ausgemerzt und musste vorerst einige Sleep-Befehle einbauen, mal sehen ob man da noch eine schönere Lösung findet. Der obere Post wurde angepasst.

    @hbraun: Bei mir hängt der Gardena-BWC vor dem Kellerfenster in dem auch mein IPS-Server steht. Damit reichte mir ein langes USB-Kabel vom PC bis zum Fenster, dort hängt die Gatewaybox, und von da aus geht es mit einem relativ kurzen PS/2-Kabel durch das Fenster in den BWC.
    IPS 5.1, ca. 1200 Variablen, Windows Server 2016 mit Essentials Rolle, IntelDB65AL, i5, 40TB HDD, 24GB RAM, FHZ1300 an Fritz!Box, diverse FS20 und Homematic-Komponenten, Homematic CCU3, Homematic LAN, mehrere Fritzboxen, WLAN-Cams, 2 Windows 10 Mobile-Geräte, 2 Windows 10 Tablets, Android Mobile-Geräte, Philips Hue

  8. #8
    Registriert seit
    Jul 2005
    Ort
    Schwanewede/Niedersachsen
    Beiträge
    1,898

    Tja, da komm ich nicht hin, bei mir sind es so 20-30 mtr.
    Gruss
    Horst

    IP-Symcon 5.0 IPS-868, FS20, HM, HUE, Plugwise

  9. #9
    Registriert seit
    Feb 2009
    Ort
    Berlin
    Beiträge
    55

    Das ist natürlich schon eine Strecke, dem seriellen PS/2 Kabel sollte die Distanz aber nichts ausmachen. Ich weiß allerdings nicht, ob man so ein Kabel fertig kaufen könnte, serlberlöten sollte ja aber nicht das Problem sein.
    Aber es gibt sicher noch andere Möglichkeiten die Steuerung zu realisieren, bei mir war halt bis auf die Gatewaybox schon alles vorhanden und die räumlichen Umstände günstig.
    IPS 5.1, ca. 1200 Variablen, Windows Server 2016 mit Essentials Rolle, IntelDB65AL, i5, 40TB HDD, 24GB RAM, FHZ1300 an Fritz!Box, diverse FS20 und Homematic-Komponenten, Homematic CCU3, Homematic LAN, mehrere Fritzboxen, WLAN-Cams, 2 Windows 10 Mobile-Geräte, 2 Windows 10 Tablets, Android Mobile-Geräte, Philips Hue

  10. #10
    Registriert seit
    Jul 2005
    Ort
    Schwanewede/Niedersachsen
    Beiträge
    1,898

    Naja ist jetzt nicht so schlimm, dieser Sommer ist ja fast vorbei (war überhaupt schon Sommer ?).
    Evtl. gehe ich das irgendwann mal mit den Gardena Ventilen und Homematic an.
    Gruss
    Horst

    IP-Symcon 5.0 IPS-868, FS20, HM, HUE, Plugwise

Ähnliche Themen

  1. IPS goes Skype
    Von Schablone im Forum Externe Zusatzsoftware
    Antworten: 39
    Letzter Beitrag: 19.10.13, 18:22
  2. Terrarien, Netzwerk und Server Infrastruktur @ IPS - Worklog
    Von debauer im Forum Projekt Showcase
    Antworten: 34
    Letzter Beitrag: 25.09.11, 11:30
  3. Gartenbewässerung mit IPS
    Von UH368 im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 29
    Letzter Beitrag: 13.06.11, 15:26
  4. IPS Watchdog Funktion - Programm?
    Von obicom im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 13
    Letzter Beitrag: 18.04.10, 11:11
  5. Fernbedienung und IPS: Wie kann ich beides zur Steuerung verwenden?
    Von Budgreg im Forum Sonstige Funkkomponenten / Wetterstationen
    Antworten: 10
    Letzter Beitrag: 29.11.06, 09:11

Stichworte