Hallo zusammen,
ich bin heute irgendwie alles auf einmal angegangen.
Angefangen habe ich mit dem Einbau der Gleitplatte, dann das Robonect, dann ALEXA und nun verzweifel ich seit Stunden an der Homematic Anbindung.
Homematic nutze ich seit 8 Jahren, allerdings kenne ich mich nicht so gut mit den Skripten aus.
Ich habe tagelang sämtliche Beiträge zu der Homematic hier im Forum studiert, kriege es aber einfach nicht hin.
Es kann ja auch sein, das es an der neuen FW Beta6 liegt??
Sämtliche Variablen sind angelegt, ein Skript habe ich mir zusammen gebastelt, es hapert aber an manchen Abfragen.
Mein Skript:
!Shaun CUxD Abfrage V1
!Als Systemvariablen sind in Homematic angelegt:
!Shaun_Modus
!Shaun_Modus_Text
!Shaun_Stop
!Shaun_Batterie
!Shaun_Zeit_in_Status
!Shaun_Laufzeit
!Shaun_Status
!Shaun_Status_Text
!Shaun_Timer_Status
!Shaun_Timer_Datum
!Shaun_Timer_Zeit
!Shaun_Fehler
!Shaun_LastSync
!Shaun_Wlan
!IP Adresse des Maehers
string Url = 'http://192.168.178.23/json?cmd=status';
string User = 'vecci';
string Password = '*********';
!löscht vorherige Abfrage
var stdout="";
var posStart;
var posEnd;
var substring;
var batt;
var temp;
string stderr;
string stdout;
string pos;
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget --http-user=" # User # " --http-password=" # Password # " -q -O - '" # Url # "'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string stdout= dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
!cuxd Serien Nummer
!dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
!dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
!string stdout= dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
WriteLine("Antwort: " # stdout);
pos=0;
posStart = '{"Status": ';
posEnd = ' ,';
pos = stdout.Find(posStart) + posStart.Length();
if(stdout.Find(posStart)>0)
{
substring = stdout.Substr(pos, 1).StrValueByIndex(posEnd, 0) ;
!substring = stdout.Substr(pos, 2).StrValueByIndex(posEnd, 0) ;
dom.GetObject('Shaun_Status').State(substring);
WriteLine("M_Status: " # substring);
! nur für Chart CUxD
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State("Shaun_Status;"#substring.ToInteger());
if (substring == 0) {dom.GetObject('Shaun_Status_Text').State("Status wird ermittelt");}
if (substring == 1) {dom.GetObject('Shaun_Status_Text').State("parkt");}
if (substring == 2) {dom.GetObject('Shaun_Status_Text').State("mäht");}
if (substring == 3) {dom.GetObject('Shaun_Status_Text').State("sucht die Ladestation");}
if (substring == 4) {dom.GetObject('Shaun_Status_Text').State("lädt auf");}
if (substring == 5) {dom.GetObject('Shaun_Status_Text').State("sucht");}
if (substring == 7) {dom.GetObject('Shaun_Status_Text').State("befindet sich im Fehlerstatus");}
if (substring == 8) {dom.GetObject('Shaun_Status_Text').State("Schleifensignal verloren");}
substring = stdout.Substr(pos, 2).StrValueByIndex(posEnd, 0) ;
if (substring == 16) {dom.GetObject('Shaun_Status_Text').State("abgeschaltet");}
if (substring == 17) {dom.GetObject('Shaun_Status_Text').State("schläft");}
}
else
{
dom.GetObject('Shaun_Status_Text').State("ausgeschaltet ?");
}
string temp = dom.GetObject('Shaun_Status_Text').Value();
WriteLine("Shaun_Status_Text: " # temp);
pos=0;
posStart = '"stopped": ';
posEnd = '", duration"';
pos = stdout.Find(posStart) + posStart.Length();
if(stdout.Find(posStart)>0)
{
substring = stdout.Substr(pos, 4).StrValueByIndex(posEnd, 0) ;
!dom.GetObject('Shaun_Stop').State(substring);
if (substring == "true") {dom.GetObject('Shaun_Stop').State("true");}
if (substring == "fals") {dom.GetObject('Shaun_Stop').State("false");};
WriteLine("Stop: " # substring);
}
else
{
dom.GetObject('Shaun_Stop').State('-');
}
pos=0;
posStart = '"duration":';
posEnd = ',';
pos = stdout.Find(posStart) + posStart.Length();
if(stdout.Find(posStart)>0)
{
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
!substring ist hier vom Typ nicht String !!!
substring = substring.ToInteger()/60;
WriteLine(substring # " Minuten M_duration");
var zahl = substring.ToInteger();
WriteLine("zahl 0:" # zahl);
var h = (zahl / 60).ToInteger();
WriteLine("zahl h Gesamtstunden: " # h);
var d = (h / 24).ToInteger();
WriteLine("zahl d Tage:" # d);
zahl = (substring - (d * 24 * 60)).ToInteger();
WriteLine("zahl restl.Minuten: " # zahl);
h = (zahl / 60).ToInteger();
zahl = (zahl - (h * 60).ToInteger() );
WriteLine("zahl Minuten:" # zahl);
string substring = (d # " Tage " # h # " Stunden " # zahl #" Minuten");
WriteLine("Shaun_Zeit_in_Status: " # substring);
dom.GetObject("Shaun_Zeit_in_Status").State(substring);
}
else
{
dom.GetObject('Shaun_Zeit_in_Status').State('-');
}
pos=0;
posStart = '"mode": ';
posEnd = ', "batt';
pos = stdout.Find(posStart) + posStart.Length();
if(stdout.Find(posStart)>0)
{
substring = stdout.Substr(pos, 3).StrValueByIndex(posEnd, 0) ;
substring = substring.ToInteger();
dom.GetObject('Shaun_Modus').State(substring.ToInteger() );
WriteLine("Shaun_Modus: " # substring);
if (substring == 0) {dom.GetObject('Shaun_Modus_Text').State("Modus Auto");}
if (substring == 1) {dom.GetObject('Shaun_Modus_Text').State("Modus manuell");}
if (substring == 2) {dom.GetObject('Shaun_Modus_Text').State("Modus home");}
if (substring == 3) {dom.GetObject('Shaun_Modus_Text').State("Modus Demo");}
}
else
{
dom.GetObject('Shaun_Modus').State('-');
}
var temp = dom.GetObject('Shaun_Modus_Text').Value();
WriteLine("Shaun_Modus_Text: " # temp);
pos=0;
posStart = '"battery": ';
posEnd = ', "';
pos = stdout.Find(posStart) + posStart.Length();
!WriteLine("pos");
!WriteLine(pos);
!substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
substring = stdout.Substr(pos, 3).StrValueByIndex(posEnd, 0) ;
batt=substring;
substring = substring.ToInteger();
dom.GetObject('Shaun_Batterie').State(substring.ToInteger() );
!WriteLine("Shaun_Batterie: " # substring);
!batt=substring;
substring =substring + ' %';
if(stdout.Find(posStart)>0)
{
!WriteLine("Battery");
!WriteLine(substring);
dom.GetObject('Shaun_Batterie').State(substring.ToString(1));
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State("Shaun_Batterie;"#batt.ToString(1));
!WriteLine("Batterie ende!");
}
else
{
dom.GetObject('Shaun_Batterie').State('Variable nicht gesetzt');
}
pos=0;
posStart = '"hours": ';
posEnd = '}';
pos = stdout.Find(posStart) + posStart.Length();
if(stdout.Find(posStart)>0)
{
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
substring =substring + 'h';
dom.GetObject('Shaun_Laufzeit').State(substring.ToString(1));
}
else
{
dom.GetObject('Shaun_Laufzeit').State(' ');
}
pos=0;
posStart = '"Timer": {"Status": ';
posEnd = ',';
pos = stdout.Find(posStart) + posStart.Length();
if(stdout.Find(posStart)>0)
{
substring = stdout.Substr(pos, 1).StrValueByIndex(posEnd, 0) ;
if (substring == 0) {dom.GetObject('Shaun_Time_Status').State("Deaktiviert");}
if (substring == 1) {dom.GetObject('Shaun_Time_Status').State("Aktiv");}
if (substring == 2) {dom.GetObject('Shaun_Time_Status').State("Standby");}
}
else
{
dom.GetObject('Shaun_Time_Status').State(' ');
}
var temp = dom.GetObject('Shaun_Time_Status').Value();
WriteLine("Shaun_Time_Status: " # temp);
pos=0;
posStart = '"next": {"date": "';
posEnd = '", "time":';
pos = stdout.Find(posStart) + posStart.Length();
if(stdout.Find(posStart)>0)
{
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
dom.GetObject('Shaun_Time_Datum').State(substring.ToString(1));
}
else
{
dom.GetObject('Shaun_Time_Datum').State('-');
}
pos=0;
posStart = '"time": "';
posEnd = '", "unix":';
pos = stdout.Find(posStart) + posStart.Length();
if(stdout.Find(posStart)>0)
{
substring = stdout.Substr(pos, 8).StrValueByIndex(posEnd, 0) ;
dom.GetObject('Shaun_Time_Zeit').State(substring.ToString(1) );
}
else
{
dom.GetObject('Shaun_Time_Zeit').State('-');
}
WriteLine("Shaun_Time_Zeit: " # substring);
pos=0;
posStart = '"error_message": "';
posEnd = '", "date"';
pos = stdout.Find(posStart) + posStart.Length();
if(stdout.Find(posStart)>0)
{
substring = stdout.Substr(pos, 43).StrValueByIndex(posEnd, 0) ;
dom.GetObject('Shaun_Fehler').State(substring.ToString(1));
}
else
{
dom.GetObject('Shaun_Fehler').State('keine Fehlermeldung');
}
WriteLine("Shaun_Fehler: " # substring);
pos=0;
posStart = 'wlan": {"signal":';
posEnd = '}';
pos = stdout.Find(posStart) + posStart.Length();
if(stdout.Find(posStart)>0)
{
substring = stdout.Substr(pos, 10).StrValueByIndex(posEnd, 0) ;
dom.GetObject('Shaun_Wlan').State(substring.ToString() );
}
else
{
dom.GetObject('Shaun_Wlan').State(' ');
}
WriteLine("Shaun_Wlan: " # substring);
var temp = system.Date("%d.%m.%Y %H:%M:%S");
dom.GetObject('Shaun_LastSync').State(temp.ToString() );
WriteLine("lastsync " # temp);
Als Ausgabe bekomme ich:
Antwort: {"name": "Shaun", "id": "A614B5", "Status": {"Status": 2, "distance": 15, "stopped": false, "door": false, "duration": 1485, "mode": 0, "battery": 81, "hours": 27}, "Timer": {"Status": 1}, "blades": {"quality": 99, "hours": 2, "days": 0}, "wlan": {"signal": -78}, "Health": {"temperature": 36, "humidity": 36}, "clock": {"date": "2018-07-26", "time": "21:09:53", "unix": 1532639393}, "successful": true}
Shaun_Status_Text: ausgeschaltet ?
Stop: fals
24 Minuten M_duration
zahl 0:24
zahl h Gesamtstunden: 0
zahl d Tage:0
zahl restl.Minuten: 24
zahl Minuten:24
Shaun_Zeit_in_Status: 0 Tage 0 Stunden 24 Minuten
Shaun_Modus: 0
Shaun_Modus_Text: Modus Auto
Sieht dann so aus:
Wie ihr seht, passt da einiges nicht.
Die Abfrage im Browser klappt einwandfrei:
Ich hoffe irgend jemand von euch hat da Plan von und kann mir weiter helfen...
Aufgrund derzeit hohem Spamaufkommens werden neue Nutzer sehr restriktiv behandelt. Nach kurzer "Bewährungszeit" hat man als normaler Nutzer weitreichende Rechte und benötigt auch kein Captcha mehr.
.
Nutzer, die sich danach dennoch als Spammer oder Trolle erweisen, können jederzeit wieder auf diesen Status zurückgesetzt oder gebannt werden.
Dasselbe gilt für Versuche, politische Überzeugungen kund zu tun, egal aus welcher Richtung diese kommen.
.
. Achtung! Verwendet bitte für aktuelle Mäher bzw. falls ihr die Firmware eures Mähers kürzlich aktualisiert habt, den aktuellen Release-Candidate der Robonect-Firmware: https://fw.robonect.de/?latest Diese wird in ein paar Tagen als offizielle Firmware verfügbar sein. (Stand: 03.04.2024)
Homematic Abfrage mit V1.0 Beta 6
Einbindung von Robonect Hx und IO in Deine bereits bestehende Homematic-Anlage
Moderator: Lampi
- vecci
- Forum-Nutzer
- Beiträge: 40
- Registriert: Sa 21. Jul 2018, 13:14
- Wohnort: Hagen-Hohenlimburg
- Mäher: Gardena R40Li
- Firmware des Mähers (MSW): MSW 6.xx.xx
- Herstellungsjahr: 2017
- Robonect-Modul: Robonect Hx (Rev.5)
- Robonect Firmware: V1.0_Beta8c
Homematic Abfrage mit V1.0 Beta 6
**Gardena R40Li Bj 2017**Gleitplatte**Lenkbares Heckrad von Geisi-tech**Robonect V5 mit V1.0_Beta8C**ALEXA-Einbindung**
Gehe zu
- Das Robonect®-Forum
- ↳ Das Forum und seine Nutzer (hier kein Support für Robonect!)
- ↳ Neuigkeiten im Forum
- ↳ Tipps und Fragen zum Forum
- Robonect® Einsteiger
- ↳ Das Robonect®-Projekt
- ↳ Anleitungen für Einsteiger
- ↳ Erstinstallation: Anleitung und Hilfe
- ↳ Level Dich hoch! (Reihenfolge beachten!)
- ↳ Gebrauchsanweisungen
- ↳ Robonect® Gebrauchsanweisung und Support
- ↳ Husqvarna Automower
- ↳ Gardena
- ↳ Einbau-Anleitungen
- ↳ Software-Anleitungen
- ↳ Robonect® Gebrauchsanweisung und Support
- ↳ aktuelle Firmware
- Robonect® Normal-Anwender
- ↳ Robonect® Gebrauchsanweisung und Support
- ↳ allgemeine Mäher-Frage?
- ↳ Verbindungsprobleme? Robonect offline?
- ↳ Problemlösungen und RESET-Möglichkeiten
- ↳ Empfehlungen
- ↳ Erklärungen und Tipps
- ↳ Menüpunkt: Status
- ↳ Übersicht - Die Startseite von Robonect
- ↳ Allgemein
- ↳ Batterie
- ↳ Betriebsstunden
- ↳ Fehlerspeicher
- ↳ Health
- ↳ Motoren
- ↳ Schleife
- ↳ GPS
- ↳ Menüpunkt: Steuerung
- ↳ Betriebsmodus
- ↳ Neuer Mähauftrag
- ↳ Joystick
- ↳ Menüpunkt: Timer
- ↳ Übersicht
- ↳ Hilfestellungen zu Timer-Problemen
- ↳ Menüpunkt: Schnitthöhe
- ↳ Menüpunkt: Sicherheit
- ↳ Übersicht
- ↳ Benutzerdefiniert
- ↳ PIN
- ↳ Menüpunkt: Wetter
- ↳ Wetterdienst
- ↳ Hilfestellungen für OpenWeatherMap
- ↳ SensorControl
- ↳ Menüpunkt: Installation
- ↳ Fernstart
- ↳ Ladestation finden
- ↳ Korridorbreite
- ↳ Ausfahrwinkel
- ↳ Schleife
- ↳ Garagentor
- ↳ Passage
- ↳ Menüpunkt: Einstellungen
- ↳ Allgemein
- ↳ Uhrzeit/Datum
- ↳ Mähverhalten
- ↳ Messer
- ↳ Menüpunkt: Zubehör
- ↳ Extension-Port
- ↳ Kamera und GPS
- ↳ GPIO und OUT
- ↳ Menüpunkt: Benachrichtigung
- ↳ Push-Benachrichtigung
- ↳ E-Mail Service
- ↳ SMS-Service
- ↳ Menüpunkt: Kommunikation
- ↳ Verbindungsprobleme? Robonect offline?
- ↳ Fragen aus Saison 2020 (und früher)
- ↳ Access-Point
- ↳ Heimnetz
- ↳ Push-Service
- ↳ MQTT-Client
- ↳ Menüpunkt: Robonect
- ↳ Allgemein
- ↳ Benutzer
- ↳ Fernzugriff
- ↳ Webinterface
- ↳ Firmware-Update
- ↳ Service
- ↳ Aktuelle Firmware
- ↳ Fehler in der Firmware?
- ↳ Wünsche
- Robonect® Neuerscheinungen und Beta-Tester
- ↳ Download Beta-Firmware und Daily Builds
- ↳ Bug-Reports
- ↳ FW 1.3 (Final Release)
- ↳ bestätigte Bugs
- ↳ Bug?
- ↳ kein Bug
- ↳ FW 2.0 (Release)
- ↳ bestätigte Bugs
- ↳ Bug?
- ↳ kein Bug
- ↳ vorherige Release- und Beta-Versionen
- ↳ Wünsche
- ↳ Wünsche, die nicht erfüllbar sind
- ↳ Wünsche, die bereits umgesetzt sind
- ↳ Wünsche, deren Umsetzung in Planung ist
- Robonect® für ambitionierte Anwender
- ↳ Pimp my Robonect®
- ↳ Mähzeit oder Lebensdauer des Akku erhöhen
- ↳ Menüpunkt: Status > Batterie
- ↳ Menüpunkt: Einstellungen > Mähverhalten > Mähzeitanpassung
- ↳ Garagentorsteuerung
- ↳ Menüpunkt: Installation > Garagentor
- ↳ Passagenschaltung
- ↳ Menüpunkt: Installation > Passage
- ↳ Lichtausstattung
- ↳ Menüpunkt: Zubehör
- ↳ Kamera einbauen
- ↳ Menüpunkt: Zubehör
- ↳ Räder verbessern
- ↳ Messer
- ↳ Antenne
- ↳ Menüpunkt: Kommunikation > Heimnetz
- ↳ GPS
- ↳ Menüpunkt: Status > GPS
- ↳ Menüpunkt: Zubehör > (Kamera und) GPS
- ↳ Gemischtes und Kurioses
- ↳ Menüpunkt: Zubehör
- ↳ Einbindung in Hausautomatisierung
- ↳ Amazon Alexa Skill
- ↳ Apple HomeKit
- ↳ Enertex® EibPC
- ↳ FHEM
- ↳ Google Assistant und Google Home
- ↳ Gira HomeServer
- ↳ Home Assistant
- ↳ Homematic
- ↳ Homematic-Nutzer
- ↳ Homematic-Neueinsteiger
- ↳ ioBroker/MQTT
- ↳ MQTT-Nutzer
- ↳ MQTT-Neueinsteiger
- ↳ OpenHAB
- ↳ SmarthomeNG
- ↳ App-Entwicklung
- ↳ Android
- ↳ Apple iOS
- ↳ Roboconnect
- ↳ HowTo/Doku/Versionen
- ↳ Tests und Bugs
- ↳ Features: Fragen und Wünsche
- ↳ RobonectApp
- ↳ HowTo/Doku
- ↳ Bug?
- ↳ Feature Requests
- ↳ iOS-Apps allgemein
- ↳ inaktive iOS-App-Projekte
- ↳ Windows
- ↳ API für Robonect® Hx
- ↳ Kommandos
- Archiv
- ↳ veraltete Firmware
- ↳ Bug-Management vorheriger (Beta-)Versionen
- ↳ FW 1.2 (Final Release)
- ↳ bestätigte Bugs
- ↳ Bug?
- ↳ kein Bug
- ↳ FW 1.2 (RC0)
- ↳ bestätigte Bugs
- ↳ Bug?
- ↳ kein Bug
- ↳ FW 1.1b (Final Release)
- ↳ bestätigte Bugs
- ↳ Bug?
- ↳ kein Bug
- ↳ FW 1.0 Beta 1 bis 8 + Preview
- ↳ FW 1.0 Preview
- ↳ FW 1.0 Beta 1
- ↳ FW 1.0 Beta 2
- ↳ FW 1.0 Beta 3
- ↳ FW 1.0 Beta 4
- ↳ bestätigte Bugs
- ↳ Bug?
- ↳ WLAN-Probleme
- ↳ Kein Bug
- ↳ FW 1.0 Beta 5
- ↳ bestätigte Bugs
- ↳ Bug?
- ↳ kein Bug
- ↳ WLAN-Probleme
- ↳ FW 1.0 Beta 6
- ↳ bestätigte Bugs
- ↳ Bug?
- ↳ kein Bug
- ↳ WLAN-Probleme
- ↳ FW 1.0 Beta 7
- ↳ bestätigte Bugs
- ↳ Bug?
- ↳ kein Bug
- ↳ WLAN-Probleme
- ↳ FW 1.0 Beta 8
- ↳ bestätigte Bugs
- ↳ Bug?
- ↳ kein Bug
- ↳ FW 0.9e (Final Release)
- ↳ ältere als FW 0.9e
- ↳ Robonect® H30x (veraltet)
- ↳ User-Support
- ↳ Allgemeine Diskussionen
- ↳ Anleitungen
- ↳ Wünsche bis Beta 7a
- ↳ Wünsche bis einschließlich 2017
- ↳ Robonect® IO (Beta-Test)
- ↳ Einbau und Nutzung von Robonect® IO
- ↳ allgemeine Fragen
- ↳ Robonect® IO Firmware
- ↳ Firmware-Downloads / Changelog (für Robonect IO)
- ↳ Aktuelle Firmware
- ↳ Beta-Firmware (Testphase)
- ↳ Bug-Reports
- ↳ V0.1 Robonect-IO Firmware
- ↳ bestätigte Bugs
- ↳ Bug?
- ↳ kein Bug
- ↳ Wünsche
- ↳ API für Robonect® IO
- ↳ Tipps für vorherige FW-Versionen (archiviert)
- ↳ Ablage