Mährobotersteuerung

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

etronix
Beiträge: 14
Registriert: 08.10.2019, 08:15
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Mährobotersteuerung

Beitrag von etronix » 11.08.2020, 21:57

Hallo,
Bin gerade dabei meinen Mähroboter in meine Homematic einzubinden.
Leider funktioniert das Programm nur sporadisch, komme dem Fehler aber nicht auf die Schliche.

Mein Vorhaben:
Wenn es die letzten 12 Stunden regenfrei war öffnet sich kurz vor Mähstart das Tor der Robotergarage
und es wird die Steckdose an dem die Ladestation hängt eingeschaltet, nach Ende der Mähdauer schließe
ich das Tor und schalte die Steckdose ab. Zusätzlich habe ich noch eingebaut das wenn der Roboter in die
Garage kommt während es regnet wird die Steckdose deaktiviert und das Rollo geschlossen.

Aktoren:
- Shelly 2.5 für Rollo der Garage
- HM-LC-Sw1-Pl-DN-R1 für Ladestation

Sensoren:
- SCI-3-FM zur Auswertung ob Roboter in Garage
- HM-Sen-RD-O für Regenerkennung

Das Problem ist das dass Programm nur sporadisch funktioniert, von ca. 8x hat es bis jetzt nur 2x geklappt
obwohl meiner Meinung nach die Bedingungen erfüllt waren.
Regensensor und Anwesenheitserkennung sind geprüft.

Das Programm findet ihr im Anhang.
Vielen Dank für die Hilfe.
Dateianhänge
DDA98F12-880F-40A9-85E9-0053D8CA3BE6.jpeg

MichaelN
Beiträge: 9534
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 692 Mal
Danksagung erhalten: 1604 Mal

Re: Mährobotersteuerung

Beitrag von MichaelN » 11.08.2020, 23:17

Meine Tipps
1) Alchys Auslöser Skript in jedem Zweig einbauen, damit du kontrollieren kannst was warum ausgelöst hat
2) Komplexität reduzieren, in dem du das Programm in mehrere aufteilst
3) gib deinen Geräten und Kanälen vernünftige Namen (das ist nicht das Problem, vereinfacht aber das debugging)
4) dir klar werden welche Bedingungen nicht funktioniert haben (damit meine ich nicht 2 von 8 versuchen waren ok, sondern WAS würde erwartet und WAS ist passiert)
5) Irgendwie sind deine Bedingungsbläcke doppelt gemopplet
Zuletzt geändert von MichaelN am 12.08.2020, 09:22, insgesamt 1-mal geändert.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Daimler
Beiträge: 9114
Registriert: 17.11.2012, 10:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 36 Mal
Danksagung erhalten: 283 Mal

Re: Mährobotersteuerung

Beitrag von Daimler » 12.08.2020, 09:02

Hi,
etronix hat geschrieben:
11.08.2020, 21:57
kurz vor Mähstart ... wird die Steckdose an dem die Ladestation hängt eingeschaltet, nach Ende der Mähdauer ... schalte die Steckdose ab.
meine Frage:
Wann wird denn der Akku geladen?
Gruß Günter

pivccx mit 3.xx in Produktiv und Testsystem mit HM-, HM-W, HMIP- und HMIP-W Geräten, HPCx Studio 4.1,
L-Gateways, RS-L-Gateways, HAP, Drap, FHZ200x, vereinzelt noch FS2x-Komponenten.
HM / HM-IP: Zur Zeit knapp 300 Komponenten mit ??? Kanälen .

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

etronix
Beiträge: 14
Registriert: 08.10.2019, 08:15
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Mährobotersteuerung

Beitrag von etronix » 12.08.2020, 09:57

Daimler hat geschrieben:
12.08.2020, 09:02
Hi,
etronix hat geschrieben:
11.08.2020, 21:57
kurz vor Mähstart ... wird die Steckdose an dem die Ladestation hängt eingeschaltet, nach Ende der Mähdauer ... schalte die Steckdose ab.
meine Frage:
Wann wird denn der Akku geladen?
In der „Nachlaufzeit“, der Roboter mäht nur bis 22 Uhr.
Mähdauer aus der Beschreibung ist Robotertimer +Ladezeit.
Zuletzt geändert von etronix am 12.08.2020, 10:11, insgesamt 1-mal geändert.

etronix
Beiträge: 14
Registriert: 08.10.2019, 08:15
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Mährobotersteuerung

Beitrag von etronix » 12.08.2020, 10:08

