Seite 1 von 1

Rasenmäherroboter - Gargentor automatisch öffnen

Verfasst: 29. Mär 2020 10:56
von maddin2020
Hallo ich würde gerne eine Rule erstellen die folgendes macht.

5 Minuten bevor der Roboter mit seinem Zeitplan startet soll das Garagentor der Robotergarage öffnen.

Die Zeit aus dem Zeitplan liegt bei mir in einem DateTime Item vor.

Code: Alles auswählen

Items
Rollershutter ShellyGarageRoboterRollerControl
DateTime RasenmaehernaechsterStart
Folgende Rule hab ich bisher. Irgendwie geht es aber noch nicht und ich glaube es gibt noch eine viel bessere Lösung...

Code: Alles auswählen

rule "Rasenmäher Garagentor vorab öffnen"
when 
      Time cron "0 0/1 * 1/1 * ? *"   // jede Minute prüfen
then
if ( RasenmaehernaechsterStart != NULL){
  val aktuelle_Zeit_millis = now.millis
  val start_zeitplan_millis = (RasenmaehernaechsterStart.state as DateTimeType).calendar.timeInMillis
 if (aktuelle_Zeit_millis - 300000 >= start_zeitplan_millis){
    ShellyGarageRoboterRollerControl.sendCommand(UP)
 }
}
 end
 
Über jeden Tipp bin ich dankbar

Bleibt gesund!

Re: Rasenmäherroboter - Gargentor automatisch öffnen

Verfasst: 29. Mär 2020 12:36
von int5749
Hallo,
in welchem Format liegt denn die Startzeit vor?

Ich würde einmal am Tag

Code: Alles auswählen

when
    Time cron "0 0 0 * * ?" or
    System started
then
Von der Startzeit 5 Min abziehen und in eine neue Variable packen.
Dann kannst Du genau auf diese Zeit triggern und dann das Tor öffnen?

So brauchst Du nicht minütlich zu prüfen ;-)

Gruß
int5749

Re: Rasenmäherroboter - Gargentor automatisch öffnen

Verfasst: 29. Mär 2020 13:01
von violine21
Hallo,
ich würde das auch wie mein Vorredner angehen. Ein Proxy-Item für die berechnete Garagentor-Zeit (GaragentorOeffnen) anlegen.
Dieses noch Persistieren:

Code: Alles auswählen

GaragentorOeffnen: strategy = everyChange, everyDay, restoreOnStartup
Dann wird beim Ändern der RasenmäherStartzeit die berechnete Garagentorzeit in einer Rule ermittelt.

Code: Alles auswählen

when
Item RasenmaehernaechsterStart changed
then
//RasenmaehernaechsterStart - 5 Min = GaragentorOeffnen
//evtl. noch prüfen, ob die Differenz aktuelle Zeit und neue Rasenmäher-Startzeit kleiner ist, als 5 Minuten,
//dann das Garentor sofort öffnen.
end
Dann auf "GaragentorOeffnen" triggern.

Darf ich wissen, was Du für einen Mähroboter hast?

Re: Rasenmäherroboter - Gargentor automatisch öffnen

Verfasst: 29. Mär 2020 15:54
von maddin2020
Hallo habe einen Gardena Sileno. Danke für die Tips aber wie genau ziehe ich von der Zeit 5 min ab und anscheinend wir RasenmaehernaechsterStart changed nicht akzeptiert da es ja ein item DateTime ist ...

Re: Rasenmäherroboter - Gargentor automatisch öffnen

Verfasst: 29. Mär 2020 16:27
von violine21
Ich glaube, wir denken zu kompliziert.
Wie startest Du denn den Rasen-Robi?
Wird das Item

Code: Alles auswählen

DateTime RasenmaehernaechsterStart
nur vom Robi beschrieben?
Oder hast Du die Möglichkeit, den Robi per OH zu starten?

Ich habe einen Worx Landroid, der Ablauf ist bei meinem so:
1. Startzeit erreicht
2. kurze Pause
3. Warnsignal
4. kurze Pause
5. er fährt los
Zwischen 1 und 5 ist noch genug Zeit, das Tor zu öffnen. Vorrausgesetzt, ich hätte eins.

Re: Rasenmäherroboter - Gargentor automatisch öffnen

