NEWS
Test Adapter Rain Bird v0.1.x GitHub
-
Neues Log ist per Mail unterwegs.
-
@myssv Ich habe eine neue Version ins Git geladen, die hoffentlich die korrekten Daten aus deinem Modell ausliest.
Installieren kannst du es via Admin über "Adapter" -> Oben das Symbol mit der Katze (3. von rechts bei mir) -> Andere Quelle ->https://github.com/StrathCole/ioBroker.rainbird
Beim Start sollte im Log dann auch stehen "V0.2.1r34"
-
@StrathCole sagte in Test Adapter Rain Bird v0.1.x GitHub:
Beim Start sollte im Log dann auch stehen "V0.2.1r34"
Die Version habe ich jetzt, aber es wird leider immer noch keine Restlaufzeit angezeigt. Bleibt weiterhin auf 0 stehen
-
@myssv dann bitte noch mal ein Log, ein Ventil reicht aber.
-
Mail ist raus
-
@myssv Machst du bitte noch mal ein Update auf r35 via Git und prüfst es erneut?
-
Jetzt funktioniert es!
Danke dass Du die Feiertage für mich entwickelt hast!!
-
Kannst Du die Restlaufzeit auch noch in Minuten angeben? Ich stelle ja auch auf Minuten ein und der Sekundenwert wird ja nur alle x-Sekunden aktulisiert (bei mir ca. 20 Sekunden). Da läuft der Zeiger recht abgehackt.
-
@myssv Was würden dir die Minuten bringen? Verstehe es gerade noch nicht ganz.
-
Ich stelle die Laufzeit in Minuten ein:
Und würde gerne wenn die Bewässerung läuft, den Slider ausblenden und an gleicher Stelle den Restlaufzeit-Slider einblenden:
Das sind aber unterschiedliche Einheiten. Außerdem wird die Restlaufzeit nur alle 20 Sekunden aktualisiert, so dass die Sekunden nur springen und nicht sauber runter zählen.
Rein optische Kosmetik!
-
@myssv Ich mache mir das via Hilfsscript, weil der Controller die Zeit immer in Sekunden liefert. Ich weiß nicht, ob es sinnvoll wäre, das direkt im Adapter zu integrieren, da jeder User die Daten anders verarbeiten will. Was ich noch vorhabe, ist, die Restlaufzeit intern im Adapter feinkörniger runterzuzählen. Unabhängig von der Polling-Time.
In meinem Fall sieht das Skript so aus:
if(existsState('javascript.0.vis.rainbird.remaining_1') === false) { createState('vis.rainbird.remaining_1', '', {name: 'Restlaufzeit Station 1', unit: '', type: 'string', role: 'text', def: ''}); } if(existsState('javascript.0.vis.rainbird.remaining_2') === false) { createState('vis.rainbird.remaining_2', '', {name: 'Restlaufzeit Station 2', unit: '', type: 'string', role: 'text', def: ''}); } if(existsState('javascript.0.vis.rainbird.remaining_3') === false) { createState('vis.rainbird.remaining_3', '', {name: 'Restlaufzeit Station 3', unit: '', type: 'string', role: 'text', def: ''}); } if(existsState('javascript.0.vis.rainbird.remaining_4') === false) { createState('vis.rainbird.remaining_4', '', {name: 'Restlaufzeit Station 4', unit: '', type: 'string', role: 'text', def: ''}); } on({id: ['rainbird.0.device.stations.1.remaining', 'rainbird.0.device.stations.2.remaining', 'rainbird.0.device.stations.3.remaining', 'rainbird.0.device.stations.4.remaining'], change: 'any'}, function(obj) { if(obj.state.ack !== true) { return; } let id = 'remaining_1'; if(obj.id === 'rainbird.0.device.stations.2.remaining') { id = 'remaining_2' } else if(obj.id === 'rainbird.0.device.stations.3.remaining') { id = 'remaining_3' } else if(obj.id === 'rainbird.0.device.stations.4.remaining') { id = 'remaining_4' } let minutes = Math.floor(obj.state.val / 60); let seconds = obj.state.val - (minutes * 60); setState('javascript.0.vis.rainbird.' + id, minutes + ':' + (seconds < 10 ? '0' : '') + seconds, true); });
-
OK, das könnte ich mir umbauen.
Auf 6 Stationen habe ich es schon erweitert, aber wie definiere ich die Variablen als Zahlen?
Ich würde dann dort nur die Minuten rein schreiben und könnte dann den Slider auf diesen Datenpunkt aufsetzen und hätte meinen Wunsch erfüllt.
-
@myssv sagte in Test Adapter Rain Bird v0.1.x GitHub:
OK, das könnte ich mir umbauen.
Auf 6 Stationen habe ich es schon erweitert, aber wie definiere ich die Variablen als Zahlen?
Ich würde dann dort nur die Minuten rein schreiben und könnte dann den Slider auf diesen Datenpunkt aufsetzen und hätte meinen Wunsch erfüllt.
also statt
createState('vis.rainbird.remaining_4', '', {name: 'Restlaufzeit Station 4', unit: '', type: 'string', role: 'text', def: ''});
dann
createState('vis.rainbird.remaining_4', 0, {name: 'Restlaufzeit Station 4', unit: 'min', type: 'number', role: 'value', def: 0});
-
Danke!!
Ist jetzt genauso, wie ich es mir gewünscht habe!!
-
@myssv Die neue r36 hat nun sekundengenaue Restzeit. Ist gerade im Git gelandet.
-
@StrathCole sagte in Test Adapter Rain Bird v0.1.x GitHub:
Die neue r36 hat nun sekundengenaue Restzeit. Ist gerade im Git gelandet.
Funktioniert auch bei mir, aber mir reichen die Minuten.
-
Kurze Frage. Der Adapter startet bei mir permanent neu. Läuft auf nem Pi in einem Dockercontainer. Log hänge ich mal dran. Liegt es an der Installation auf einem Container? iobroker.2020-04-14.log.html
Ich hab gerade auf einer anderen Installation geguckt - normal auf nem PI - gleiches Problem.
-
@Martin-Rodewald Scheinbar kann sich dein Docker-Container nicht nach außen zu der IP des Rain Bird verbinden und steigt daher mit einem Fehler aus.
Probier mal, vom Container bzw der selben Ebene wie der Installation aus, ein "wget http://xxxxxxxx" auf die ip vom Rain Bird zu machen. Ich denke, das wird auch nicht funktionieren.
-
@Martin-Rodewald Du könntest mal die aktuellste r37 aus dem Git installieren. Da habe ich eine Sicherheitsabfrage an der Stelle drin.
-
Probiert. gleicher Fehler - siehe Log. Ein wget auf die IP geht nicht. Schalten kann ich über deinen Adapter die Anlage allerdings. Muss nur den Moment abpassen, wenn er sich nicht neu startet. Log ist bei _neuiobroker.2020-04-14.log.html
Achso Anpingen der IP geht. Wget sagt, auf Port 80 nicht erreicht