MichaelN hat geschrieben:
11.08.2020, 23:17
Meine Tipps
1) Alchys Auslöser Skript in jedem Zweig einbauen, damit du kontrollieren kannst was warum ausgelöst hat
2) Komplexität reduzieren, in dem du das Programm in mehrere aufteilst
3) gib deinen Geräten und Kanälen vernünftige Namen (das ist nicht das Problem, vereinfacht aber das debugging)
4) dir klar werden welche Bedingungen nicht funktioniert haben (damit meine ich nicht 2 von 8 versuchen waren ok, sondern WAS würde erwartet und WAS ist passiert)
5) Irgendwie sind deine Bedingungsbläcke doppelt gemopplet
Das Auslöserskript wird nicht funktionieren da ja nix auslöst. Das Problem hängt meiner Meinung nach bei der Zeitsteuerung, es sollte aber meiner Meinung nach funktionieren.
Die erste UND kommt nur zum tragen wenn der 12 Stunden Timmer für Regen abgelaufen ist, die zweite UND sollte auslösen zum Zeitintervall.
Da die Variable auf „Rasen trocken“ steht müsste somit die zweite UND zuschlagen. Tut sie aber nur sporadisch.
Habe die letzten beiden Tage die zweite UND nur um 17:55 auslösen lassen da passierte gar nix, für heute ist wieder das Intervall aktiv.
Variable ist Logikwert hatte auch schon mal Zeichenkette probiert.

MichaelN
Beiträge: 9534
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 692 Mal
Danksagung erhalten: 1604 Mal

Re: Mährobotersteuerung

Beitrag von MichaelN » 12.08.2020, 10:34

Der Zeit stempel im Status Programme ist also unverändert???

Ich weiß nicht, warum Du um Rat fragst, dann aber keinen einzigen Tip umsetzen willst.

Der erste SONST_WENN wird nie zur Ausführung gelangen, da er die gleichen Bedingungen wie das WENN enthält und dieses daher immer vorher zur Ausführung kommt.

Wieso Du im 2. SONST-WENN 2x die gleichen Bedingungen miteinander verodert hast kann ich nicht nachvollziehen. Aber es sollte in der Tat bei Rasen trocken und 17:55-23:00 die Geräte mit der kryptischen Bezeichnung angesteuert werden. Aber bei der WebUI erlebt man immer wiede rmal Überraschungen.

Das Auslöseskript (in JEDEM Zweig!) wirkt übrigens beim Erkenntnisgewinn Wunder. Ansonsten schreiben wir uns hier die Finger wund.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

etronix
Beiträge: 14
Registriert: 08.10.2019, 08:15
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Mährobotersteuerung

Beitrag von etronix » 12.08.2020, 11:56

MichaelN hat geschrieben:
12.08.2020, 10:34
Der Zeit stempel im Status Programme ist also unverändert???
Ja, der Zeitstempel ist unverändert.
MichaelN hat geschrieben:
12.08.2020, 10:34
Ich weiß nicht, warum Du um Rat fragst, dann aber keinen einzigen Tip umsetzen willst.
Sorry wenn ich mich falsch ausgedrückt habe, ich habe aber nicht geschieben das ich keinen Tip umsetzen will. Bin für jeden Tip offen und probiere diesen auch.
MichaelN hat geschrieben:
12.08.2020, 10:34
Der erste SONST_WENN wird nie zur Ausführung gelangen, da er die gleichen Bedingungen wie das WENN enthält und dieses daher immer vorher zur Ausführung kommt.
Verstehe ich nicht, die WENN sollte zuschlagen sobald der Regensensor Regen erkennt (bei Änderung auslösen) und es wird geprüft ob der Roboter in der Garage ist. Die erste SONST_WENN wird getriggert wenn der Roboter in die Garage kommt (bei Änderung auslösen) und es wird geprüft ob der Rasen nass ist (also während des Mähens es zu Regnen begonnen hat).
Oder interpretiert die CCU das nicht so?
MichaelN hat geschrieben:
12.08.2020, 10:34
Wieso Du im 2. SONST-WENN 2x die gleichen Bedingungen miteinander verodert hast kann ich nicht nachvollziehen. Aber es sollte in der Tat bei Rasen trocken und 17:55-23:00 die Geräte mit der kryptischen Bezeichnung angesteuert werden. Aber bei der WebUI erlebt man immer wiede rmal Überraschungen.
Das erste UND sollte zuschlagen wenn mein 12 Stunden "Timer" abgelaufen ist, d.h. wenn Rasen nass auf trocken wechselt da prüfe ich ob Mähen aktiv ist, das veroderte UND sollte den Fall abdecken das trocken ist und das Mähintervall startet.
Jedes mal wenn wahr öffne ich das Tor und schalte kurz darauf die Steckdose ein.

MichaelN
Beiträge: 9534
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 692 Mal
Danksagung erhalten: 1604 Mal

Re: Mährobotersteuerung

Beitrag von MichaelN » 12.08.2020, 12:34

