Mähroboter - bei Regen in der Ladestation lassen

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Benutzeravatar
WupperJunge
Beiträge: 57
Registriert: 27. Mai 2021 18:19
Wohnort: Wuppertal

Mähroboter - bei Regen in der Ladestation lassen

Beitrag von WupperJunge »

Hallo zusammen!

das erste Projekt, das ich überhaupt mit openHAB je gemacht habe, ist - meinen Mähroboter bei Regen an der Ausfahrt aus seiner Ladestation zu hindern.

Was habe ich benutzt:

Software:
OpenHAB 3.1.0
AVM FRITZ!Box Binding
OpenWeatherMap Binding
Script: Design with Blockly

Hardware:
Raspberry PI 4 im Argon One Pi Gehäuse
AVM FRITZ!Box 7590
AVM FRITZ!DECT 210
GARDENA SILENO life Mähroboter


OK, ich weiß, es gibt Mähroboter, die sind via W-LAN angebunden, lassen sich per GPS und Smartphone steuern und haben im Zweifel eine eigene Wetterstation oder beziehen ihre Wetterinfo aus dem Netz.

Aber ich habe halt einen ganz einfachen Mähroboter, der nix anderes macht, als mähen.

Und das leider bei jedem Wetter! Regnet es tagelang, mäht er einfach still vor sich hin und zerwühlt im Zweifel an den Steigungen den nassen Boden und damit den Rasen.

Nun kann man sich eine Eigenschaft des Roboters zunutze machen: Wenn man die Spannungsversorgung der Ladestation abschaltet, fährt er nicht mehr - auch wenn sein Akku noch voll ist. ;-)

Denn über die Ladestation wird die Elektronik für das Grundstücks-Begrenzungskabel mit Spannung versorgt. Wenn der Roboter nicht mehr erkennt, wo die Grundstücksgrenze ist, bleibt er stehen bzw. fährt erst gar nicht los.

Bei lang anhaltendem Regen habe ich in der Vergangenheit einfach dem Roboter (wenn er in seiner Ladestation stand) per Funk-Steckdose mit Handsender die Spannung abgeschaltet. Also blieb er in seiner Ladestation.

Wer aber will jeden Morgen schauen, ob es regnet und was macht man im Urlaub? Gesucht ist also eine vollkommen autonom arbeitende Lösung.

Meine Überlegung war, mit openHAB (läuft bei mir auf einem Raspberry PI 4) zu schauen, ob es regnet. Und zu prüfen, was der Mähroboter gerade macht. Um ihm so gezielt die Spannung abzuschalten und an der Ausfahrt zu hindern.

Dazu habe ich in die Spannungsversorgung des Mähroboter-Netzteiles einen AVM FRITZ!DECT 210 - also eine schaltbare Steckdose geschaltet. Die kommuniziert über die Fritzbox mit openHAB.

Hiermit kann man sehr schön sehen, wie viel Leistung (P) [P = U * I] das Netzteil des Mähroboters aus dem Netz entnimmt.

Dabei kann ich mit der DECT 210 drei Zustände über die Strom-/Leistungsaufnahme des Mähroboter-Netzteils unterscheiden:

1. Mähroboter ist in der Ladestation und wird geladen.
2. Mähroboter ist in der Ladestation und wird nicht geladen.
3. Mähroboter ist unterwegs und mäht.

Durch die Anwendung des OpenWeatherMap Binding kommt ein weiterer Zustand dazu:

4. Es regnet aktuell mehr als x mm

Wenn also eine bestimmte Regenmenge überschritten wird und Zustand 1 oder 2 wird erfasst [sprich: (1 ∧ 4) ∨ (2 ∧ 4) ], kann man dem Roboter die Spannung abschalten und er bleibt zu Hause. Hat es aufgehört zu regnen, schaltet man die Spannung wieder ein.

Ist der Roboter-Akku -nachdem die Spannung wieder eingeschaltet wurde- noch nicht voll, läd er den Akku (von der eigenen Elektronik gesteuert) voll und fährt wieder los.

Wichtig ist nur, ihn nicht im eigentlichen Mähzustand (3) zu unterbrechen, denn sonst fährt er nicht wieder von selbst in seine Ladestation.

Aktuell nutze ich als Regeninformation ausschließlich die OpenWeatherMAP-Info "Wetter_Current_Rain".

Für die Leute, die sich dafür interessieren, habe ich hier ein paar Informationen zusammengestellt.

Leistungsaufnahme an einem normalen Roboter-Arbeitstag ohne Regen:

10-07-_2021_07-59-58.jpg


Leistungsaufnahme unterbrochen von Regen:

14-07-_2021_12-11-56.jpg


Programm:

Robby.jpg

Code: Alles auswählen

// Rules: Robby vor Regen schützen -> Script Robby-Auswertung

