Projektvorstellung Gardena R40LI + Homematic CCU3 + Shelly 2.5 + Regensensor + Sperrschleife + mp3 Soundmodul

Einbindung von Robonect Hx und IO in Deine bereits bestehende Homematic-Anlage

Moderator: Lampi

Antworten
akories
Forum-Nutzer
Beiträge: 12
Registriert: Sa 22. Aug 2020, 12:48
Mäher: Gardena R40Li
Firmware des Mähers (MSW): MSW 2.xx.xx
Herstellungsjahr: 2011
Robonect-Modul: Robonect Hx (Rev.6)
Robonect Firmware: 1.2 (Fix)
hat sich bedankt: 1 Mal
wurde gedankt: 2 Male

Projektvorstellung Gardena R40LI + Homematic CCU3 + Shelly 2.5 + Regensensor + Sperrschleife + mp3 Soundmodul

Beitrag von akories »

Nachdem ich in diesem Forum so viele nützliche Infos entnehmen konnte und mir an einigen Stellen weitergeholfen wurde, möchte ich Euch mein Projekt kurz vorstellen.

Vorne weg vielen Dank an Fabian, der mir in einem Problempunkt super geholfen hat und auch an alle diese hier Ihre Probleme und Lösungen veröffentlichen.
Es erspart einem viel Zeit und Arbeit!

Zur Vorgeschichte:
Mein Gardena R40Li (kurz Robi) besitze ich seit 2011 und hab diesen auch gleich mit einem externen Regensensor mit Zeitrelais versorgt. Somit wurde er beim Regen x Stunden vom Stromnetz getrennt, sobald er sich in der Ladestation befand.
Da ich aber auch noch Gartensprinkler verbaut habe und diese mit der CCU3 steuere, war ich damit nicht 100% zufrieden. Des weiteren hat es mir nicht gefallen das unser Robi im freien Stand.
Somit war das Projekt geboren und es musste eine Garage mit Rollladen her und dann natürlich auch Robonect als WLAN Modul aufgrund der API-Anbindung.
Im Jahr 2018 ging es los mit dem Garagenbau und Robonect wurde gekauft. Leider hat mir die Zeit gefehlt und erst mit Corona konnte ich 2020 die Garage fertigstellen und den Einbau und die API-Anbindung an die CCU vornehmen.

Meine Anforderungen:
  • Robi muss von 10-12 Uhr und von 16-22 Uhr mähen (Zeiten variabel steuerbar)
  • Robi muss Zeiten nachholen, wenn es regnet oder der Gartensprinkler an war
  • Bei Regen muss er in die Garage fahren, wenn der Regen für x Minuten anhält
  • Nachdem der Gartensprinkler wieder aus ist, soll er x Stunden nicht mähen
  • Robi soll wöchentlich nur x Stunden mähen
  • Robi soll max nur zwei Tage am Stück mähen und dann zwei Tage pausieren
  • Beim Öffnen der Garage soll ein Soundmodul Musik abspielen; wenn ihr Euch das Garagenfoto anschaut dann wisst ihr auch welche Musik 😊
  • Robi soll über meine CCU2 (jetzt CCU 3) steuerbar sein
  • Optional: Sperrschleife vor der Garage
Vermutlich fragt Ihr Euch warum zwei Tage am Stück und dann pausieren und dann wöchentlich nur x Stunden und bei Regen nicht. Meine Kurzantwort: Meine Erfahrungswerte für meinen Rasen von 2011 bis 2020. Somit muss dies jeder für sich selber festlegen was für ihn bzw. seinen Rasen ideal ist.

Bevor ich ins Detail in meine Homematic Programme einsteige vorab noch ein paar Worte und Bilder zu meiner Garage.
Die Garage wurde zu stabil gebaut, insbesondere das Dach und somit war es notwendig zwei Gasdruckfedern zum Öffnen des Daches einzubauen und das Ganze auf einem gescheiten Fundament unterzubringen. Als Fußballfan gab es letztendlich nur ein Motiv, der Triple 2020 Schriftzug fehlt noch.

