Homematic - Einbindung
Moderator: Lampi
-
- sehr erfahrener Forum-Nutzer
- Beiträge: 122
- Registriert: Do 10. Mär 2016, 17:56
- Mäher: Gardena R40Li
- Firmware des Mähers (MSW): MSW 4.xx.xx
- Herstellungsjahr: 2012
- Robonect-Modul: Robonect H30x (Rev.0)
- Robonect Firmware: 1.0b2
Homematic - Einbindung
Moin!
Wollte mal fragen ob Homematic-User dabeind...würde morgen mal anfangen Dolly einzubinden...
Bei mir läuft ne CCU2 mit cuxd und nen RASPI mit IOBroker sowie CCU.io
...wenn jemand auch dabei ist...Ideen und Vorgehen gerne austauschen!
bis denne
MrLee
Wollte mal fragen ob Homematic-User dabeind...würde morgen mal anfangen Dolly einzubinden...
Bei mir läuft ne CCU2 mit cuxd und nen RASPI mit IOBroker sowie CCU.io
...wenn jemand auch dabei ist...Ideen und Vorgehen gerne austauschen!
bis denne
MrLee
-
- erfahrener Forum-Nutzer
- Beiträge: 99
- Registriert: Fr 4. Mär 2016, 21:56
- Wohnort: Dessau-Roßlau
- Mäher: Gardena R45Li
- Firmware des Mähers (MSW): MSW 5.xx.xx
- Herstellungsjahr: 2013
- Robonect-Modul: Robonect H30x (Rev.1)
- Robonect Firmware: 1.0beta
Re: Homematic - Einbindung
Bin ebenfalls mit einer CCU2 vertreten und habe noch einen Raspberry auf dem die Homebridge für Siri läuft.
Es läuft alles womit ganz gut und ich würde den Mäher über die Webapi starten / stoppen lassen und ggf ein paar Werte auslesen (Akku stand etc) (Wenn das überhaupt möglich ist. hab da noch nicht groß reingeschaut...)
Es läuft alles womit ganz gut und ich würde den Mäher über die Webapi starten / stoppen lassen und ggf ein paar Werte auslesen (Akku stand etc) (Wenn das überhaupt möglich ist. hab da noch nicht groß reingeschaut...)
-
- erfahrener Forum-Nutzer
- Beiträge: 99
- Registriert: Fr 4. Mär 2016, 21:56
- Wohnort: Dessau-Roßlau
- Mäher: Gardena R45Li
- Firmware des Mähers (MSW): MSW 5.xx.xx
- Herstellungsjahr: 2013
- Robonect-Modul: Robonect H30x (Rev.1)
- Robonect Firmware: 1.0beta
Re: Homematic - Einbindung
So, ich habe die letzten Stunden damit verbracht mich mit der Skriptsprache rumzuärgern Daher ist das alles auch quick n dirty, da ich nicht wirklich programmieren gelernt habe und mir alles selber beigebracht (zusammengeklaut) habe. Aber immerhin verstehe ich schon mal was da so abläuft.
Es werden 4 Programme benötigt: 3 zum Schalten des Modus und eins zum auslesen der Statusmeldungen Weiterhin müssen folgende Systemvariablen (alle Strings) angelegt werden: EDIT: Ich habe die Variable R45Li-Mähzeit hier vergessen! Diese muss ebenfalls als Zeichenkette angelegt werden!
Im Programm wird eine periodische Wiederholung eingestellt, sodass die CCU die Systemvariable aller paar Sekunden aktualisiert.
@Admin: Gäbe es hier ein Problem mit einer Abfrage aller 30 Sekunden? Ich will das Modul nicht überlasten...
Als Aktivität wählt man "Skript" und fügt folgendes ein:
Die Programme zum setzen der Modi sind ebenfalls Skripte. Hier gibt man jedoch bei den Bedingungen nichts an und fügt nur bei Aktivität das folgende Skript hinzu:
Wer mag kann hier als 2. Skript das o.a. zum Auslesen der Variablen noch hinzufügen. So werden die Systemvariablen nach dem Setzen des Modus wieder aktualisiert.
Für die weiteren Skript zum Setzen der Modi "Home" und MAN" muss lediglich das "auto" gegen "home" und "man" ersetzt werden!
Leider funktioniert bei mir das Auslesen des Timers nicht, daher habe ich zwar implementiert aber nicht testen können!
Ich bekomme nur diesen Status:
Liegt vielleicht daran, dass Shawn nicht in der Ladestation sitzt?
Es werden 4 Programme benötigt: 3 zum Schalten des Modus und eins zum auslesen der Statusmeldungen Weiterhin müssen folgende Systemvariablen (alle Strings) angelegt werden: EDIT: Ich habe die Variable R45Li-Mähzeit hier vergessen! Diese muss ebenfalls als Zeichenkette angelegt werden!
Im Programm wird eine periodische Wiederholung eingestellt, sodass die CCU die Systemvariable aller paar Sekunden aktualisiert.
@Admin: Gäbe es hier ein Problem mit einer Abfrage aller 30 Sekunden? Ich will das Modul nicht überlasten...
Als Aktivität wählt man "Skript" und fügt folgendes ein:
Code: Alles auswählen
string Url='http://192.168.0.67/json?cmd=status';
var stdout;
var posStart;
var posEnd;
var preis;
var substring;
var posValueStart;
var posValueEnd;
var posValue;
string stderr;
string stdout;
string pos;
string substring2;
WriteLine("strings gesetzt");
system.Exec("wget -q -O - "#Url, &stdout, &stderr);
WriteLine("Abrufen");
WriteLine(stdout);
posStart = '{"status": ';
posEnd = ', "mode';
pos = stdout.Find(posStart) + posStart.Length();
WriteLine("pos");
WriteLine(pos);
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
WriteLine(substring);
if (substring == 0) {dom.GetObject('R45Li-Status').State("schläft");}
if (substring == 1) {dom.GetObject('R45Li-Status').State("parkt");}
if (substring == 2) {dom.GetObject('R45Li-Status').State("mäht");}
if (substring == 3) {dom.GetObject('R45Li-Status').State("sucht die Ladestation");}
if (substring == 4) {dom.GetObject('R45Li-Status').State("lädt auf");}
if (substring == 5) {dom.GetObject('R45Li-Status').State("sucht");}
if (substring == 7) {dom.GetObject('R45Li-Status').State("Fehler!");}
WriteLine("Status ende!");
posStart = '"mode": ';
posEnd = ', "batt';
pos = stdout.Find(posStart) + posStart.Length();
WriteLine("pos");
WriteLine(pos);
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
WriteLine(substring);
if (substring == 0) {dom.GetObject('R45Li-Modus').State("Auto");}
if (substring == 1) {dom.GetObject('R45Li-Modus').State("Manu");}
if (substring == 2) {dom.GetObject('R45Li-Modus').State("Home");}
if (substring == 3) {dom.GetObject('R45Li-Modus').State("Demo");}
WriteLine("Modus ende!");
posStart = '"battery": ';
posEnd = ', "hours';
pos = stdout.Find(posStart) + posStart.Length();
WriteLine("pos");
WriteLine(pos);
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
WriteLine(substring);
dom.GetObject('R45Li-Battery').State(substring.ToString(1));
WriteLine("Batterie ende!");
posStart = '"hours": ';
posEnd = '}:"timer';
pos = stdout.Find(posStart) + posStart.Length();
WriteLine("pos");
WriteLine(pos);
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
WriteLine(substring);
dom.GetObject('R45Li-Laufzeit').State(substring.ToString(1));
WriteLine("Laufzeit ende!");
posStart = 'timer": {"status": ';
posEnd = '}}';
pos = stdout.Find(posStart) + posStart.Length();
WriteLine("pos");
WriteLine(pos);
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
WriteLine(substring);
string SysMonat = system.Date("%d");
integer Tag = SysMonat.ToInteger();
if (substring == Tag) {dom.GetObject('R45Li-Mähtag').State("Heute");}
if (substring == Tag + 1) {dom.GetObject('R45Li-Mähtag').State("Morgen");}
if (substring == Tag + 2) {dom.GetObject('R45Li-Mähtag').State("Übermorgen");}
else {dom.GetObject('R45Li-Mähtag').State("Fehler!");}
WriteLine("Tag ende!");
posStart = '","time":"';
posEnd = '","unix';
pos = stdout.Find(posStart) + posStart.Length();
WriteLine("pos");
WriteLine(pos);
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
WriteLine(substring);
dom.GetObject('R45Li-Mähzeit').State(substring.ToString(1));
WriteLine("Mähzeit ende!");
Code: Alles auswählen
string stderr;
string stdout;
string url="http://192.168.0.67/xml?cmd=mode&mode=auto";
system.Exec("wget -q -O - "#url, &stdout, &stderr);
Wer mag kann hier als 2. Skript das o.a. zum Auslesen der Variablen noch hinzufügen. So werden die Systemvariablen nach dem Setzen des Modus wieder aktualisiert.
Für die weiteren Skript zum Setzen der Modi "Home" und MAN" muss lediglich das "auto" gegen "home" und "man" ersetzt werden!
Leider funktioniert bei mir das Auslesen des Timers nicht, daher habe ich zwar implementiert aber nicht testen können!
Ich bekomme nur diesen Status:
Code: Alles auswählen
{"successful": true:"status": {"status": 1, "mode": 0, "battery": 73, "hours": 0}:"timer": {"status": 2}}
-
- erfahrener Forum-Nutzer
- Beiträge: 99
- Registriert: Fr 4. Mär 2016, 21:56
- Wohnort: Dessau-Roßlau
- Mäher: Gardena R45Li
- Firmware des Mähers (MSW): MSW 5.xx.xx
- Herstellungsjahr: 2013
- Robonect-Modul: Robonect H30x (Rev.1)
- Robonect Firmware: 1.0beta
-
- Administrator
- Beiträge: 2907
- Registriert: Di 19. Jan 2016, 18:34
- Wohnort: Kiel
- Mäher: Gardena SILENO City 500
- Firmware des Mähers (MSW): MSW 11.xx.xx
- Herstellungsjahr: 2017 (Modell 2018)
- Robonect-Modul: Robonect Hx (Rev.5)
- Robonect Firmware: stets die Allerneuste :-)
- hat sich bedankt: 1 Mal
- wurde gedankt: 60 Male
- Kontaktdaten:
-
- sehr erfahrener Forum-Nutzer
- Beiträge: 122
- Registriert: Do 10. Mär 2016, 17:56
- Mäher: Gardena R40Li
- Firmware des Mähers (MSW): MSW 4.xx.xx
- Herstellungsjahr: 2012
- Robonect-Modul: Robonect H30x (Rev.0)
- Robonect Firmware: 1.0b2
Re: Homematic - Einbindung
Moin!
Sehr cool...bin nur etwas neidisch das Du schon zum Einbinden gekommen bist und ich noch keine Zeit hatte
Hab mal kurz Dein Script für den Status ausprobiert...ich hatte das Problem das das Ende des Strings nicht korrekt gefunden wurde...Ergebnis sah dann aus wie bei Dir in "Mähzeit".
Habe mal als QuickFix aus
Aber auf jeden Fall extrem cool!!!!
Sehr cool...bin nur etwas neidisch das Du schon zum Einbinden gekommen bist und ich noch keine Zeit hatte
Hab mal kurz Dein Script für den Status ausprobiert...ich hatte das Problem das das Ende des Strings nicht korrekt gefunden wurde...Ergebnis sah dann aus wie bei Dir in "Mähzeit".
Habe mal als QuickFix aus
folgendes gemacht:posEnd = '}:"timer';
Schätze er hat Probleme mit den Anführungszeichen. Vermutlich müssten diese auch als Escapesequenz gehen (\")...teste ich nachher mal.posEnd = '}';
Aber auf jeden Fall extrem cool!!!!
-
- sehr erfahrener Forum-Nutzer
- Beiträge: 122
- Registriert: Do 10. Mär 2016, 17:56
- Mäher: Gardena R40Li
- Firmware des Mähers (MSW): MSW 4.xx.xx
- Herstellungsjahr: 2012
- Robonect-Modul: Robonect H30x (Rev.0)
- Robonect Firmware: 1.0b2
Re: Homematic - Einbindung
Moin!
So, hab mich mal ein bsichen bei Deinem Script bedient (ca. 97% )...vielen Dank!
sieht aktuell so aus: Jetzt kommt noch:
- Regensperre (an/aus)
- Timer-Einstellungen
- dedizierte Knöpfe für 2 x vorne / 2x hinten
In der Steuerung fange ich an mit:
- Dolly Feierabend wenn Leute im Garten
- Regensperre
- sync mit den Beregnern
So, hab mich mal ein bsichen bei Deinem Script bedient (ca. 97% )...vielen Dank!
sieht aktuell so aus: Jetzt kommt noch:
- Regensperre (an/aus)
- Timer-Einstellungen
- dedizierte Knöpfe für 2 x vorne / 2x hinten
In der Steuerung fange ich an mit:
- Dolly Feierabend wenn Leute im Garten
- Regensperre
- sync mit den Beregnern
-
- erfahrener Forum-Nutzer
- Beiträge: 99
- Registriert: Fr 4. Mär 2016, 21:56
- Wohnort: Dessau-Roßlau
- Mäher: Gardena R45Li
- Firmware des Mähers (MSW): MSW 5.xx.xx
- Herstellungsjahr: 2013
- Robonect-Modul: Robonect H30x (Rev.1)
- Robonect Firmware: 1.0beta
Re: Homematic - Einbindung
Coole Sache! Nur weiter so! Ist das ccu.io?
Mir ist der Haken, dass meine Mähzeit gar nicht im Statusbericht auftaucht... Daher war das n Schuss ins Blaue...
Mir ist der Haken, dass meine Mähzeit gar nicht im Statusbericht auftaucht... Daher war das n Schuss ins Blaue...
-
- sehr erfahrener Forum-Nutzer
- Beiträge: 122
- Registriert: Do 10. Mär 2016, 17:56
- Mäher: Gardena R40Li
- Firmware des Mähers (MSW): MSW 4.xx.xx
- Herstellungsjahr: 2012
- Robonect-Modul: Robonect H30x (Rev.0)
- Robonect Firmware: 1.0b2
Re: Homematic - Einbindung
Klar geht das weiter...ab Ostern wird gedüngt...dann muß das laufen
Der Screenschot ist von vis (IOBroker). Läuft aber auch unter Webmatic.
Im mOment habe ich nur noch nen paar Probleme die denke ich mit 0.5 gefixt sind...dann brauche ich noch die API für die neuen Funktionen und dann gehts weiter...
Ohne Deinen Start hätte ich noch nicht mal das!
bis denne
Mr.Lee
Der Screenschot ist von vis (IOBroker). Läuft aber auch unter Webmatic.
Im mOment habe ich nur noch nen paar Probleme die denke ich mit 0.5 gefixt sind...dann brauche ich noch die API für die neuen Funktionen und dann gehts weiter...
Ohne Deinen Start hätte ich noch nicht mal das!
bis denne
Mr.Lee
- Sprite01
- Forum-Nutzer
- Beiträge: 41
- Registriert: Do 17. Mär 2016, 14:09
- Wohnort: Sachsen-Anhalt
- Mäher: Gardena R40Li
- Firmware des Mähers (MSW): MSW 5.xx.xx
- Herstellungsjahr: 2015
- Robonect-Modul: Robonect H30x (Rev.2)
- Robonect Firmware: 1.0
- hat sich bedankt: 2 Male
- Kontaktdaten:
Re: Homematic - Einbindung
Dann sollte ja eine Einbindung in DashUI auch möglich sein ?
--------
Gruß
Dirk
Gardena R40Li; MSW: 5.01.00 (10-10-2014); SUB: 5.00.00; MMI: 5.05.00
Gruß
Dirk
Gardena R40Li; MSW: 5.01.00 (10-10-2014); SUB: 5.00.00; MMI: 5.05.00