triggers:
  - id: "1"
    configuration:
      itemName: FRITZ210Gartenhutte_Leistung
    type: core.ItemStateChangeTrigger
  - id: "2"
    configuration:
      itemName: Wetter_Current_Rain
    type: core.ItemStateChangeTrigger
  - id: "3"
    configuration:
      cronExpression: 0 0/3 * * * ? *
    type: timer.GenericCronTrigger
conditions: []
actions:
  - inputs: {}
    id: "4"
    configuration:
      type: application/javascript
      script: |-
        var FrameworkUtil = Java.type("org.osgi.framework.FrameworkUtil");
        var _bundle = FrameworkUtil.getBundle(scriptExtension.class);
        var bundle_context = _bundle.getBundleContext()
        var classname = "org.openhab.core.automation.RuleManager"
        var RuleManager_Ref = bundle_context.getServiceReference(classname);
        var RuleManager = bundle_context.getService(RuleManager_Ref);
        RuleManager.runNow("c83fb3fb4b");
    type: script.ScriptAction

Code: Alles auswählen

// Script Robby-Auswertung [c029240149]:

if (itemRegistry.getItem('FRITZ210Gartenhutte_Leistung').getState() >= '33.5') {
  if (itemRegistry.getItem('Wetter_Current_Rain').getState() >= '0.3') {
    events.sendCommand('FRITZ210Gartenhutte_Steckdose', 'OFF');
    events.sendCommand('rStatus', 'es regnet zu stark');
  } else {
    events.sendCommand('rStatus', 'Robby-Akku bald voll');
  }
} else if (itemRegistry.getItem('FRITZ210Gartenhutte_Leistung').getState() >= '12') {
  events.sendCommand('rStatus', 'Robby wird geladen');
} else if (itemRegistry.getItem('FRITZ210Gartenhutte_Leistung').getState() >= '2.72' && itemRegistry.getItem('FRITZ210Gartenhutte_Leistung').getState() < '3.5') {
  if (itemRegistry.getItem('Wetter_Current_Rain').getState() >= '0.3') {
    events.sendCommand('FRITZ210Gartenhutte_Steckdose', 'OFF');
    events.sendCommand('rStatus', 'es regnet zu stark');
  } else {
    events.sendCommand('rStatus', 'Robby in der Ladestation');
  }
} else if (itemRegistry.getItem('FRITZ210Gartenhutte_Leistung').getState() >= '2.60' && itemRegistry.getItem('FRITZ210Gartenhutte_Leistung').getState() <= '2.71') {
  events.sendCommand('rStatus', 'Robby unterwegs');
} else if (itemRegistry.getItem('FRITZ210Gartenhutte_Leistung').getState() >= '0.5' && itemRegistry.getItem('FRITZ210Gartenhutte_Leistung').getState() < '1') {
  events.sendCommand('rStatus', 'Reinitialisierung');
} else if (itemRegistry.getItem('FRITZ210Gartenhutte_Leistung').getState() < '0.01') {
  if (itemRegistry.getItem('Wetter_Current_Rain').getState() >= '0.3') {
    events.sendCommand('rStatus', 'Robby sieht Regen');
  } else {
    events.sendCommand('FRITZ210Gartenhutte_Steckdose', 'ON');
    events.sendCommand('rStatus', 'Regen hat aufgehört');
  }
} else {
  events.sendCommand('rStatus', 'Status unklar');
}
Wie geht es weiter?

Im nächsten Schritt kommt noch ein EIN/AUS-Schalter für das Softwaremodul/Mähroboter dazu. Für die ECHTE Bodenfeuchte habe ich einen Bodenfeuchtesensor als Zusatzinformation für die o.a. Software in Bearbeitung. Dazu hatte ich noch ein altes GARDENA Tensiometer, das ich jetzt mit openHAB verheiraten muss.

Bis das Teil läuft, werde ich die "Regenzeit" (also die "Auszeit") durch einen zusätzlichen Timer im Programm verlängern, damit der Rasen bzw. der Boden nach Regen-Ende hinreichend abtrocknet, bevor der Mähroboter wieder fährt.

Nun ja, man kann das Thema auch sicher anderes angehen - andere Hardware nutzen oder die Software anders strukturieren.

Aber es war -wie gesagt- mein aller erstes openHAB-Projekt und es funktioniert sehr gut mit Eurer Hilfe!

Anregungen sind übrigens jederzeit willkommen. Zumal mir die Erfahrung der openHAB 2.x Programmierung vollkommen fehlt, da ich direkt in Version 3.x eingestiegen bin.

Grüße aus dem (aktuell verregneten) Bergischen Land

Stefan
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- Raspberry Pi 4 Model B (4GB RAM) im Argon One Pi Gehäuse mit Raspberry Pi OS
- openHAB 3.3.0.M6 installiert via Advanced Packaging Tool (APT)

