Homematic - Einbindung
Moderator: Lampi
-
- erfahrener Forum-Nutzer
- Beiträge: 60
- Registriert: So 31. Jul 2016, 17:05
- Mäher: Gardena R40Li
- Firmware des Mähers (MSW): MSW 5.xx.xx
- Herstellungsjahr: 2012
- Robonect-Modul: Robonect H30x (Rev.0)
- Robonect Firmware: 1.0 Beta 2
Re: Homematic - Einbindung
Hier kommt meine Homeputer Anbindung:
Hiermit steht dann im Objekt Anz_Sys_eShawn z.B. : Status: Mäht im Auto-Modus.
Bis hier ging das "Pflichtmakro".
IP vom eigenen Schaf (eShawn) muss natürlich angepasst werden.
Jetzt kommt die Kür (nur mit umfangreichen Anpassungen nutzbar!):
Mit dem zweiten Teil kommt eine Sprachausgabe, wenn eShawn anfgängt zu mähen oder Hilfe benötigt. Auch wird über Pushover der Status mit geringer Priorität gesendet oder mit hoher, wenn es ein Problem gibt. Bei Regen oder Unwetter wird er nach Hause in den Feierabend geschickt.
Das Makro ist perfekt auf meine Bedürfnisse angepasst. Ich erhebe mit nichten einen Anspruch auf Perfektion. Es funktioniert einfach komplett ohne Abstürze und im Intervall von 2 Minuten. Gibt es Probleme, erhöht sich das Intervall automatisch auf 4 Minuten. Bei sehr lahmen CCUs ist u.U. ein noch größeres Intervall zu wählen.
Hoffe es hilft.
Gruß, Tobias.
Code: Alles auswählen
//! ============================================================
//! OBJEKT Anz_Sys_eShawn
//! ============================================================
//! OBJEKT-TYP : Zeichen
//! BEZEICHNUNG : Anz_Sys_eShawn
//! STARTWERT :
//! ------------------------------------------------------------
//! AUSFÜHRUNGSINTERVALL : jede Minute
//! AUSFÜHRUNG BEI EINGABE : ja
//! AUSFÜHRUNG BEI EMPFANG : nein
//! AUSFÜHRUNG BEI ÄNDERUNG : nein
//! ------------------------------------------------------------
//!
//! ============================================================
//! VARIABLENDEFINITIONEN
//! ============================================================
//! NAME TYP STARTWERT
//! ------------------------------------------------------------
//! Status Zeichen Variable nicht gesetzt
//! Modus Zeichen Variable nicht gesetzt
//! Alt Zeichen
//! eShawn_STATUS_JSON Zeichen
//! Sonderzeichen Zeichen "
//! Makro_Aktiv EAGeraet
//! Abspielen Zeichen
//! Anweisung Zeichen
//! Fehler EAGeraet aus
wenn Uhrzeit =* "00:01:00" ODER Uhrzeit =* "00:03:00" ODER Uhrzeit =* "00:05:00" ODER Uhrzeit =* "00:07:00" oder Uhrzeit =* "00:09:00" dann
verlassen
endewenn
wenn Makro_Aktiv = 1 dann
Makro_Aktiv := 0
verlassen
endewenn
Makro_Aktiv := 1
GetSite("http://192.168.0.6/json?cmd=status",80,eShawn_STATUS_JSON)
warte("00:00:10")
eShawn_STATUS_JSON := Ersetzen(eShawn_STATUS_JSON,Sonderzeichen,"")
eShawn_STATUS_JSON := Ersetzen(eShawn_STATUS_JSON,"status: {","")
Status := TEXTZWISCHEN(eShawn_STATUS_JSON,"status: ",",")
Modus := TEXTZWISCHEN(eShawn_STATUS_JSON,"mode: ",",")
wenn Status = "0" dann
Status:= "schläft"
endewenn
wenn Status = "1" dann
Status:= "parkt"
endewenn
wenn Status = "2" dann
Status:= "mäht"
endewenn
wenn Status = "3" dann
Status:= "sucht die Ladestation"
endewenn
wenn Status = "4" dann
Status:= "lädt auf"
endewenn
wenn Status = "5" dann
Status:= "sucht"
endewenn
wenn Status = "7" dann
Status:= "Fehler!"
endewenn
wenn Status = "8" dann
Status:= "Schleife verloren!"
endewenn
//***************************
wenn Modus = "0" dann
Modus:= "Auto"
endewenn
wenn Modus = "1" dann
Modus:= "Manu"
endewenn
wenn Modus = "2" dann
Modus:= "Home"
endewenn
wenn Modus = "3" dann
Modus:= "Demo"
endewenn
//*****************************************
Wenn Status = "Fehler!" ODER Status = "Schleife verloren!" dann
GetSite("http://192.168.0.6/json?cmd=error",80,eShawn_STATUS_JSON)
warte("00:00:05")
eShawn_STATUS_JSON := Ersetzen(eShawn_STATUS_JSON,Sonderzeichen,"")
Status := TEXTZWISCHEN(eShawn_STATUS_JSON,"error_message:",",")
Fehler:=1
SONST
Fehler:=0
endewenn
//*****************************************
Selbst:="Status: "+Status+" im "+Modus+ "-Modus"
//*****************************************
Makro_Aktiv := 0
Bis hier ging das "Pflichtmakro".
IP vom eigenen Schaf (eShawn) muss natürlich angepasst werden.
Jetzt kommt die Kür (nur mit umfangreichen Anpassungen nutzbar!):
Code: Alles auswählen
wenn Status = "maeht" UND (Textposition(MAKRO_CCU_Wetterdaten_abrufen.Wetter_Windbedingungen,"Regen")>0 ODER (Textposition(MAKRO_CCU_Wetterdaten_abrufen.Wetter_Windbedingungen,"Niesel")>0 ODER (Textposition(MAKRO_CCU_Wetterdaten_abrufen.Wetter_Windbedingungen,"Gewitter")>0 ODER (Textposition(MAKRO_CCU_Wetterdaten_abrufen.Wetter_Windbedingungen,"Schnee")>0)ODER (Textposition(MAKRO_CCU_Wetterdaten_abrufen.Wetter_Windbedingungen,"Sturm")>0 DANN
Startprogramm("wget -q -O /dev/null 'http://192.168.0.6/xml?cmd=mode&mode=eod'")
Selbst:="Wegen "+MAKRO_CCU_Wetterdaten_abrufen.Wetter_Windbedingungen+" ist für heute Feierabend!"
Endewenn
wenn Modus = "auto" UND (MAKRO_CCU_Wetterdaten_abrufen.W_Regenmenge >0 oder MAKRO_CCU_Wetterdaten_abrufen.W_Regenmenge1h >0) DANN
Startprogramm("wget -q -O /dev/null 'http://192.168.0.6/xml?cmd=mode&mode=eod'")
Selbst:="Wegen Regen: "+MAKRO_CCU_Wetterdaten_abrufen.W_Regenmenge +"/"+ MAKRO_CCU_Wetterdaten_abrufen.W_Regenmenge1h+" ist für heute Feierabend!"
Endewenn
wenn SELBST <> ALT DANN
Starte(MAKRO_ANZEIGENSTEUERUNG)
MAKRO_PUSHOVER.Empfaenger:="Tobias"
MAKRO_PUSHOVER.Dringlichkeit:=-2
MAKRO_PUSHOVER.Betreff:="eShawn"
MAKRO_PUSHOVER.Sound := "none"
wenn Textposition(Selbst,"Fehler") > 0 ODER Textposition(Selbst,"fehler") > 0 ODER Textposition(Selbst,"Schleife verloren") > 0 dann
MAKRO_PUSHOVER.Empfaenger:="Tobias"
MAKRO_PUSHOVER.Dringlichkeit:=1
MAKRO_PUSHOVER.Betreff:="eShawn braucht HILFE"
MAKRO_PUSHOVER.Sound := "spacealarm"
Abspielen:="eShawn braucht Hilfe"
MAKRO_URL_Wandeln := Abspielen
aufrufen(MAKRO_URL_Wandeln)
Anweisung := "wget -q -O /dev/null http://192.168.0.20:50000/tts="+MAKRO_URL_Wandeln
StartProgramm(Anweisung)
endewenn
wenn Textposition(Selbst,"Feierabend") > 0 dann
MAKRO_PUSHOVER.Empfaenger:="Tobias "
MAKRO_PUSHOVER.Dringlichkeit:=0
MAKRO_PUSHOVER.Betreff:="eShawn macht Feierabend"
MAKRO_PUSHOVER.Sound := "alien"
Abspielen := "eShawn macht Feierabend"
MAKRO_URL_Wandeln := Abspielen
aufrufen(MAKRO_URL_Wandeln)
Anweisung := "wget -q -O /dev/null http://192.168.0.20:50000/tts="+MAKRO_URL_Wandeln
StartProgramm(Anweisung)
endewenn
wenn Textposition(Selbst,"mäht") > 0 dann
Abspielen := "eShawn startet jetzt den Mähvorgang. Ist der Rasen frei?"
MAKRO_URL_Wandeln := Abspielen
aufrufen(MAKRO_URL_Wandeln)
Anweisung := "wget -q -O /dev/null http://192.168.0.20:50000/tts="+MAKRO_URL_Wandeln
StartProgramm(Anweisung)
endewenn
MAKRO_PUSHOVER.Text:=Selbst
AUFRUFEN(MAKRO_PUSHOVER)
ALT:=SELBST
ENDEWENN
Makro_Aktiv := 0
Das Makro ist perfekt auf meine Bedürfnisse angepasst. Ich erhebe mit nichten einen Anspruch auf Perfektion. Es funktioniert einfach komplett ohne Abstürze und im Intervall von 2 Minuten. Gibt es Probleme, erhöht sich das Intervall automatisch auf 4 Minuten. Bei sehr lahmen CCUs ist u.U. ein noch größeres Intervall zu wählen.
Hoffe es hilft.
Gruß, Tobias.
:: Geräteversion - MSW-Software: R40Li - MSW-Version: 5.01.00 - Robonect Firmware 1.0 Beta 2
- joe1313
- Forum-Nutzer
- Beiträge: 13
- Registriert: Mo 14. Nov 2016, 21:08
- Mäher: Gardena R40Li
- Firmware des Mähers (MSW): MSW 2.xx.xx
- Herstellungsjahr: 2011
- Robonect-Modul: Robonect Hx (Rev.2)
- Robonect Firmware: -V1.1b
Re: Homematic - Einbindung
Hallo,
Hat jemand ein funktionsfähiges Script, Robonect V0.9 Final unter CUxD?
+Systemvariablen ob Zeichenkette oder Werteliste
Battery, Laufzeit ,Wlan geht schon mal, aber
Status, Modus und Timer-Status wollen nicht - wird nur der erste Zustand angezeigt ( habe als Werteliste hinterlegt)
gruss joe
Edit: ES GEHT JETZT (Systemvariablen für Staus, Modus und Timer-Status auf Zeichenkette geändert )
Hat jemand ein funktionsfähiges Script, Robonect V0.9 Final unter CUxD?
+Systemvariablen ob Zeichenkette oder Werteliste
Battery, Laufzeit ,Wlan geht schon mal, aber
Status, Modus und Timer-Status wollen nicht - wird nur der erste Zustand angezeigt ( habe als Werteliste hinterlegt)
gruss joe
Edit: ES GEHT JETZT (Systemvariablen für Staus, Modus und Timer-Status auf Zeichenkette geändert )
-
- Forum-Anfänger
- Beiträge: 9
- Registriert: Do 16. Mär 2017, 07:48
- Mäher: Husqvarna Automower 310
- Firmware des Mähers (MSW): MSW 7.xx.xx
- Herstellungsjahr: 2016
- Robonect-Modul: Robonect Hx (Rev.2)
- Robonect Firmware: V1.0 Beta 7a
Re: Homematic - Einbindung
Hallo Joe(?),
bekomme in kommender Woche mein Modul und würde gerne meinen AM310 mit in HM auf gleicher Basis (Script, Robonect V0.9 Final unter CUxD) einbinden. Wäre prima, wenn Du mir Deine aktuell verwendete Script-Version nennen kannst. Perfekt wäre natürlich, wenn Du den von Dir verwendeten Script hier einstellen würdest.
Funktioniert bei Dir der Script in Verbindung mit Benutzername und Passwort?
Vorab vielen Dank!
Gruß
Jürgen
bekomme in kommender Woche mein Modul und würde gerne meinen AM310 mit in HM auf gleicher Basis (Script, Robonect V0.9 Final unter CUxD) einbinden. Wäre prima, wenn Du mir Deine aktuell verwendete Script-Version nennen kannst. Perfekt wäre natürlich, wenn Du den von Dir verwendeten Script hier einstellen würdest.
Funktioniert bei Dir der Script in Verbindung mit Benutzername und Passwort?
Vorab vielen Dank!
Gruß
Jürgen
Gruß
Jürgen
Jürgen
- saugbaer
- Forum-Veteran
- Beiträge: 1392
- Registriert: Mo 18. Apr 2016, 01:30
- Wohnort: Ramelsloh
- Mäher: Husqvarna Automower 310
- Firmware des Mähers (MSW): MSW 7.xx.xx
- Herstellungsjahr: 2022
- Robonect-Modul: Robonect Hx (Rev.5)
- Robonect Firmware: V1.4 beta 08.04.2023 20:42
- hat sich bedankt: 7 Male
- wurde gedankt: 10 Male
Re: Homematic - Einbindung
@HMROHAJUE ....bitte Signatur einpflegen...Danke
Ich bin nicht die Signatur, ich putz hier nur
AVM 7490 Fw.7.57 + 2AP's (FRITZ!Powerline 546E + FRITZ!WLAN Repeater 1160 Fw.7.15) HX + APP + VPN + Kamera + LED
AVM 7490 Fw.7.57 + 2AP's (FRITZ!Powerline 546E + FRITZ!WLAN Repeater 1160 Fw.7.15) HX + APP + VPN + Kamera + LED
- joe1313
- Forum-Nutzer
- Beiträge: 13
- Registriert: Mo 14. Nov 2016, 21:08
- Mäher: Gardena R40Li
- Firmware des Mähers (MSW): MSW 2.xx.xx
- Herstellungsjahr: 2011
- Robonect-Modul: Robonect Hx (Rev.2)
- Robonect Firmware: -V1.1b
Re: Homematic - Einbindung
Hallo Jürgen,
Aber ohne Benutzer und Passwort.
gruss joe
Code: Alles auswählen
string Url='http://192.168.178.93/json?cmd=status';
!Folgende Systemvariablen sind in Homematic anzulegen
!Fred-Status als Zeichenkette
!Fred-Modus als Zeichenkette
!Fred-Battery
!Fred-Laufzeit
!Fred-Timer-Status als Zeichenkette
!Fred-Wlan
!Fred-Zeit in Status
!Fred-LastSync
var stdout="";
var posStart;
var posEnd;
var substring;
var batt;
var wlan;
string stderr;
string stdout;
string pos;
!WriteLine("strings gesetzt");
dom.GetObject("CUxD.CUX2801003:7.CMD_SETS").State("wget -q -O - '"#Url#"'");
dom.GetObject("CUxD.CUX2801003:7.CMD_QUERY_RET").State(1);
string stdout= dom.GetObject("CUxD.CUX2801003:7.CMD_RETS").State();
!WriteLine("Abrufen");
!WriteLine(stdout);
!********R40Li Status abfragen***********
!WriteLine("Status Anfang!");
posStart = '{"status": ';
posEnd = ' ,';
pos = stdout.Find(posStart) + posStart.Length();
!WriteLine("pos");
!WriteLine(pos);
substring = stdout.Substr(pos, 1).StrValueByIndex(posEnd, 0) ;
WriteLine(substring);
dom.GetObject('Fred-Status').State(substring);
!WriteLine("Status Ende!");
!********R40Li Status abfragen ENDE***********
!********R40Li Modus abfragen***********
!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('Fred-Modus').State(substring);
!WriteLine("Modus ende!");
!********R40Li Modus abfragen ENDE***********
!********R40Li Batterie abfragen***********
pos=0;
posStart = '"battery": ';
posEnd = ', "';
pos = stdout.Find(posStart) + posStart.Length();
!WriteLine("pos");
!WriteLine(pos);
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
batt=substring;
substring =substring + ' %';
if(stdout.Find(posStart)>0)
{
!WriteLine("Battery");
!WriteLine(substring);
dom.GetObject('Fred-Battery').State(substring.ToString(1));
dom.GetObject("CUxD.CUX2801003:7.LOGIT").State("Fred-Battery;"#batt.ToString(1));
!WriteLine("Batterie ende!");
}
else
{
dom.GetObject('Fred-Battery').State('Variable nicht gesetzt');
}
!********R40Li Batterie abfragen ENDE***********
!********R40Li Laufzeit abfragen***********
pos=0;
posStart = '"hours": ';
posEnd = '}';
pos = stdout.Find(posStart) + posStart.Length();
if(stdout.Find(posStart)>0)
{
!WriteLine("pos");
!WriteLine(pos);
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
substring =substring + ' h';
!WriteLine("Laufzeit");
!WriteLine(substring);
dom.GetObject('Fred-Laufzeit').State(substring.ToString(1));
!WriteLine("Laufzeit ende!");
}
else
{
dom.GetObject('Fred-Laufzeit').State('Variable nicht gesetzt');
}
!********R40Li Laufzeit abfragen ENDE***********
!********R40Li Status abfragen***********
pos=0;
posStart = '"timer": {"status": ';
posEnd = '}';
pos = stdout.Find(posStart) + posStart.Length();
!WriteLine("pos");
!WriteLine(pos);
substring = stdout.Substr(pos, 1).StrValueByIndex(posEnd, 0) ;
!WriteLine("Timer Status");
!WriteLine(substring);
!WriteLine(substring);
dom.GetObject('Fred-Timer-Status').State(substring);
!WriteLine("Timer Staus Ende!");
!********R40Li Status abfragen ENDE***********
!********R40Li Wlan abfragen***********
pos=0;
posStart = '"wlan": {"signal": ';
posEnd = '}';
pos = stdout.Find(posStart) + posStart.Length();
substring = stdout.Substr(pos, 3).StrValueByIndex(posEnd, 0) ;
wlan=substring;
substring =substring + ' %';
if(stdout.Find(posStart)>0)
{
!WriteLine("Battery");
!WriteLine(substring);
dom.GetObject('Fred-WLAN').State(substring.ToString(1));
dom.GetObject("CUxD.CUX2801003:7.LOGIT").State("Fred-WLAN;"#wlan.ToString(1));
!WriteLine("Batterie ende!");
}
else
{
dom.GetObject('Fred-WLAN').State('Variable nicht gesetzt');
}
!********R40Li Wlan abfragen ENDE***********
!********R40Li Mod abfragen***********
!WriteLine("Modus Anfang!");
posStart = '"duration": ';
posEnd = ',';
pos = stdout.Find(posStart) + posStart.Length();
!WriteLine("pos");
!WriteLine(pos);
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
substring =substring + ' s';
WriteLine(substring);
dom.GetObject('Fred-Zeit in Status').State(substring);
!WriteLine("Modus ende!");
!********R40Li Mo abfragen ENDE***********
!********R40Li LastSyncTime schreiben***********
dom.GetObject('Fred-LastSync').State(system.Date("%d.%m.%Y %H:%M:%S"));
!********R40Li LastSyncTime schreiben***********
Aber ohne Benutzer und Passwort.
gruss joe
Re: Homematic - Einbindung
Moin moin
Hat jemand einen String womit ich das Camera Bild auslesen kann via Homematic?
Hat jemand einen String womit ich das Camera Bild auslesen kann via Homematic?
-
- Forum-Anfänger
- Beiträge: 9
- Registriert: Do 16. Mär 2017, 07:48
- Mäher: Husqvarna Automower 310
- Firmware des Mähers (MSW): MSW 7.xx.xx
- Herstellungsjahr: 2016
- Robonect-Modul: Robonect Hx (Rev.2)
- Robonect Firmware: V1.0 Beta 7a
Re: Homematic - Einbindung
Hallo Joe,
vielen Dank für Deine rasche Reaktion und Deinen eingestellten Script. Sobald das Modul eintrifft und es die Zeit erlaubt, werde ich mich ans Werk machen.
Perfekt wäre, wenn sich die Anbindung dann auch noch ohne allzu große Komplikationen realisieren lassen würde. Werde berichten.
Gruß
Jürgen
vielen Dank für Deine rasche Reaktion und Deinen eingestellten Script. Sobald das Modul eintrifft und es die Zeit erlaubt, werde ich mich ans Werk machen.
Perfekt wäre, wenn sich die Anbindung dann auch noch ohne allzu große Komplikationen realisieren lassen würde. Werde berichten.
Gruß
Jürgen
Gruß
Jürgen
Jürgen
- 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
Würde mich ja auch mal interessieren.HMROHAJUE hat geschrieben:Funktioniert bei Dir der Script in Verbindung mit Benutzername und Passwort?
Habe im Moment auch noch ohne User/Passwort am laufen nachdem mir sonst immer die CCU abgeschmiert ist.
--------
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
-
- Forum-Anfänger
- Beiträge: 9
- Registriert: Do 16. Mär 2017, 07:48
- Mäher: Husqvarna Automower 310
- Firmware des Mähers (MSW): MSW 7.xx.xx
- Herstellungsjahr: 2016
- Robonect-Modul: Robonect Hx (Rev.2)
- Robonect Firmware: V1.0 Beta 7a
Re: Homematic - Einbindung
Guten Abend,
angestrebt ist die Umsetzung mit BN+PW. Bin selber gespannt, ob sich die Vorstellung realisieren lässt oder ob ich mit den gleichen Problemen zu kämpfen habe.
Gruß
Jürgen
angestrebt ist die Umsetzung mit BN+PW. Bin selber gespannt, ob sich die Vorstellung realisieren lässt oder ob ich mit den gleichen Problemen zu kämpfen habe.
Gruß
Jürgen
Gruß
Jürgen
Jürgen