Seite 4 von 6
Re: Openhab2
Verfasst: Do 29. Jun 2017, 14:35
von idznak
Wie würde die CURL lauten?
Re: Openhab2
Verfasst: So 2. Jul 2017, 21:45
von michael
Den "spontanen Auftrag" hab ich im ersten Beitrag schon implementiert...
Re: Openhab2
Verfasst: Mi 12. Jul 2017, 22:32
von reyem
@michael:
Nur so zur info falls es noch interessiert. Das binding hat mittlerweile einen trigger channel. Wenn der Röbi X Minuten (konfigurierbar auf binding stufe) nicht mehr erreichbar war, wird getriggered. Damit lässt sich jetzt hoffentlich angenehmer arbeiten und rules basteln
Gruss
Marco
Re: Openhab2
Verfasst: Do 13. Jul 2017, 12:41
von bezibaerchen
Servus Marco,
hab's jetzt auch mal installiert und meine HTTP-Variante quasi transferiert. Gute Arbeit und weniger
manuell als bei HTTP.
Frage mich nur gerade: Duration gibst Du in Sekunden zurück, irgendwelche Pläne bzgl. einer Umrechnung?
Re: Openhab2
Verfasst: Do 13. Jul 2017, 16:11
von reyem
@bezibarchen:
Danke! Ja, momentan gibt das binding 1:1 das zurück was es von der API bekommt. Aber ich könnte das natürlich easy in Minuten umrechnen. Andererseits lässt es sich auch einfach in rules umrechnen. Wenn ich das bereits im Binding mache gibt es keinen Weg zurück an die Sekunden zu kommen und es geht information verloren. Deshalb die Frage, was wäre der Vorteil von einer anderen Einheit, bzw. wie/wozu verwendest du die duration in deinen rules?
Re: Openhab2
Verfasst: Do 13. Jul 2017, 16:21
von bezibaerchen
In meiner HTTP-Variante der Items mache ich es so:
Code: Alles auswählen
Number AutoMowerDuration "Dauer [%s]" <clock-on> {http="<[automowerCache:30000:JS(automower_duration.js)]"}
automower_duration.js:
Code: Alles auswählen
(function(i) {
var ret = "";
var seconds = JSON.parse(input).status.duration;
var days = Math.floor(seconds/(24*60*60));
var restwodays = seconds % (24*60*60);
var hours = Math.floor(restwodays/(60*60));
var restwohours = restwodays % (60*60);
var minutes = Math.floor(restwohours/ 60);
var seconds = restwohours % 60;
var minutess = "" + minutes;
if(minutes<=9) minutess = "0"+minutes;
var secondss = "" + seconds;
if(seconds<=9) secondss = "0"+seconds;
if ( days > 0 ) ret = "" + days + "T ";
if ( hours > 0 ) ret = ret + hours + ":";
if ( minutes > 0 ) ret = ret + minutess + ":";
ret = ret + secondss + "";
return ret;
})(input)
Vielleicht lässt sich das auch so im Binding lösen, dass das Binding rechnet und dementsprechend anzeigt.
Re: Openhab2
Verfasst: Fr 14. Jul 2017, 17:01
von reyem
OK, verstehe... Leider kann ich das nicht vom binding erledigen lassen. Ich könnte natürlich einen String channel dafür erstellen, aber der müsste dann wiederum Formatierung-Patterns als configuration unterstützen etc. Ich bin der Meinung das gehört eher in die rule, bzw. in einen transformation
Service den du ja schon korrekt benutzt.
Re: Openhab2
Verfasst: So 16. Jul 2017, 11:24
von bezibaerchen
Mit der Rule hat das wenig zu tun, ich schau mal, ob ich es transformiert bekomme und poste dann den Code.
Re: Openhab2
Verfasst: Fr 21. Jul 2017, 12:50
von bezibaerchen
So, das hat mir jetzt einfach keine Ruhe gelassen.
Hattest übrigens Recht, muss in eine Rule.
Falls das auch jemand möchte, hier mal die entsprechenden Snippets. Bitte beachten, man braucht 2 Items für die Dauer. Eines an den Channel gebunden und ein leeres.
Relevante Items:
Code: Alles auswählen
Number robonect_duration "Dauer aktueller Modus [%s h]" <grass> {channel="robonect:mower:13b76ca8:mowerStatus#duration" }
String robonect_transform "Dauer aktueller Modus [%s h]"
Rule automower_duration.rules:
Code: Alles auswählen
when
Item robonect_duration changed
then
var robonectduration=transform("JS", "robonect_duration.js", robonect_duration.state.toString)
robonect_transform.postUpdate(robonectduration)
end
JavaScript zum Umrechnen (robonect_duration.js)
Code: Alles auswählen
(function(seconds) {
var retval = "";
var days = Math.floor(seconds / (24 * 60 * 60));
seconds = seconds % (24 * 60 * 60);
var hours = Math.floor(seconds / (60 * 60));
seconds = seconds % (60 * 60);
var minutes = Math.floor(seconds / (60));
seconds = seconds % (60);
if (days > 0) {
if (days > 1) {
retval = retval + days + " " + "days ";
}
else {
retval = retval + days + " " + "day ";
}
}
retval = retval + hours + ":";
if (minutes < 10) {
retval = retval + "0" + minutes;
}
else {
retval = retval + minutes;
}
return retval;
})(input)
Re: Openhab2
Verfasst: Do 21. Sep 2017, 16:29
von Galileo
Hallo Reyem,
Ich bin gerade dabei, von EibPC auf Openhab2 umzusteigen. Also noch im Lernprozess was Raspi/Openhab betrifft.
Licht und Heizung habe ich schon geschafft und jetzt wollte ich den Robonect angehen. Ein Binding dafür ist natürlich verlockend und laut deiner Beschreibungen sollte es auch leicht zu installieren sein. Alleine - ich finde das von dir
beschriebene zip-File zum Download auf github nicht. Vielleicht bin ich auch zu dumm um github zu bedienen
Könntest du bitte einen Link oder eine Beschreibung geben, wo genau ich die aktuelle Version herunterladen kann?
vielen Dank,
Eduard