NEWS
Heizungssteuerung
-
kann man da evtl noch eine if abfrage mit einbauen zb wenn schalter bereits ein dann nichts machen.. wenn schalter aus dann einschalten `
Kann man.const idAktor = "fhem.0.HA_Heizung_Schalter.state"; var cacheVentile = $('state(functions=heizungsventile)'); var aktor = getState(idAktor).val; function therme() { var highest = 0; cacheVentile.each(function(id) { if (getState(id).val > highest) { highest = getState(id).val; } }); if (highest <= 30 && aktor) { setState(idAktor, false); } if (highest >= 40 && !aktor) { setState(idAktor, true); } } therme(); // Skriptstart cacheVentile.on(therme); on({id: idAktor, ack: true}, function(dp) { aktor = dp.state.val; });
-
Vielen Dank für den super duper Support
Sorry für die späte Rückmeldung. Funktioniert super
Habe jetzt in der Zwischenzeit an meiner Fhem Installation etwas gebastelt und iobroker hinten angestellt.
Ist es auch möglich statt der Abfrage der Ventilstellung die Temperatur herzunehmen .
Also zb so
Alle ist Temperaturen wieder in eine Aufzählung.
und dann eine Abfrage
Soll Temperatur (Ist Temperatur + 0,5 Grad) = Therme ausschalten
Soll Temperatur (Ist Temperatur - 0,5 Grad) = Therme einschalten
Also zb Soll Temperatur = 22,5 Grad
Ist Temperatur ist 23 Grad also Therme ausschalten
Ist Temperatur ist 22 Grad als Therme einschalten
Vielen Dank für Eure Hilfe vorab
Will jetzt demnächst wenn ich alle meine Befehle von Fhem zu Iobroker portieren konnte auf Iobroker komplett umsteigen
(Nach der Heizperiode )
lg
Chris
-
Klar, höchste ist Temperatur feststellen, mit höchster soll Temperatur vergleichen…
Gruß
-
Bin nun endlich dabei von Fhem auf Iobroker umzusteigen
Habe nun dieses Script im Einsatz wie oben beschrieben
const idAktor = "sonoff.0.DVES_12A646.POWER1"; var cacheVentile = $('state(functions=heizungsventile)'); var aktor = getState(idAktor).val; function therme() { var highest = 0; cacheVentile.each(function(id) { if (getState(id).val > highest) { highest = getState(id).val; } }); if (highest <= 30 && aktor) { setState(idAktor, false); } if (highest >= 60 && !aktor) { setState(idAktor, true); } } therme(); // Skriptstart cacheVentile.on(therme); on({id: idAktor, ack: true}, function(dp) { aktor = dp.state.val; });
Ansich sollte der Schalter erst unter 30 Prozentt Ventilöffnung ausschalten
Er schaltet aber bereits früher ab. Soeben waren noch 2 Thermostet über 30% Ventilöffnung und das Script hat den Schalter aber ausgeschaltenJemand eine Idee warum dem so ist
besten Dank
lg
Chris -
@nolimitek
Der Selektor ist richtig ?
Kann getestet werden mit$('state(functions=heizungsventile)').each(function(id, i) { log(id); });
-
-
-
Da kommt dann im Log folgendes.
Das Script hat doch mit den anderen Blocklys gar nichts zu tun . ???javascript.0 2020-12-30 20:12:44.573 info (5874) script.js.Heizung.Pumpeheizung: registered 10 subscriptions and 0 schedules javascript.0 2020-12-30 20:12:44.571 info (5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Wohnzimmer.valveposition javascript.0 2020-12-30 20:12:44.571 info (5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Wintergarten.valveposition javascript.0 2020-12-30 20:12:44.570 info (5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Vorraum.valveposition javascript.0 2020-12-30 20:12:44.570 info (5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Kueche.valveposition javascript.0 2020-12-30 20:12:44.570 info (5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Kinderzimmer.valveposition javascript.0 2020-12-30 20:12:44.569 info (5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Gaestezimmer.valveposition javascript.0 2020-12-30 20:12:44.569 info (5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Esszimmer.valveposition javascript.0 2020-12-30 20:12:44.566 info (5874) script.js.Heizung.Pumpeheizung: fhem.0.01_Thermostat_Buegelzimmer.valveposition javascript.0 2020-12-30 20:12:44.526 info (5874) Start javascript script.js.Heizung.Pumpeheizung javascript.0 2020-12-30 20:12:44.525 info (5874) script.js.Heizung.WCOBEN_Heizung: registered 10 subscriptions and 0 schedules javascript.0 2020-12-30 20:12:44.524 info (5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Wohnzimmer.valveposition javascript.0 2020-12-30 20:12:44.524 info (5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Wintergarten.valveposition javascript.0 2020-12-30 20:12:44.523 info (5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Vorraum.valveposition javascript.0 2020-12-30 20:12:44.523 info (5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Kueche.valveposition javascript.0 2020-12-30 20:12:44.523 info (5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Kinderzimmer.valveposition javascript.0 2020-12-30 20:12:44.523 info (5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Gaestezimmer.valveposition javascript.0 2020-12-30 20:12:44.523 info (5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Esszimmer.valveposition javascript.0 2020-12-30 20:12:44.522 info (5874) script.js.Heizung.WCOBEN_Heizung: fhem.0.01_Thermostat_Buegelzimmer.valveposition javascript.0 2020-12-30 20:12:44.508 info (5874) Start javascript script.js.Heizung.WCOBEN_Heizung javascript.0 2020-12-30 20:12:44.507 info (5874) script.js.Heizung.Badezimmer_heizung: registered 10 subscriptions and 0 schedules javascript.0 2020-12-30 20:12:44.506 info (5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Wohnzimmer.valveposition javascript.0 2020-12-30 20:12:44.505 info (5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Wintergarten.valveposition javascript.0 2020-12-30 20:12:44.505 info (5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Vorraum.valveposition javascript.0 2020-12-30 20:12:44.505 info (5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Kueche.valveposition javascript.0 2020-12-30 20:12:44.504 info (5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Kinderzimmer.valveposition javascript.0 2020-12-30 20:12:44.504 info (5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Gaestezimmer.valveposition javascript.0 2020-12-30 20:12:44.503 info (5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Esszimmer.valveposition javascript.0 2020-12-30 20:12:44.503 info (5874) script.js.Heizung.Badezimmer_heizung: fhem.0.01_Thermostat_Buegelzimmer.valveposition javascript.0 2020-12-30 20:12:44.480 info (5874) Start javascript script.js.Heizung.Badezimmer_heizung javascript.0 2020-12-30 20:12:44.479 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht1: registered 9 subscriptions and 2 schedules javascript.0 2020-12-30 20:12:44.474 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Wohnzimmer.valveposition javascript.0 2020-12-30 20:12:44.474 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Wintergarten.valveposition javascript.0 2020-12-30 20:12:44.473 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Vorraum.valveposition javascript.0 2020-12-30 20:12:44.473 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Kueche.valveposition javascript.0 2020-12-30 20:12:44.472 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Kinderzimmer.valveposition javascript.0 2020-12-30 20:12:44.472 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Gaestezimmer.valveposition javascript.0 2020-12-30 20:12:44.471 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Esszimmer.valveposition javascript.0 2020-12-30 20:12:44.471 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht1: fhem.0.01_Thermostat_Buegelzimmer.valveposition javascript.0 2020-12-30 20:12:44.453 info (5874) Start javascript script.js.Zeitschaltuhren.Aquarium_Licht1 javascript.0 2020-12-30 20:12:44.452 info (5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: registered 9 subscriptions and 2 schedules javascript.0 2020-12-30 20:12:44.444 info (5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Wohnzimmer.valveposition javascript.0 2020-12-30 20:12:44.444 info (5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Wintergarten.valveposition javascript.0 2020-12-30 20:12:44.443 info (5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Vorraum.valveposition javascript.0 2020-12-30 20:12:44.443 info (5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Kueche.valveposition javascript.0 2020-12-30 20:12:44.443 info (5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Kinderzimmer.valveposition javascript.0 2020-12-30 20:12:44.442 info (5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Gaestezimmer.valveposition javascript.0 2020-12-30 20:12:44.442 info (5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Esszimmer.valveposition javascript.0 2020-12-30 20:12:44.441 info (5874) script.js.Zeitschaltuhren.Solar_aus_Nacht: fhem.0.01_Thermostat_Buegelzimmer.valveposition javascript.0 2020-12-30 20:12:44.413 info (5874) Start javascript script.js.Zeitschaltuhren.Solar_aus_Nacht javascript.0 2020-12-30 20:12:44.406 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht: registered 9 subscriptions and 2 schedules javascript.0 2020-12-30 20:12:44.377 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Wohnzimmer.valveposition javascript.0 2020-12-30 20:12:44.377 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Wintergarten.valveposition javascript.0 2020-12-30 20:12:44.376 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Vorraum.valveposition javascript.0 2020-12-30 20:12:44.376 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Kueche.valveposition javascript.0 2020-12-30 20:12:44.375 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Kinderzimmer.valveposition javascript.0 2020-12-30 20:12:44.375 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Gaestezimmer.valveposition javascript.0 2020-12-30 20:12:44.374 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Esszimmer.valveposition javascript.0 2020-12-30 20:12:44.374 info (5874) script.js.Zeitschaltuhren.Aquarium_Licht: fhem.0.01_Thermostat_Buegelzimmer.valveposition
-
@nolimitek sagte:
Da kommt dann im Log folgendes.
Das scheint zu passen (8 mal valveposition).
FHEM: Ich glaube, der Adapter liefert Strings, die in eine Zahl gewandelt werden müssen.if (parseFloat(getState(id).val) > highest) { highest = parseFloat(getState(id).val); }
-
Ahhh das wirds sein . Hatte das bereits bei einem anderen Script das ich in Blockly gemacht habe. Da musste auch in Zahl geändert werden.
Ich teste das mal . Besten Dank für deine Hilfe.
Wenn ich den Fhem Adapter deaktiviere und die Heizungsthermostate direkt in iobroker anlege (letzte Baustelle) kann ich das Script so weiterlaufen lassen oder wieder retour stellen ?Danke
lg
Chris -
@nolimitek sagte:
kann ich das Script so weiterlaufen lassen oder wieder retour stellen ?
parseFloat() funktioniert auch mit Zahlen, verbraucht nur unnötig Ressourcen.
-
@paul53 Alles klar dann stelle ich es wieder zurück sobald die Thermostate direkt in Iobroker sind.
Eine letzte Frage hätte ich noch
Ich möchte das Script vormittags von 05:00 bis 06:00 deaktivieren und für diese Stunde die Heizung einschalten da ich das Warmwasser aufheizen möchte.Einfach über ein Blockly deaktivieren oder ginge das im Script direkt
Danke
lg
Chris -
@nolimitek sagte:
ginge das im Script direkt
Ich würde es auf jeden Fall im Script machen.
var warmwasser = compareTime('05:00', '06:00', 'between'); function therme() { if(warmwasser) setState(idAktor, true); else { // bisherige Funktion
und am Ende des Scripts
schedule('0 5 * * *', function() { warmwasser = true; therme(); }); schedule('0 6 * * *', function() { warmwasser = false; therme(); });