Hoggle
Beiträge: 213
Registriert: 16. Dez 2017 10:49

Re: Mähroboter - bei Regen in der Ladestation lassen

Beitrag von Hoggle »

Hallo Stefan.
Ich hoffe, du hast den katastrophalen Regen heil überstanden.

Das Projekt von dir ist top. Ich bin leider noch nicht so weit, das Gardena-Binding bei mir zu installieren, habe den Smart-Hub aber installiert und meinen Gardena Sileno City 300 dort angemeldet.
Ich hoffe, das ich deine Lösung einfacher mit dem Hub und dem Binding machen kann, aber ansonsten ist das eine Super Idee, besonders, da ich noch einen freien Schaltplatz an meinem Homematic-4-Fach-Schaltaktor habe.
Ich melde mich mal, wenn das Projekt funktioniert (Entweder mit Binding, oder mit deinem "Switch")
RPI4/8GB RAM mit openhabian (bullseye) - Kernel Linux 6.1.21-v8+ - openhab 4.0.2 - Release Build - HM-CCU3 - ZWave UZB-USB Stick - Wifi-LED-Stripes - Logitech Harmony Hub - AVM Fritzbox - Enigma2-Box - Gardena HUB - Fronius-Binding - Miele@Home

Benutzeravatar
WupperJunge
Beiträge: 57
Registriert: 27. Mai 2021 18:19
Wohnort: Wuppertal

Re: Mähroboter - bei Regen in der Ladestation lassen

Beitrag von WupperJunge »

Hoggle hat geschrieben: 19. Jul 2021 17:09 Hallo Stefan.
Ich hoffe, du hast den katastrophalen Regen heil überstanden.
Danke der Nachfrage, wir wohnen zum Glück auf einem Berg und sind weitgehend verschont geblieben - trotz 130 Liter pro Quadratmeter nur am Mittwoch der letzten Woche. Und "Robby" ist schön in seiner Hütte geblieben. ;-)
Hoggle hat geschrieben: 19. Jul 2021 17:09 Ich hoffe, das ich deine Lösung einfacher mit dem Hub und dem Binding machen kann
Ich habe mir das Gardena-Binding -in Ermangelung der geeigneten Hardware- nicht angesehen, kann mir aber gut vorstellen, dass es da eine Rückmeldung über den Status gibt, so dass die profane Messung der Leistung (Stromaufnahme) ggfl. nicht notwendig ist.

Zumal die ermittelten Leistungswerte vom jeweiligen AVM FRITZ!DECT 200/210 abhängig sind. Die Messwerte streuen von Modul zu Modul doch sehr, so dass man bei einem anderen AVM FRITZ!DECT 210-Modul die "Schaltwerte" in der Software anpassen muss. Ich habe acht FRITZ 200 / 210-Module und wenn man wissen will, wie hoch die Spannung im Netz ist, muss man vermutlich einen Mittelwert über alle 8 Module bilden, denn die Messwerte zeigen alles an, nur nicht das was mein Vielfachmessinstrument an Spannung anzeigt. ;-)
- Raspberry Pi 4 Model B (4GB RAM) im Argon One Pi Gehäuse mit Raspberry Pi OS
- openHAB 3.3.0.M6 installiert via Advanced Packaging Tool (APT)

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Mähroboter - bei Regen in der Ladestation lassen

Beitrag von udo1toni »

Da kann ich die diversen Module empfehlen, welche man mit Tasmota flashen kann (ich habe hier die Gosund Zwischenstecker - leider gibt es die nicht mehr mit der passenden Hardware...). Es gehört nämlich zur Einrichtung dazu, das Modul abzugleicehn, also Spannung und Leistung zu messen und entsprechende Korrekturwerte einzutragen. Wohl dem, der noch eine 230V 60W Glühlampe sein Eigen nennt...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
WupperJunge
Beiträge: 57
Registriert: 27. Mai 2021 18:19
Wohnort: Wuppertal

Re: Mähroboter - bei Regen in der Ladestation lassen

Beitrag von WupperJunge »

udo1toni hat geschrieben: 19. Jul 2021 19:27 Da kann ich die diversen Module empfehlen, welche man mit Tasmota flashen kann
Ja, das wäre ein spannendes Thema, WLAN-Steckdosen, die nicht nach Hause (China) telefonieren, wären eine schöne Alternative zu meinen AVM-DECT-Modulen. Vorschläge gern willkommen.
udo1toni hat geschrieben: 19. Jul 2021 19:27 Wohl dem, der noch eine 230V 60W Glühlampe sein Eigen nennt...
In der Tat ist das ganz hilfreich. ;-) Wobei die Angaben auf der Glühbirne auch streuen. Meine 100W-"Testglühbirne" hat in Wirklichkeit irgendwas zwischen 108 und 110 Watt (gemessen im warmen Zustand).