Einsteiger-Tips zur WebUI Logik durchlesen. Da liegen auf Deiner Seite anscheinend ein paar Mißverständnisse vor. Die WebUI arbeitet anders, als Du es Dir vorstellst.

Bei Änderung auslösen triggert das Programm
Nur prüfen triggert nichts

Triggern bedeutet Programm läuft von oben nach unten los. Dafür ist es egal, WO "auslösen" steht. Auch im 200. SONST-WENN wird es noch das Programm starten.

Von oben nach unten bedeutet, es wird jeder Bedingungssblock auf Wahrheit geprüft. Der erste der zutrifft wird ausgeführt. Egal, ob der das Programm getriggert hat oder nicht.

Tu Dir selbst einen Riesengefallen und zerleg das Programm erstmal in kleinere Einzelprogramme. Regel: wenn Du SONST-WENN schreibst, dann besser ein eigenes Programm dafür. Läuft einfach stabiler.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

etronix
Beiträge: 14
Registriert: 08.10.2019, 08:15
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Mährobotersteuerung

Beitrag von etronix » 12.08.2020, 14:02

MichaelN hat geschrieben:
12.08.2020, 12:34
Bei Änderung auslösen triggert das Programm
Nur prüfen triggert nichts
Das ist auch mein Verständnis.

Bleiben wir mal beim WENN und ersten SONST WENN.
WENN wird getriggert wenn die Variable auf Rasen nass (da bei Änderung auslösen), geprüft wird ob Kontakt offen (Roboter in Garage)
SONST WENN wird getriggert wenn Kontakt auf geht (da bei Änderung auslösen), geprüft wird ob Rasen nass.

Warum soll SONST WENN nie ausgeführt werden, verstehe ich nicht.
Beispiel: Roboter fährt in Garage und es hat vor 10min die Variable auf Rassen nass gewechselt.
10min zuvor hat das WENN getriggert da Variable auf Rasen nass gesprungen ist, da Kontakt geschlossen (Roboter unterwegs) ist trifft weder WENN noch SONST WENN zu.
In dem Moment der Einfahrt triggert SONST WENN, Programm startet WENN, welches aber nicht zutrifft da Variable sich in dem Moment nicht geändert hat. Kommt zu SONST WENN was zu dem Zeitpunkt wahr ist und abgearbeitet wird.
MichaelN hat geschrieben:
12.08.2020, 12:34
Tu Dir selbst einen Riesengefallen und zerleg das Programm erstmal in kleinere Einzelprogramme. Regel: wenn Du SONST-WENN schreibst, dann besser ein eigenes Programm dafür. Läuft einfach stabiler.
Das heißt ich sollte für jede Gegebenheit ein separates Programm machen, richtig?
Wären dann folgende:
- Roboter in Garage und es regnet
- Roboter mäht und es beginnt zu regnen
- Mähintervall und es ist trocken
- Mähintervall und es wechselt von nass auf trocken
- Mähintervall endet

Benutzeravatar
Baxxy
Beiträge: 10604
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 594 Mal
Danksagung erhalten: 2173 Mal

Re: Mährobotersteuerung

Beitrag von Baxxy » 12.08.2020, 14:26

etronix hat geschrieben:
11.08.2020, 21:57
Das Programm findet ihr im Anhang.
Ach herrje, das sieht ja wild aus. :roll:
Gut das @MichaelN schon alles analysiert und die Fehler aufgezeigt hat. Da kann ich mir das sparen und gleich zu Lösungsfindung übergehen. :wink:

Das Programm in mehrere zu zerlegen wurde ja schon genannt. Ich denke 2 reichen. Hier mal ein "Entwurf".
Prg.1: Torsteuerung und Ladespannungsversorgung

Code: Alles auswählen

WENN
[
Zeitsteuerung wöchentlich von 17:55 bis 23:00 - zu Zeitpunkten auslösen
UND
Systemzustand - Mähwetter bei "Rasen trocken" - nur prüfen
]
DANN
Roboter-Rolltor - sofort - AUF
Ladespannungsversorgung - sofort - Einschaltdauer 21600s
Ladespannungsversorgung - verzögert um 1s - EIN
Prg.2: Roboter-Rückkehr-Programm

Code: Alles auswählen

WENN
[
Roboter ist in Garage - bei Änderung auslösen
UND
Systemzustand - Mähwetter bei "Rasen nass" - nur prüfen
]
DANN
Roboter-Rolltor - verzögert um 30s - ZU
Ladespannungsversorgung - verzögert um 1min - AUS

SONST WENN
[
Roboter ist in Garage - nur prüfen
UND
Systemzustand - Mähwetter bei "Rasen trocken" - nur prüfen
]
DANN
Roboter-Rolltor - verzögert um 30s - ZU 

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“