@skorpil sagte:
warum wird jetzt nur der numerische Wert (0,1,2,3) ausgegeben und nicht die Inhalte der SV "rein, raus, stop"?
Eine Werteliste enthält Zahlenwerte, denen über die Eigenschaft common.states Zustandstexte zugeordnet sind.
Hallo Paul,
Du hast wie immer recht.
Mein Problem ist 'true' oder true.
Schau dir bitte den Beitrag an:
https://forum.iobroker.net/topic/33480/js-mqtt-string-objekt-setstate-true-oder-true
Ich meine, das ist mein eigentliches Problem.
Vielen Dank
So ich habe es doch noch herausgefunden.
Es gibt jetzt noch eine weitere Funktion:
for (i=0; i<=(anzahlVentile-1); i++) {
if(getState(idAuswahl[i]).val) {
setState(idCounter[i],getState(idZeiten[i]).val);
SetTimeout(i);
}
}
}
function SetTimeout(wert) {
delay[wert] = setTimeout(function() {startVentil(wert);}, verzoegerungen[wert]*5000);
}
@paul53: danke für deine Hilfe
ich hatte mal ne Wrapperklasse gebastelt
in der ich setstate und createstate
verwurstet habe, findest du hier:
https://github.com/Nahasapeemapetilon/MyTelegramMenu/blob/master/lib/iobrokerfunctionswithpromise.js
genutzt habe ich es zum Beispiel hier:
https://github.com/Nahasapeemapetilon/MyTelegramMenu/blob/master/lib/menuitemreport.js
Viele Grüße
Ich glaube das ist ein Fehler im Adapter selbst. Bitte mal ein Issue mit der Fehlermeldung aufmachen ==> https://github.com/ioBroker/ioBroker.javascript
Mir ist Nichts anderes mehr eingefallen als einfach mal den ioBroker zu beenden UND jetzt auch das Linux System neu zu starten. Jetzt ist seit 90 Minuten Ruhe :) . Hoffe das bleibt so.
Update:
nach 16Stunden ist immer noch alles OK. Den ioBroker hatte ich ja schon mehrfach neu gestartet, die Lösung war wohl die Linux VM auch neu zu starten.
So macht das wieder Spaß :)
@moehre Hallo moehre,
ich stecke gerade am gleichen Punkt wie du und versuche meine Helios KWL in iobroker zu integrieren. Ich habe jetzt auch schon eine ganze Weile versucht mit dem modbus-Adapter zum Ziel zu kommen, leider bisher ohne Erfolg.
Jetzt habe ich gesehen, dass du den XML ansatz erfolgreich hinbekokmmen hast. Wie bist du denn final vorgegangen um die für dich relevanten Informatzionen zu bekommen?
Grüße
@jsc sagte:
In Zeile 206 im skript kellerenteuchung ist eine Leerzeile...
Dann kann der Fehler auch in Zeile 205 sein, insbesondere dann, wenn eine schließende Klammer fehlt.
Würde gerne noch etwas einbringen. Soweit ich sehe verwendest du obj.state.val nicht. Dann könntest du val:true benutzen.
Ob das mit dem timer[obj.id] Sinn macht. Ja ist doch kaum Arbeit. Ich würde es dann aber eher so lösen:
var devices = {};
on(...(obj)=> {
devices[obj.id] = true;
//hier entprellen
setTimeout(meineFunktion,100);
})
function meineFunktion() {
for (let dev in devices){...}
devices = {};
}
Kann Syntaxfehler enthalten. :)
@ELK Moin,
ich stand vor der gleichen Herausforderung:
Ich lasse mir im Script Einmalausführungstermine errechen und erstelle dann einen schedule.
Beispiel:
var scheduleEin = schedule(Minuten + " " + Stunde + " * * *", Funktion);
Mit clearschedule(scheduleEin) lösche ich den schedule wieder (letzte Zeile der aufgerufenen Funktion).
@paul53
Edit: Doch nicht.
1 - 1.8998/0.93 ist kleiner als -1 und kann mit Math.acos() nicht berechnet werden (Ergebnis: NaN).
genau der entscheidende Punkt! Ich hatte mir Math.acos() und den Bereich von -1 bis 1 auch schon angesehen, da ich aber in den "manuellen DP" immer 180cm eingetragen hatte, passte die Rechnung. Zwischenzeitlich regnete es aber und die Zisterne füllte sich bin in den Dome rein.
Daher ging es mit dem javascript-DP und mit dem mqtt-DP nicht.
Was ist nun passiert:
die Messung ergab 189cm Füllhöhe die von mqtt-DP abgebildet wurden. Der Durchmesser meines berechneten Zylinders (ohne Dome) beträgt 93cm.
93cm * 2 = 186cm. Wenn ich nun ein Volumen berechen will, welches mehr als den doppelten Radius als Füllhöhe hat, wird es immer mit NaN enden.
@paul53 nochmal vielen Dank, das war wieder der richtig Tipp!