Mein kalibriertes Messinstrument sagt 472 mA (U=229V) was 108 W entspricht und ein VOLTCRAFT Energy Checker meldet 110 W.

Das FRITZ!DECT 210-Modul zeigt sehr genau 108 W an. AVM schreibt zur Messgenauigkeit hinsichtlich der Leistung: +/- 100mW (bis 5 Watt) bzw. +/- 2% (ab 5 Watt).

Bei ca. 100 W sind sie da also deutlich genauer als die Spezifikation erlaubt.

Für meine oben beschriebene Anwendung ist es aber egal wie groß der absolute / genaue Wert ist. Wichtig ist, dass er reproduzierbar ist.

Irgendwie sind die ausgegebenen Leistungswerte (trotz konstanter Stromaufnahme) aber relativ unruhig.

25-07-_2021_09-11-41.jpg


Da die Sprünge der Spannung nicht unbedingt mit den Leistungssprügen korrespondieren, kann man davon ausgehen, dass AVM bei der Leistungsermittlung eine Mittelwertbildung macht oder einen "Filter" eingebaut hat.

Für den genaueren Spannungswert vom FRITZ!DECT 210-Modul, den ich zwar hier nicht brauchte, aber der bei einem anderen Script hilfreich war, habe ich den gemessen Spannungwert um 4,7 Volt reduziert (AVM misst bei meinem Modul um diesen Betrag falsch) und ein arithmetische Mittel über drei Messerte gebildet. Das war für meine Anwendung mehr als ausreichend.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- Raspberry Pi 4 Model B (4GB RAM) im Argon One Pi Gehäuse mit Raspberry Pi OS
- openHAB 3.3.0.M6 installiert via Advanced Packaging Tool (APT)

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Mähroboter - bei Regen in der Ladestation lassen

Beitrag von udo1toni »

Eventuell handelt es sich um eine Lampe für 220 Volt? Nach Deinen Angaben hätte sie bei einer Nennspannung von 220 Volt 99,7 W Ausgangsleistung (immer den Wechselstrom vernachlässigend).

Sei's drum, tatsächlich ist ja eher (wie Du bereits erwähnt hast) die Reproduzierbarkeit des Messwertes entscheidend. Da kann ich mich bei den Gosund nicht beklagen. Leider, wie oben geschrieben, haben die inzwischen die Hardware geändert, so dass ein Flashen mut Tuya-Convert flach fällt - schade.
Es gibt aber noch diverse Module von anderen Herstellern, die letztlich quasi die identische Hardware nutzen.
Bei Tasmota auf der Seite kann man am besten vor dem Kauf schauen, ob die Geräte kompatibel sind.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
WupperJunge
Beiträge: 57
Registriert: 27. Mai 2021 18:19
Wohnort: Wuppertal

Re: Mähroboter - bei Regen in der Ladestation lassen

Beitrag von WupperJunge »

udo1toni hat geschrieben: 25. Jul 2021 13:08 Eventuell handelt es sich um eine Lampe für 220 Volt?
Aufschrift ist 100 W; 220-230V.

Evtl. noch für 220V produziert - umetikettiert und mit einer geringeren Lebenszeit auf den Markt gebracht... ;-)

Im Prinzip wollte ich nit dem Einwand nur sagen, dass man nicht der Aufschrift glauben sollte, sondern im Zweifel nachmessen muss.
- Raspberry Pi 4 Model B (4GB RAM) im Argon One Pi Gehäuse mit Raspberry Pi OS
- openHAB 3.3.0.M6 installiert via Advanced Packaging Tool (APT)

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Mähroboter - bei Regen in der Ladestation lassen

Beitrag von udo1toni »

:) Ja, schon klar. das Label ist da ja auch gerne etwas für die Füße...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

martin_aus_Ddorf
Beiträge: 56
Registriert: 2. Apr 2018 15:45

Re: Mähroboter - bei Regen in der Ladestation lassen

Beitrag von martin_aus_Ddorf »

sag mal....

Was passiert denn eigentlich, wenn der Mäher mäht und dann der Strom abgeschaltet wird und wieder eingeschaltet? Er bleibt erst mal stehen, verstanden. Was aber wenn der Strom wieder eingeschaltet wird? Mäht er dann weiter oder bleibt er weiter stehen?

Grüße
Martin

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: Mähroboter - bei Regen in der Ladestation lassen

Beitrag von sihui »

martin_aus_Ddorf hat geschrieben: 27. Jul 2021 17:50 Mäht er dann weiter oder bleibt er weiter stehen?
Kommt auf das Modell an. Ein Worx bleibt weiterhin stehen.
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

Antworten