da unklar ist, welches Skript deine Ausgangsbasis war, kopiere doch den relevanten Teil hier rein, oder, noch besser das ganze Skript
Paul
[v0.4.5] Homematic-Einbindung XML-Version
Moderator: Lampi
- PaulMerkelbach
- Forum-Nutzer
- Beiträge: 20
- Registriert: Di 20. Sep 2016, 15:42
- Mäher: Gardena R40Li
- Firmware des Mähers (MSW): MSW 6.xx.xx
- Herstellungsjahr: 2016
- Robonect-Modul: Robonect Hx (Rev.1)
- Robonect Firmware: V 1.2
- hat sich bedankt: 2 Male
Re: [v0.4.5] Homematic-Einbindung XML-Version
Ich verwende das Skript aus diesem Faden.
Die einzige Änderung ist der Einbau einen Auswahl ob die CCU oder CUxD das Auslesen übernehmen soll (Zeile 34 bis 40)
Zur Ergänzung des Problems. Husky war gerade unterwegs und der Status "mäht" wurde korrekt angezeigt. Jetzt ist er in Der Ladestation und es wird "parkt" angezeigt. Wenn er sich jetzt schlafen legt (17) wird unter Status nichts angezeigt.
Gruss aus Asbach
Jürgen
Die einzige Änderung ist der Einbau einen Auswahl ob die CCU oder CUxD das Auslesen übernehmen soll (Zeile 34 bis 40)
Code: Alles auswählen
! Orginal von timberland http://www.robonect.de/viewtopic.php?f=13&t=77
! Erweitert Mr.Lee
! v 0.1:
! - Variablen nicht mehr als string sondern Zahl oder Werteliste
! - Anpassungen beim Erstellen substring
! v 0.2: (Firmware 0.5)
! - Erweiterung um Status Timer, nächster Timer
! v 0.3: (Firmware0.7)
! - Erweiterung um letzte Laufzeit "Duration"
! - umgestellt auf xml
!v 0.4: (Firmware 0.8)
!- Bugfix Timer Date
!v 0.4.1: (Firmware 0.8)
!- Bugfix Timer Start
!v 0.4.2
! _Variablen angepasst
!v 0.4.4 Version 0.8RC5
!- Timer Ende korrigiert
!v 0.4.5
! - WLAN ergänzt
! Jürgen Schulte
! - Auwahl zwischen CCU oder CUxD eingefügt
! IP anpassen
string Url='http://192.168.19.46/xml?cmd=status';
var posStart;
var posEnd;
var substring;
var posValueStart;
var posValueEnd;
string stderr;
var stdout;
! CCU (bei Verwendung für die nächste Zeile das "!" entfernen. Achtung: nur CCU oder CUxD verwenden.)
!system.Exec("wget -q -O - "#Url, &stdout, &stderr);
! CUxD (bei Verwendung für die nächste drei Zeile das "!" entfernen. Achtung: nur CCU oder CUxD verwenden.)
dom.GetObject("CUxD.CUX2801001:6.CMD_SETS").State("wget -q -O - '"#Url#"'");
dom.GetObject("CUxD.CUX2801001:6.CMD_QUERY_RET").State(1);
string stdout= dom.GetObject("CUxD.CUX2801001:6.CMD_RETS").State();
WriteLine("Abrufen");
WriteLine(stdout);
!Status auslesen
posStart = '<status><status>';
posEnd = '/status';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart+1;
substring = stdout.Substr(posValueStart, posValueEnd) ;
dom.GetObject('VAR_Husky_Status').State(substring);
WriteLine('Status: ' # substring);
!Laufzeit auslesen
posStart = '<duration>';
posEnd = '/duration';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart+1;
substring = stdout.Substr(posValueStart, posValueEnd);
substring = substring.ToInteger()/60;
dom.GetObject('VAR_Husky_letzte_Laufzeit').State(substring);
WriteLine('Laufzeit: '#substring);
!Modus auslesen
posStart = '<mode>';
posEnd = '/mode';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart+1;
substring = stdout.Substr(posValueStart, posValueEnd) ;
dom.GetObject('VAR_Husky_Modus').State(substring);
WriteLine('Modus: ' # substring);
!Battery auslesen
posStart = '<battery>';
posEnd = '/battery';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart+1;
substring = stdout.Substr(posValueStart, posValueEnd) ;
dom.GetObject('VAR_Husky_Batterie').State(substring);
WriteLine('Battery: '# substring);
!Betriebszeit auslesen
posStart = '<hours>';
posEnd = '/hours';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart+1;
substring = stdout.Substr(posValueStart, posValueEnd) ;
dom.GetObject('VAR_Husky_Betriebsstunden').State(substring.ToString(1));
WriteLine('Betriebsstunden' # substring);
!Timerstatatus auslesen
posStart = '<timer><status>';
posValueStart = stdout.Find(posStart) + posStart.Length();
substring = stdout.Substr(posValueStart, 1) ;
dom.GetObject('VAR_Husky_Timer').State(substring);
if (substring.ToInteger()==2) {
posStart = '<next><date>';
posEnd = '/date';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart+1;
substring = stdout.Substr(posValueStart, posValueEnd) ;
dom.GetObject('VAR_Husky_TimerDate').State(substring);
WriteLine('Timer_Date: '# substring);
posStart = '<time>';
posEnd = '/time';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart+1;
substring = stdout.Substr(posValueStart, posValueEnd) ;
dom.GetObject('VAR_Husky_TimerTime').State(substring);
WriteLine('Timer_Time: '# substring);
} else {
if (substring.ToInteger()==0) {
dom.GetObject('VAR_Husky_TimerDate').State("deaktiviert");
dom.GetObject('VAR_Husky_TimerTime').State("deaktiviert");
} else {
dom.GetObject('VAR_Husky_TimerDate').State("aktiv");
dom.GetObject('VAR_Husky_TimerTime').State("aktiv");
}
}
!WLANauslesen
posStart = '<signal>';
posEnd = '/signal';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart+1;
substring = stdout.Substr(posValueStart, posValueEnd) ;
dom.GetObject('VAR_Husky_WLAN').State(substring);
WriteLine('WLAN: ' # substring);
Gruss aus Asbach
Jürgen
Husquana 330x, MSW-Software: 430X, MSW-Version: 7.04.00, SUB-Version: 6.00.00
Robonect Hx Rev.2, Firmware Release V0.9 RC2
Robonect Hx Rev.2, Firmware Release V0.9 RC2
- PaulMerkelbach
- Forum-Nutzer
- Beiträge: 20
- Registriert: Di 20. Sep 2016, 15:42
- Mäher: Gardena R40Li
- Firmware des Mähers (MSW): MSW 6.xx.xx
- Herstellungsjahr: 2016
- Robonect-Modul: Robonect Hx (Rev.1)
- Robonect Firmware: V 1.2
- hat sich bedankt: 2 Male
Re: [v0.4.5] Homematic-Einbindung XML-Version
ich bin kein Spezialist, aber ich würde versuchen dem Fehler auf die Spur zu kommen durch die Einfügung von WriteLine Zeilen. Dann das Skript testen und ggf. die Ausgabe hier kopieren
posStart = '<Status><Status>';
posEnd = '/Status';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart+1;
WriteLine("posStart: " # posStart);
WriteLine("posEnd: " # posEnd);
WriteLine("posValueStart: " # posValueStart);
WriteLine("posValueEnd: " # posValueEnd);
substring = stdout.Substr(posValueStart, posValueEnd) ;
posStart = '<Status><Status>';
posEnd = '/Status';
posValueStart = stdout.Find(posStart) + posStart.Length();
posValueEnd = stdout.Find(posEnd)-posValueStart+1;
WriteLine("posStart: " # posStart);
WriteLine("posEnd: " # posEnd);
WriteLine("posValueStart: " # posValueStart);
WriteLine("posValueEnd: " # posValueEnd);
substring = stdout.Substr(posValueStart, posValueEnd) ;
Re: [v0.4.5] Homematic-Einbindung XML-Version
Husquana 330x, MSW-Software: 430X, MSW-Version: 7.04.00, SUB-Version: 6.00.00
Robonect Hx Rev.2, Firmware Release V0.9 RC2
Robonect Hx Rev.2, Firmware Release V0.9 RC2