Der Rollladen stammt von http://www.jalousiescout.de und es ist ein 230V Motor verbaut. Hier wäre ein Model mit 12 oder 24V auch ausreichend gewesen. Aber zu Beginn hatte ich vor den Rollladen mit einem Homematic Aktor zu steuern. Als ich aber das Robonect Multifunktionsrelais im Shop gesehen hatte, fand ich diese Lösung super; später mehr dazu.

Bilder:
Bild
Bild

Video:


Vorne Weg zu meinen Problemen:
Ich bin kein Homematic Experte und erstelle Programme inkl. Scripte nur alle paar Jahre. In der Zwischenzeit laufen ca. 25 Rolläden mit Zufallsgenerator und Wochenend-/Feiertagsschaltung, ca. 25 Lichtschalter mit zentralem Licht aus, Markise, Lichtsensoren, Garagentore für Auto und die Rasensprinkler über die Homematic. Sicherlich könnte man meine Programme und Scripte effizienter gestalten, aber es läuft 😊

Meine Mähergarage befand sich zu weit weg von meiner CCU3 und meine alte CCU 2 habe ich bereits anderweitig als Repeater im Einsatz. Somit konnte der Homematic Rollladenaktor nicht immer angesprochen werden. Der Mäher fuhr gegen das Tor :cry: Die Idee war einen Homematic Fensterkontakt zweckentfremden, um zu prüfen ob der Rollladen offen ist, aber das ganze wird nur teurer und auch nicht sicherer. Man sollte generell die Ursache des Problems angehen und nicht die Symptome bekämpfen. Somit habe ich mich für das Robonect Multifunktionsrelais entschieden.