Verfasst: 30. Mär 2020 14:27
von udo1toni
maddin2020 hat geschrieben: 29. Mär 2020 15:54 anscheinend wir RasenmaehernaechsterStart changed nicht akzeptiert da es ja ein item DateTime ist ...
Der Trigger funktioniert, allerdings nur für den Zeitpunkt, wenn der Mäher die Zeit das nächste Mal setzt. Du müsstest also auf jeden Fall noch ein System started als Trigger hinzufügen, damit beim Systemstart bzw. wenn die Rules neu geladen werden ebenfalls eine Berechnung angestoßen wird.
maddin2020 hat geschrieben: 29. Mär 2020 15:54 wie genau ziehe ich von der Zeit 5 min ab
Es handelt sich ja um ein DateTime Item. Die Berechnung ist also leider etwas umständlich.

Code: Alles auswählen

rule "Rasenmäher Garage Update"
when
    System started or
    Item RasenmaehernaechsterStart changed 
then
    if(RasenmaehernaechsterStart.state == NULL) {
        logWarn("lawngarage","Berechnung Rasenmähergaragenöffnung fehlgeschlagen!")
        // evtl. weitere Warnung über telegram, mail, Warmlampe, whatever...
        return;
    }
    val nextStart = new DateTime(RasenmaehernaechsterStart.state.toString)
    GarageNaechsteOeffnung.postUpdate(nextStart.minusMinutes(5).toString)
end
Diese Rule berechnet aber nur den Zeitpunkt, zum berechneten Zeitpunkt passiert aber nichts. Dazu braucht es noch etwas mehr:

Code: Alles auswählen

// globale Variablen werden zu Beginn der Datei definiert!
var Timer tlawnMowerGarage = null

rule "Rasenmäher Garage Update"
when
    System started or
    Item RasenmaehernaechsterStart changed 
then
    if(RasenmaehernaechsterStart.state == NULL) {
        logWarn("lawngarage","Berechnung Rasenmähergaragenöffnung fehlgeschlagen!")
        // evtl. weitere Warnung über telegram, mail, Warmlampe, whatever...
        return;
    }
    val nextStart = new DateTime(RasenmaehernaechsterStart.state.toString)
    GarageNaechsteOeffnung.postUpdate(nextStart.minusMinutes(5).toString)
    if(nextStart.minusMinutes(5).isAfter(now)) {
        tlawnMowerGarage?.cancel
        tlawnMowerGarage = createTimer(nextStart.minusMinutes(5),[|
            LawnMowerGarage.sendCommand(UP)
        ])
    } else {
        logWarn("lawngarage","Berechnung Öffnungszeitpunkt liegt in der Vergangenheit!")
    }
end
So sollte es funktionieren.

Re: Rasenmäherroboter - Gargentor automatisch öffnen

Verfasst: 13. Apr 2020 11:25
von Brauni74
Hallo zusammen,
Ich bin absolut neu hier und hab von openHAB noch keine richtige Ahnung.
Ich würde sehr gern auch das Tor meines Mähers automatisch öffnen und schließen.
Das Tor kann ich bereits über einen Shelly 2.5 mit openHAB bewegen.
Ich habe einen Husqvarna automower 315x.
Kann ich irgendwie die nächste Startzeit auslesen um so das Tor zu öffnen?
Würde mich über jede Hilfe freuen.

Danke im vorraus

Re: Rasenmäherroboter - Gargentor automatisch öffnen

Verfasst: 13. Apr 2020 11:37
von violine21
Brauni74 hat geschrieben: 13. Apr 2020 11:25 Ich habe einen Husqvarna automower 315x.
Schau Dir mal das Binding an:
https://www.openhab.org/addons/bindings/robonect/

Re: Rasenmäherroboter - Gargentor automatisch öffnen

Verfasst: 13. Apr 2020 15:12
von Brauni74
Danke für die schnelle Antwort.
Das hab ich schon gesehen aber leider ist mein Mäher nicht per wlan zu erreichen.
Ich hab Automower Connect.
Dafür hab ich leider noch kein binding gefunden.

Re: Rasenmäherroboter - Gargentor automatisch öffnen

Verfasst: 5. Mai 2021 10:33
von Manni300DW124
Hallo
Würde mich Interessieren ob die Lösung von udo1ton funktioniert hat.
Über eine Antwort würde ich mich freuen.