Homematic - Einbindung
Moderator: Lampi
Re: Homematic - Einbindung
Du musst ein CuxD-Exec-Device (28) anlegen.
Die meisten nutzen als virtuelles Gerät die 12 Tasten Fernbedienung um möglichst viele Kanäle zu haben.
Ich hoffe einen Link zu einem anderen Forum zu posten geht in Ordnung.
Hier findest Du um Detail wonach Du suchst:
http://homematic-forum.de/forum/viewtop ... 31&t=12780
Gruß
miwi
Die meisten nutzen als virtuelles Gerät die 12 Tasten Fernbedienung um möglichst viele Kanäle zu haben.
Ich hoffe einen Link zu einem anderen Forum zu posten geht in Ordnung.
Hier findest Du um Detail wonach Du suchst:
http://homematic-forum.de/forum/viewtop ... 31&t=12780
Gruß
miwi
- bk-net
- Forum-Nutzer
- Beiträge: 17
- Registriert: Mo 23. Mai 2016, 12:25
- Wohnort: Braunschweig
- Mäher: Husqvarna Automower 105
- Robonect Firmware: -
Re: Homematic - Einbindung
Hallo miwi,
vielen Dank für Deine schnelle Hilfe. Ich hoffe, ich krieg das jetzt hin ....
Viele Grüße
Bernd
vielen Dank für Deine schnelle Hilfe. Ich hoffe, ich krieg das jetzt hin ....
Viele Grüße
Bernd
MSW-Software: Husqvarna 305 mit Upgrade auf 308
MSW-Version: 5.01.00
MSW-Datum: 2014-10-10
MMI-Version: 5.05.00
CCU2: 2.21.10
RasPi 3: 2.15.
CuXD: 1.7
MSW-Version: 5.01.00
MSW-Datum: 2014-10-10
MMI-Version: 5.05.00
CCU2: 2.21.10
RasPi 3: 2.15.
CuXD: 1.7
Re: Homematic - Einbindung
Hallo!
Ich habe nun verstanden, wie man den Status des Robbis abfragen kann. Aber ich habe nicht gefunden, wie man den Robbi aktiv steuern kann, z.B. "Komm sofort in die Ladestation".
Wie müsste denn der Befehl dafür lauten?
Gibt es eine Übersicht mit allen möglichen Befehlen?
(Sorry, wenn ich das schon irgendwo steht. Ich hab's nicht gefunden. Oder die Logik nicht verstanden...)
Ich habe nun verstanden, wie man den Status des Robbis abfragen kann. Aber ich habe nicht gefunden, wie man den Robbi aktiv steuern kann, z.B. "Komm sofort in die Ladestation".
Wie müsste denn der Befehl dafür lauten?
Gibt es eine Übersicht mit allen möglichen Befehlen?
(Sorry, wenn ich das schon irgendwo steht. Ich hab's nicht gefunden. Oder die Logik nicht verstanden...)
VG
Kurt + Robbi
Robonect V1.1b
MSW-Software: R45Li, MSW-Version: 5.01.00, MSW-Datum: 2014-10-10 13:44:38, SUB-Version: 5.00.00
Kurt + Robbi
Robonect V1.1b
MSW-Software: R45Li, MSW-Version: 5.01.00, MSW-Datum: 2014-10-10 13:44:38, SUB-Version: 5.00.00
-
- 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!
gesteuert wird über die API-Befehle:
http://www.robonect.de/viewtopic.php?f=10&t=37
Beispiel für implementierung:
http://www.robonect.de/viewtopic.php?f=13&t=350
Siehe Modus setzen
Viel Spaß!
Mr.Lee
gesteuert wird über die API-Befehle:
http://www.robonect.de/viewtopic.php?f=10&t=37
Beispiel für implementierung:
http://www.robonect.de/viewtopic.php?f=13&t=350
Siehe Modus setzen
Viel Spaß!
Mr.Lee
Re: Homematic - Einbindung
Danke für die schnelle Hilfe! Jetzt werd ich's hinbekommen. Muss nur noch "eben" die Robonect-Platine einbauen...
VG
Kurt + Robbi
Robonect V1.1b
MSW-Software: R45Li, MSW-Version: 5.01.00, MSW-Datum: 2014-10-10 13:44:38, SUB-Version: 5.00.00
Kurt + Robbi
Robonect V1.1b
MSW-Software: R45Li, MSW-Version: 5.01.00, MSW-Datum: 2014-10-10 13:44:38, SUB-Version: 5.00.00
-
- 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
Hier eine Aktualisierung (getestet mit 0.8RC6) des Skripts für diejenigen, die kein CUxD am laufen haben:
Pushnachrichten werden via https://pushover.net/faq#library-php verschickt.
Die Installation wird hier erklärt:
viewtopic.php?f=13&t=77#p477
Systemvariablen sind wie folgt anzulegen:
Das Auslesen des Mähtages hab ich aus Zeitgründen noch nicht hinbekommen. Vielleicht findet sich ja auch ein anderer?
Code: Alles auswählen
string Url='http://192.168.0.xx/json?user=xx&pass=xx&cmd=status';
var stdout;
var posStart;
var posEnd;
var preis;
var substring;
var posValueStart;
var posValueEnd;
var posValue;
string stderr;
string stdout;
WriteLine(stdout);
stdout = "ping";
string pos;
string substring2;
WriteLine("strings gesetzt");
system.Exec("wget -q -O - "#Url, &stdout, &stderr);
WriteLine("Abrufen");
WriteLine(stdout);
if (stdout == "ping") { dom.GetObject('R45Li-Fehler').State('Kein Ping!'); WriteLine("kein Ping!");}
else
{
WriteLine("Status Anfang!");
posStart = '{"status": ';
posEnd = ', "mode';
pos = stdout.Find(posStart) + posStart.Length();
WriteLine("pos");
WriteLine(pos);
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
WriteLine(substring);
dom.GetObject('R45Li-Status').State(substring);
WriteLine("Status Ende!");
WriteLine("Modus Anfang!");
posStart = '"mode": ';
posEnd = ', "batt';
pos = stdout.Find(posStart) + posStart.Length();
WriteLine("pos");
WriteLine(pos);
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
WriteLine(substring);
dom.GetObject('R45Li-Modus').State(substring);
WriteLine("Modus ende!");
WriteLine("Batterie Anfang!");
posStart = '"battery": ';
posEnd = ', "hou';
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!");
WriteLine("Laufzeit Anfang!");
posStart = '"hours": ';
posEnd = '}, "timer';
pos = stdout.Find(posStart) + posStart.Length();
WriteLine("pos");
WriteLine(pos);
substring = stdout.Substr(pos, 3).StrValueByIndex(posEnd, 0) ;
WriteLine(substring);
dom.GetObject('R45Li-Laufzeit').State(substring.ToString(1) + " Stunden");
WriteLine("Laufzeit ende!");
!posStart = '"next": {"date": "';
!posEnd = '", "time":';
!pos = stdout.Find(posStart) + posStart.Length();
!WriteLine("pos");
!WriteLine(pos);
!substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
!WriteLine("substring:");
!WriteLine(substring);
!integer SysMonat = system.Date("%d.%m.%Y").ToTime().ToInteger();
!WriteLine("SysMonat:");
!WriteLine(SysMonat);
! WriteLine("Tag:");
! WriteLine(Tag);
! dom.GetObject('R45Li-Mähtag').State(substring);
!if (substring == SysMonat) {dom.GetObject('R45Li-Mähtag').State(0); WriteLine("Heute!");}
!if (substring == SysMonat + 1) {dom.GetObject('R45Li-Mähtag').State(1); WriteLine("Morgen!");}
!if (substring == SysMonat + 2) {dom.GetObject('R45Li-Mähtag').State(2); WriteLine("Heute!");}
!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, 5).StrValueByIndex(posEnd, 0) ;
! WriteLine(substring);
! dom.GetObject('R45Li-Mähzeit').State(substring.ToString(1) + " Uhr");
WriteLine("Error Anfang!");
pos= 0;
posStart = '"error_message": "';
posEnd = '", "date"';
pos = stdout.Find(posStart) + posStart.Length();
if(stdout.Find(posStart)>0)
{
WriteLine("Error gefunden!");
WriteLine("pos");
WriteLine(pos);
substring = stdout.Substr(pos, 20).StrValueByIndex(posEnd, 0);
WriteLine("Fehler:");
WriteLine(substring);
dom.GetObject('R45Li-Fehler').State(substring.ToString(1));
dom.GetObject('pocketControlPushMessage').State(substring.ToString(1));
string v5;
string stderr;
string stdout;
string url="http://xx.de/pushover.php?sound=Gamelan&title=R45Li%20Fehler&message=";
string message;
message = substring;
string newmessage;
string messageindex;
! Umwandlung Leerschritt in "%20"
foreach(messageindex,message.Split(" "))
{
newmessage = newmessage+messageindex+"%20";
}
message = newmessage;
newmessage = "";
! Umwandlung "Ä" in "%C3%84"
foreach(messageindex,message.Split("Ä"))
{
newmessage = newmessage+messageindex+"%C3%84";
}
message = newmessage;
newmessage = "";
! Umwandlung "Ö" in "%C3%96"
foreach(messageindex,message.Split("Ö"))
{
newmessage = newmessage+messageindex+"%C3%96";
}
message = newmessage;
newmessage = "";
! Umwandlung "Ü" in "%C3%9C"
foreach(messageindex,message.Split("Ü"))
{
newmessage = newmessage+messageindex+"%C3%9C";
}
message = newmessage;
newmessage = "";
! Umwandlung "ä" in "%C3%A4"
foreach(messageindex,message.Split("ä"))
{
newmessage = newmessage+messageindex+"%C3%A4";
}
message = newmessage;
newmessage = "";
! Umwandlung "ö" in "%C3%B6"
foreach(messageindex,message.Split("ö"))
{
newmessage = newmessage+messageindex+"%C3%B6";
}
message = newmessage;
newmessage = "";
! Umwandlung "ü" in "%C3%BC"
foreach(messageindex,message.Split("ü"))
{
newmessage = newmessage+messageindex+"%C3%BC";
}
message = newmessage;
newmessage = "";
! Umwandlung "ß" in "%C3%9F"
foreach(messageindex,message.Split("ß"))
{
newmessage = newmessage+messageindex+"%C3%9F";
}
message = newmessage;
newmessage = "";
! Umwandlung "°" in "%C2%B0"
foreach(messageindex,message.Split("°"))
{
newmessage = newmessage+messageindex+"%C2%B0";
}
message = newmessage;
newmessage = "";
! Kürzen der Nachricht um die jeweils am Ende angefügten Umwandlungscodes.
message = message.Substr(0, message.Length()-51);
v5 =message;
WriteLine(v5);
url=url # v5;
system.Exec("wget -q -O - "#url, &stdout, &stderr);
Write("Fehler:");
WriteLine(substring);
}
else
{
dom.GetObject('R45Li-Fehler').State('alles OK');
WriteLine("kein Fehler!");
}
}
Die Installation wird hier erklärt:
viewtopic.php?f=13&t=77#p477
Systemvariablen sind wie folgt anzulegen:
Das Auslesen des Mähtages hab ich aus Zeitgründen noch nicht hinbekommen. Vielleicht findet sich ja auch ein anderer?
Re: Homematic - Einbindung
Hallo, ich habe jetzt auch erfolgreich die Robonect-Platine installiert!
Was mir spontan aufgefallen ist: Robbi ist in der Ladestation und es wird der Status "lädt" angezeigt, obwohl die Ladestation keinen Strom hat (Strom gibt's per Homematic nur bei schönem Wetter). Der Ladezustand fällt auch langsam.
Müsste ich da was wissen? Oder ist's ein bug?
Was mir spontan aufgefallen ist: Robbi ist in der Ladestation und es wird der Status "lädt" angezeigt, obwohl die Ladestation keinen Strom hat (Strom gibt's per Homematic nur bei schönem Wetter). Der Ladezustand fällt auch langsam.
Müsste ich da was wissen? Oder ist's ein bug?
VG
Kurt + Robbi
Robonect V1.1b
MSW-Software: R45Li, MSW-Version: 5.01.00, MSW-Datum: 2014-10-10 13:44:38, SUB-Version: 5.00.00
Kurt + Robbi
Robonect V1.1b
MSW-Software: R45Li, MSW-Version: 5.01.00, MSW-Datum: 2014-10-10 13:44:38, SUB-Version: 5.00.00
-
- 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
Nunja, Bug würde ich es nicht unbedingt nennen, sondern eher unvorhergesehenes Ereignis.
Das Skript fragt die Zustände ab und setzt die entsprechenden Variablen. Wird der Robo nicht erreicht erscheint als Fehlermeldung "kein Ping", die vorher gesetzten Variablen bleiben aber unverändert. Sie müssten in diesem Fall extra ausgenullt werden.
Da mein Robo aber dauerhaft unter Strom ist (ich sehe einfach keinen Sinn in der Abschaltung) habe ich diesen Fall nicht eingebaut...
Das Skript fragt die Zustände ab und setzt die entsprechenden Variablen. Wird der Robo nicht erreicht erscheint als Fehlermeldung "kein Ping", die vorher gesetzten Variablen bleiben aber unverändert. Sie müssten in diesem Fall extra ausgenullt werden.
Da mein Robo aber dauerhaft unter Strom ist (ich sehe einfach keinen Sinn in der Abschaltung) habe ich diesen Fall nicht eingebaut...
- bk-net
- Forum-Nutzer
- Beiträge: 17
- Registriert: Mo 23. Mai 2016, 12:25
- Wohnort: Braunschweig
- Mäher: Husqvarna Automower 105
- Robonect Firmware: -
Re: Homematic - Einbindung
Hallo,
ich habe auch die CuXD laufen und das Skript von Christoph entsprechend angepasst. Version 0.8. RC7. Funktioniert alles bis auf die WLAN Abfrage.
Kann bitte jemand die Skript-Zeilen für die WLAN db Abfrage einstellen? - und wie die Variable aussehen muss?
Habe leider zu wenig Kenntnisse um das Skript hierfür zu ergänzen.
Danke und VG
Bernd
ich habe auch die CuXD laufen und das Skript von Christoph entsprechend angepasst. Version 0.8. RC7. Funktioniert alles bis auf die WLAN Abfrage.
Kann bitte jemand die Skript-Zeilen für die WLAN db Abfrage einstellen? - und wie die Variable aussehen muss?
Habe leider zu wenig Kenntnisse um das Skript hierfür zu ergänzen.
Danke und VG
Bernd
MSW-Software: Husqvarna 305 mit Upgrade auf 308
MSW-Version: 5.01.00
MSW-Datum: 2014-10-10
MMI-Version: 5.05.00
CCU2: 2.21.10
RasPi 3: 2.15.
CuXD: 1.7
MSW-Version: 5.01.00
MSW-Datum: 2014-10-10
MMI-Version: 5.05.00
CCU2: 2.21.10
RasPi 3: 2.15.
CuXD: 1.7