Das Multifunktionsrelais hat aber leider auch nicht zuverlässig gearbeitet bzw. blieb das Printrelais SRD-5VDC-SL-C (https://www.kollino.de/shop/relais-srd-5vdc-sl-c/) ab und zu beim Schließvorgang hängen, besser als wann es sich nicht geöffnet hätte. Details könnte Ihr hier nachlesen viewtopic.php?f=204&t=3611&p=26441#p26441.

Somit bin ich auf das Shelly 2.5 umgestiegen und bis jetzt funktioniert dieses perfekt, auch im Zusammenspiel mit Robonect. Der Rollladen öffnet sich, es kommt Musik vom mp3 Soundmodul, der Mäher wartet die eingestellte Zeit und nachdem er raus gefahren ist schließt sich der Rollladen.

Jetzt hatte ich allerdings als Problem (viewtopic.php?f=169&t=2776&p=26478&hili ... ife#p26478) das meine Sperrschleife, diese auch durch das Multifunktionsrelais gesteuert wurde (so lange der Rollladen oben war, wurde die Sperrschleife deaktiviert) nicht mehr funktionierte. Denn das Shelly 2.5 arbeitet wie ein richtiger Rollladenaktor und setzte die Ausgänge nur unter Strom entsprechend der Rollladenlaufzeit. Dies ist für die Sperrschleife zu kurz. D.h. für die Sperrschleife musste eine andere Lösung her, darauf gehe ich weiter unten noch ein.

Die Steuerung meines Mähers muss über die CCU3 erfolgen, da sich dies aufgrund den Anforderungen mit Robonect alleine nicht realisieren ließ.

Bei der Rollladensteuerung über der API bin ich in mein erstes Problem gelaufen, dieses ich durch das Forum lösen konnte. Ein Mischbetrieb wird nicht von der API unterstütz (Danke an Lampi), siehe viewtopic.php?p=26277#p26277, somit lasse ich die Steuerung des Rollladen komplett von Robonect durchführen und nicht von der Homematic. Ich sehe auch aktuell keinen Grund, da dies perfekt funktioniert.

Das Shelly 2.5 ließ sich sehr einfach in wenigen Minuten in Betrieb nehmen und danach musste ich nur noch die Daily Build Software installieren. Nächstes Problem meine ZeroConf ist zu alt und ich habe von Fabian eine aktuelle Version erhalten. Beide Updates installiert und ich konnte das Shelly 2.5 in der WebGUI konfigurieren und der Rollladen läuft perfekt.

Aber auf einmal machte meine Mäher große Probleme bzw. ging der Alarm ständig an sobald man in der WebGUI etwas aufgerufen hat und er aus dem Schlaf erwacht ist. Somit musste ich zweimal vom Sofa einen Sprint in den Garten hinlegen, den mein Nachbar, eh schon genervt von der Rollladenöffnungsmusik, war von dem Piepton um 21:16 Uhr nicht begeistert.
An dieser Stelle nochmals vielen Dank an Fabian, er hat sich die Zeit genommen und sich das Problem angeschaut. Woran es lag kann ich im Detail nicht sagen, das weiß nur er, aber nachdem ich die Batterie auch noch aus- und wieder eingebaut hatte war das Problem beseitigt. In der Hoffnung das Problem tritt nicht mehr auf; mein Mäher ist auch nicht mehr der Neueste.

Jetzt endlich zu meinen Homematic Programmen:
  • Robi_Maehprogramm -> Hauptprogramm dieses den Mähvorgang steuert und stoppt
  • Robi_Status_Auto: Setzt den Robi Status auf Auto
  • Robi_Status_Home: Setzt den Robi Status auf Auto
  • Robi_Push_Statusaktualisierung: Aktualisiert den Mäherstatus auf Basis seiner Push Rückmeldung
  • Robi_Regenstatus -> bestimmt ob es regnet und wie lange
  • Robi_Sprinklerstatus -> bestimmt ob die Gartensprenger an sind
  • Robi_Maehzeitreduzierung -> reduziert die Mähzeit wenn er mäht
  • Robi_Maehzeitberechnung -> berechnet die wöchentliche Mähzeit jeweils Montags
  • Robi_Maehfreigabe_true -> steuert meine Mähfreigabe auf Basis der mäh-/ und Wartezeit
  • Robi_Maehfreigabe_false -> steuert mein Mähstop auf Basis seiner Mähzeit
  • Robi_Sperrschleife -> steuert vor der Garage die Sperrschleife
  • Robi_mp3_Musik -> spielt Musik wenn sich der Rollladen öffnet
Nachfolgend möchte ich kurz auf die einzelnen Programme eingehen, allerdings nicht im Detail.
Falls ein Interesse an der Umsetzung kann ich dies gerne mit Screenshots und den Scripten hier noch beschreiben oder ihr sendet mir eine PN.

Robi_Maehprogramm
Bild

Script auto setzen:

Code: Alles auswählen

! Maehzeit Ist und Robi_Status_Auto nach Mährestzeit setzen
! 0.0.3; ak

! ********************************************************
string vName = "Robi";   ! Namen des Roboters für die Variablen

! ********************************************************

integer vMaehzeitIst = dom.GetObject(vName # " Maehzeit Ist").Value();
integer vMaehzeitSolltaeglich = dom.GetObject(vName # " Maehzeit Soll taeglich").Value();
integer vMaehzeitDifferenz = "";


if (vMaehzeitIst > vMaehzeitSolltaeglich) 
{
   vMaehzeitDifferenz = vMaehzeitIst - vMaehzeitSolltaeglich;

  if (vMaehzeitDifferenz < 20) 
  {
     dom.GetObject(vName # " Maehzeit Ist").State(vMaehzeitSolltaeglich);
  }

  else 
  {
    var prgObj = dom.GetObject(ID_PROGRAMS).Get("Robi_Status_Auto");
    if ( prgObj.Active() ) 
    {
       prgObj.ProgramExecute();
    }
  }
}

else 
{
  if (vMaehzeitIst < 20) 
  {
    dom.GetObject(vName # " Maehzeit Ist").State("0");
  }
  else 
  {
    var prgObj = dom.GetObject(ID_PROGRAMS).Get("Robi_Status_Auto");
    if ( prgObj.Active() ) 
    {
      prgObj.ProgramExecute();
    }
  }
}
Script home setzen:

Code: Alles auswählen

! Programm Robi_Status_Home aufrufen
var prgObj = dom.GetObject(ID_PROGRAMS).Get("Robi_Status_Home");
if ( prgObj.Active() ) {
  prgObj.ProgramExecute();
}
Ich löse zu bestimmten Zeiträumen (wichtig: zu Zeitpunkten auslösen) den Mähvorgang aus. Es muss der Regenstatus und der Rasenstatus auf „trocken“ stehen und die Mähfreigabe auf „true“.

Wenn eine dieser Variablen von einem anderen Status in diesen wechselt und den Zeitraum zutrifft, startet der Mähvorgang.

Es wird entweder das „Auto“ Script aufgerufen oder das „Home“ Script. Im Auto Script prüfe ich noch die Restmähzeit. Wenn diese unter 20 Minuten liegt, fährt der Mäher nicht mehr raus und geht in den 2 Tagesstop.

Dieses Programm stellt mein Hauptprogramm und steuert meinen Mäher.

Der Aufruf im Auto Script ruft das Programm „Robi_Status_Auto“ auf und gemäß den Scriptveröffentlichungen im Forum setze ich meinen Robi auf „Auto“. Bei Home Script rufe ich das Programm „Robi_Status_Home“ auf und schicke ihn in die Garage.

Robi_Push_Statusaktualisierung
Ich habe mich entschieden nicht zyklisch den Status abzufragen, sondern in Robonect den Push Service zu nutzen. Dies ist für meine Anforderungen ausreichend. D.h. wenn sich ein Status am Mäher ändert setzt er in meiner CCU3 eine Variable und diese ruft gemäß den Forenscripten die Statuswerte ab.

Bild

Mein erster Ansatz war, dass mit der Übermittlung der Pushnachricht die Statuswerte auch übermittelt werden. Ich konnte aber leider keine Doku über die API und das Thema Pushnachrichten finden. Hier muss ich auch anmerken, dass die API einiges kann aber schlecht dokumentiert ist oder ich keine Doku gefunden habe, sondern dies aus einzelnen Forenbeiträge entnehmen musste.

Hier würde ich gerne mal den Denkanstoß geben diese ganzheitlich zu dokumentieren; gerne trage auch ich etwas dazu bei.

Bei der Konfiguration der Pushnachricht in Robonect bin ich in ein Problem rein gelaufen, dieses sich aktuell nur mit einem Workaround, der mir nicht gefällt realisieren ließ; Details siehe viewtopic.php?p=26100#p26100.
Wenn ich mal zusätzlich einen aktuellen Status in meiner Homematic App benötige, rufe ich den Robi Status manuell ab.

Robi_Sperrschleife
Da der Mäher ab und zu gegen die Garage fuhr, habe ich eine Sperrschleife (viewtopic.php?p=25102#p25102) implementiert. Da ich ursprünglich für den Rollladen das Multifunktionsrelais im Einsatz hatte, wurde hinter diesem Relais ein weiteres geschaltet dieses parallel zum Rollladen de Sperrschleife geschaltet hat.

Wie oben beschrieben bin ich aber auf das Shelly 2.5 umgestiegen und deshlab in das nächste Problem (viewtopic.php?p=26470#p26470) gelaufen.

Deshalb habe ich aktuell folgenden Ansatz implementiert.
Im Shelly 2.5 wurde eine „ROLLER OPEN URL“ und ROLLER CLOSE URL“ hinterlegt diese in der CCU3 eine Variable setzt. Damit ich den Rollladen nicht nur über das Robonect und Shelly Interface steuern kann, sondern auch manuell über Homematic, habe ich noch einen CUxD Gerät ((28) System; Taster) angelegt.

Konfiguration im Shelly 2.5

Code: Alles auswählen

ROLLER OPEN URL: http://192.168.xx.xx:8181/cuxd.exe?ret=dom.GetObject(%27Robi%20Status%20Rolladen%27).State(0) 
ROLLER CLOSE URL: http://192.168.xx.xx:8181/cuxd.exe?ret=dom.GetObject(%27Robi%20Status%20Rolladen%27).State(1) 
Werte im CUxD Kanal
KEY|CMD_SHORT: /usr/local/addons/cuxd/curl -s http://<IP-Shelly>/roller/0?go~3dopen
KEY|CMD_LONG: /usr/local/addons/cuxd/curl -s http://<IP-Shelly>/roller/0?go~3dclose

Über die Variable steuere ich das Multifunktionsrelais an, diese ich jetzt aufgrund des Wechsels zum Shelly übrig hatte.

Somit richtet sich die Sperrschleife nach dem Rollladenstatus und öffnet und schließt zeitgleich.
Das ganze hätte ich auch mit einem Homematic Aktor durchführen können. Aufgrund dem schlechten Empfang kam dieser Lösungsansatz aktuell nicht in Frage.

Die Sperrschleife über robonect zu implementieren ist natürlich auch eine Möglichkeit, allerdings öffnete bei mir die Sperrschleife des Öfteren zu spät, siehe viewtopic.php?p=26543#p26543. :x

Robi_Regenstatus
Dieses ist ein etwas komplexes Thema. Idealerweise sollte man hierzu eine eigene Wetterstation besitzen, um die Regenmenge zu ermitteln und auch noch einen Sensor der die Bodenfeuchtigkeit misst.

Leider habe ich die Wetterstaion noch nicht im Einsatz, aber bereits für die nächsten Jahre in der Planung. Aktuell verwende ich einen Homematic Regensensor, der die letzten Jahre perfekt funktioniert und meine Markise steuert. Der Bausatz für den Bodenfeuchtigkeitssensor habe ich mir bereits beschafft und dieser ist für 2021 in Planung.

Der Regensensor liefert mir die Info wann es regnet; danach warte ich eine kurze Zeitspanne ab ob es aufhört oder weiter regnet. Wenn es weiter regnet wird die entsprechende Variable gesetzt und der Robi geht auf den Status „Home“. Die Regendauer benötige ich für die Berechnung meiner Rasensprinkler aus dem Jahre 2011, somit greife ich auf diesen Wert zurück. Nach Regenende setze ich einen Timer der x Stunden läuft und danach die Variable auf „trocken“ setzt. Wenn es in diesem Zeitraum zu regnen beginnt und die Regendauer größer x Minuten ist, setze ich den Timer auf seinen Ursprungswert zurück. Somit ist sichergestellt das der Timer nicht nur nach dem Ende des Erstregen läuft, sondern sich nach dem letzten Regenschauer richtet.

Bild

Den Prozess muss ich noch ausführlich testen und vermutlich noch etwas nachbessern. In den letzten Wochen im Sommer hat es bei uns zu wenig geregnet.

Hier würden mich auch andere Ansätze interessieren, um zu ermitteln ab wann der Rasen trocken ist und der Mäher loslegen kann.

Robi_Sprinklerstatus
Dies ist ein sehr einfaches Programm. Meine Rasensprenger beginnen um 3 Uhr in der Nacht und laufen ca. 45-60 Minuten, abhängig von diversen Faktoren. Nach dem Ende beginnt ein Timer der auf 8 Stunden gesetzt wurde und danach der Rasenstatus auf „trocken“ gesetzt wird. Die letzten Jahre haben gezeigt, da ich ca. 8 Stunden abwarten sollte bevor ich den Mäher wieder rausschicke.

Robi_Maehzeitreduzierung
Im Forum gibt es hierzu auch die entsprechenden Beiträge, bei dem Status „mäht“ wird die Mähzeit um 1 Minute reduziert.

Bild

Script:

Code: Alles auswählen

! Robonect Berechnung Mähzeitreduzierung von 1 Minute bei Mähvorgang
! 0.0.1; ak

! Änderungen:
!  noch keine Änderungen

! ********************************************************
string vName = "Robi";   ! Namen des Roboters für die Variablen

! ********************************************************

dom.GetObject(vName # " Maehzeit Ist").State(dom.GetObject(vName # " Maehzeit Ist").Value()-1);
Robi_Maehzeitberechnung
Dieses Programm ist nicht sehr komplex. Auf die wöchentliche Sollmähzeit wird die Restmähzeit der Woche addiert. Somit wird sichergestellt, wenn es häufiger regnet und der Rasen wächst, das in der Folgewoche die Restmähzeit nachgeholt wird.

Die Sollmähzeit passe ich aktuell manuell über eine Variable an. In den Monaten April – August ist diese etwas höher als im September. Diesen Wert automatisiert je Monat setzen zu lassen macht aktuell keinen Sinn. Regnet es in einem Monat mehr, wächst der Rasen schneller und der Mäher muss öfters raus.

Bild

Script:

Code: Alles auswählen

! Robi Mähzeit pro Woche berechnen
! 0.0.1; ak

! Änderungen:
! noch keine Änderungen


! ********************************************************
string vName = "Robi";   ! Namen des Roboters für die Variablen

! ********************************************************
var vSollMaehzeit = dom.GetObject(vName # " Maehzeit Soll").Value();
var vIstMaehzeit = dom.GetObject(vName # " Maehzeit Ist").Value();
var vNeumaehzeit = vSollMaehzeit+vIstMaehzeit;

dom.GetObject(vName # " Maehzeit Ist").State(vNeumaehzeit);
Robi_Maehfreigabe_false
Jetzt wird es wieder ein bischen komplexer um meine Anforderungen, 2 Tage mähen, 2 Tage Pause und bei Erreichen der wöchentlichen Sollmähzeit den Mähvorgang beenden, zu erfüllen.

Diese Logik wird in einem Script geprüft, dieses noch optimiert werden muss.

Mein Mäher soll unter Idealbedingungen max. 480 Minuten (halbe wöchentlich Mähzeit) am Stück mähen. Dies sind bei mir ca. 2 Tage. Danach setze ich einen Timer der die Mähfreigabe für 48 Stunden stoppt. Danach beginnt der Mäher die Restzeit zu mähen, danach hat er sein Wochenziel erreicht. Wenn jetzt die Rasensprinkler an waren oder es regnet holt er die Zeit entsprechend nach, somit kann sich die oben genannte Mähzeit in der Folgewoche erhöhen und es kann vorkommen das er anstatt 2 Tage am Stück auch x Tage mähen muss. Somit erziele ich für mich das ideale Mähergebnis und bin variabel, da ich die wöchentliche Mähzeit anpassen kann.

Bild

Script:

Code: Alles auswählen

! Mähfreigabe auf false setzen und Timer starten
! 0.0.3; ak

! ********************************************************
string vName = "Robi";   ! Namen des Roboters für die Variablen

! ********************************************************

integer vMaehzeitIst = dom.GetObject(vName # " Maehzeit Ist").Value();

if (vMaehzeitIst > 0) {
    dom.GetObject("CUxD.CUX2800001:6.TIMER_SET").State(172800);
}
dom.GetObject(vName # " Maehfreigabe").State(0);

Robi_Maehfreigabe_true
Dieses Programm setzt die Mähfreigabe auf true wenn der oben genannt Timer abgelaufen ist.

Bild

Script:

Code: Alles auswählen

! Mähfreigabe setzen nach Mähzeit > 10 Min
! 0.0.1; ak

! ********************************************************
string vName = "Robi";   ! Namen des Roboters für die Variablen

! ********************************************************

integer vMaehzeitIst = dom.GetObject(vName # " Maehzeit Ist").Value();

if (vMaehzeitIst > 20) {
    dom.GetObject(vName # " Maehfreigabe").State(1);
}
else {
    dom.GetObject(vName # " Maehfreigabe").State(0);
}

Robi_mp3_Musik
Der Wunsch von meinem Sohn bestand das unser Robi mit Musik seine Garage verlassen muss! Deshalb habe ich für 2,86 Euro (inkl. Versand aus China) eine mp3 Soundmodul gekauft dieses mit 5V läuft. Somit kann ich das Netzteil vom Multifunktionsrelais mitnutzen. Das Soundmodul könnte ich jetzt auch über ein weiteres Relais ansteuern, so dass es Musik abspielt wann sich der Rollladen öffnet und so lange läuft bis er sich schließt.
Allerdings muss ich etwas auf meine Nachbarn achten und da mein Mäher bis 22 Uhr läuft, soll die Musik max. von 10-18 Uhr abgespielt werden. Somit habe ich mich entschieden das Modul über einen 5V Homematic Aktor anzusteuern und auch nur bei der Ausfahrt.
Wie geschrieben habe ich nicht immer Homematic Empfang, aber dies ist nicht Systemkritisch und mein Nachbar freut sich wenn der Sound versagt :D

Für die Programme "Robi_Status_Auto" und "Robi_Status_Home" verwende ich 1zu1 die Scripte aus dem Forum.

Beispielscript für home:

Code: Alles auswählen

! Robonect Steuerung per xml und system.Exec
! 0.2.2 - ak: home setzen

! Verwendete Variablen:
!  vName + Befehlsstatus - als Zeichenkette

! ********************************************************
string vBefehl = "mode&mode=home";   ! Beispiel für Home

! ********************************************************
string vName = "Robi";   		! Namen des Roboters für die Variablen
string vBenutzer = "xxxx";                ! Benutzername
string vPasswort = "xxxx";               ! Passwort für Benutzername
string vIP = "192.xxx.xx.xx"; 		! IP des Mähers
! ********************************************************

string vUrl = "'http://" # vIP # "/xml?user=" # vBenutzer # "&pass=" # vPasswort # "&cmd=" # vBefehl # "'";
string stderr = "";
string stdout = "";
string vStart = "";
string vEnde = "";
string vIndex = "";
string vMailtext = "";


if (vBefehl.Contains("home")) {
  vBefehl = "Home";
} 

! Befehl senden
system.Exec("wget -q -O - -t 1 -T 10 " # vUrl, &stdout, &stderr);

! Auswertung
if (stdout.Contains("successful>true</successful")) {
  vMailtext = vBefehl # " erfolgreich ausgeführt";
} elseif (stdout.Contains("successful>false</successful")) {
  if (stdout.Contains("<error_message>")) {
    vStart = "<error_message>";
    vEnde = "</error_message>";
    vStart = stdout.Find(vStart) + vStart.Length();
    vIndex = stdout.Substr(vStart, stdout.Find(vEnde) - vStart);
    vMailtext = "Fehler bei " # vBefehl # ": " # vIndex;
  } else {
    vMailtext = "Fehler bei " # vBefehl # ": keine Fehlermeldung vorhanden";
  }
} else {
  vMailtext = "Fehler bei " # vBefehl # ": keine Verbindung";
}

WriteLine(vMailtext);

if (dom.GetObject(vName # " Befehlsstatus")) {
  dom.GetObject(vName # " Befehlsstatus").State(vMailtext);
} else {
  WriteLine('Variable "' # vName # ' Befehlsstatus" existiert nicht');
}


So dies wars und ich freue mich über Anregungen und natürlich Optimierungsvorschläge und Ideen, man lernt ja nie aus!
Folgende Benutzer bedankten sich beim Autor akories für den Beitrag (Insgesamt 2):
Lampi, shadowkiller
Bewertung: 100%

Lampi
sehr erfahrener Forum-Nutzer
Beiträge: 342
Registriert: Di 14. Feb 2017, 17:07
Mäher: Husqvarna Automower 330X
Firmware des Mähers (MSW): MSW 7.xx.xx
Herstellungsjahr: 2014
Robonect-Modul: Robonect Hx (Rev.1)
Robonect Firmware: V1.2 (Final Release)
hat sich bedankt: 1 Mal
wurde gedankt: 1 Mal

Re: Projektvorstellung Gardena R40LI + Homematic CCU3 + Shelly 2.5 + Regensensor + Sperrschleife + mp3 Soundmodul

Beitrag von Lampi »

Hallo akories,

recht herzlichen Dank für die sehr ausführliche Vorstellung deines Projektes :!: :daumenhoch: :daumenhoch:
Folgende Benutzer bedankten sich beim Autor Lampi für den Beitrag:
akories
Bewertung: 50%
Fragen? Fragen!

Antworten

Zurück zu „Homematic-Nutzer“