NEWS
Problem bei Blockly und Shelly
-
@paul53 Welchen Sinn hat die Abfrage, ob die Steckdose ein ist, bevor sie ausgeschaltet wird und andersrum? Dem js-controller ist es wurst, wenn der state mehrfach auf
falseodertruegesetzt wird. Mehr als AUS oder EIN gibt es nicht. ;-) -
@schmakus sagte: Dem js-controller ist es wurst, wenn der state mehrfach auf false gesetzt wird.
Dem js-controller schon, aber es wird unnötig gesendet, was andere zur gleichen Zeit gesendeten Telegramme stören kann.
-
@paul53 Kommt auf den jweiligen Adapter an. Die meisten Adapter verarbeiten oft nur ne Änderung eines Werts. Somit wird nix zusätzlich "gesendet".
-
@schmakus sagte: Die meisten Adapter verarbeiten oft nur ne Änderung eines Werts.
Sicher die meisten Adapter?
-
@ronnyempire nimm beim Trigger wurde geändert
warum machst du eine Verzögerung von 5 Minuten? absicht?Edit: hat aber @fa-bio schon gepostet^^
@maximal1981 Ich will damit verhindern, dass wenn sich mal eine Wolke vorbei schleicht und der Ertrag kurzfristig runter geht die Anlage nicht immer Aus/An springt, was ja nicht gut für die Lebensdauer der Pumpe ist.
-
@maximal1981 Ich will damit verhindern, dass wenn sich mal eine Wolke vorbei schleicht und der Ertrag kurzfristig runter geht die Anlage nicht immer Aus/An springt, was ja nicht gut für die Lebensdauer der Pumpe ist.
@ronnyempire dachte ich mir, wollte nur nachfragen. Da bist du eh bei @paul53 gut aufgehoben.
-
@ronnyempire sagte: Was mache ich falsch?
Vermutlich sind die Verzögerungen von 5 Minuten dafür gedacht, dass nicht bei jeder kleinen Wolkenlücke eingeschaltet bzw. bei jeder kleinen Wolke ausgeschaltet wird? Das funktioniert so nicht. Vorschlag:

@paul53 Vielen Dank für den Vorschlag. Kurze Rückfrage dazu. Die Limitierung auf vor 16:00Uhr gilt dem Einschalten. Ausschalten soll aber nach 16:00Uhr weiterhin möglich sein. Dies soll dazu dienen einen harten Cut zu machen, weil die Anlage bei den Schwankungen ab 16:00Uhr sonst wie bei den Wolken ständig ein und aus gehen würde. Wenn also nach 16:00Uhr die Anlage einmal aus geht, soll sie es bleiben. Ist das mit deinem Vorschlag so gemacht, ich lese das so (aber ich bin auch Anfänger), dass die Zeit 16:00Uhr für beide gilt.???
-
@paul53 Vielen Dank für den Vorschlag. Kurze Rückfrage dazu. Die Limitierung auf vor 16:00Uhr gilt dem Einschalten. Ausschalten soll aber nach 16:00Uhr weiterhin möglich sein. Dies soll dazu dienen einen harten Cut zu machen, weil die Anlage bei den Schwankungen ab 16:00Uhr sonst wie bei den Wolken ständig ein und aus gehen würde. Wenn also nach 16:00Uhr die Anlage einmal aus geht, soll sie es bleiben. Ist das mit deinem Vorschlag so gemacht, ich lese das so (aber ich bin auch Anfänger), dass die Zeit 16:00Uhr für beide gilt.???
@ronnyempire sagte in Problem bei Blockly und Shelly:
bei den Schwankungen ab 16:00Uhr
Die sind aber Jahrezeitabhängig.
Im Hochsommer kann das auch deutlich später noch sinnvoll sein. Und im Winter eben nicht.
Da wäre es möglicherweise besser, die "Elevation" zu bestimmen und damit zu arbeiten.
Oder aber über die Astrofunktion einen Zeitraum zwischen Sonnenauf und -untergang bestimmen.Code dazu:
const suncalc = require('suncalc'); createState('0_userdata.0.Astro.Elevation', 0, {type: 'number', unit: '°'}) createState('0_userdata.0.Astro.Azimut', 0, {type: 'number', unit: '°'}) schedule("0 0 * * *", async function () { setState('0_userdata.0.Astro.Sonnenaufgang', getAstroDate("sunrise").toLocaleTimeString('de-DE',{ hour12: false, hour:'2-digit', minute:'2-digit' }), true); setState('0_userdata.0.Astro.Sonnenuntergang', getAstroDate("sunset").toLocaleTimeString('de-DE',{ hour12: false, hour:'2-digit', minute:'2-digit' }), true); }); schedule("* * * * *", function () { var now = new Date(); var sunpos = suncalc.getPosition(now, 51, 6); var h = sunpos.altitude * 180 / Math.PI; var a = sunpos.azimuth * 180 / Math.PI + 180; setState("0_userdata.0.Astro.Elevation", Math.round(10 * h) / 10, true); setState("0_userdata.0.Astro.Azimut", Math.round(a), true); }); -
@ronnyempire sagte in Problem bei Blockly und Shelly:
bei den Schwankungen ab 16:00Uhr
Die sind aber Jahrezeitabhängig.
Im Hochsommer kann das auch deutlich später noch sinnvoll sein. Und im Winter eben nicht.
Da wäre es möglicherweise besser, die "Elevation" zu bestimmen und damit zu arbeiten.
Oder aber über die Astrofunktion einen Zeitraum zwischen Sonnenauf und -untergang bestimmen.Code dazu:
const suncalc = require('suncalc'); createState('0_userdata.0.Astro.Elevation', 0, {type: 'number', unit: '°'}) createState('0_userdata.0.Astro.Azimut', 0, {type: 'number', unit: '°'}) schedule("0 0 * * *", async function () { setState('0_userdata.0.Astro.Sonnenaufgang', getAstroDate("sunrise").toLocaleTimeString('de-DE',{ hour12: false, hour:'2-digit', minute:'2-digit' }), true); setState('0_userdata.0.Astro.Sonnenuntergang', getAstroDate("sunset").toLocaleTimeString('de-DE',{ hour12: false, hour:'2-digit', minute:'2-digit' }), true); }); schedule("* * * * *", function () { var now = new Date(); var sunpos = suncalc.getPosition(now, 51, 6); var h = sunpos.altitude * 180 / Math.PI; var a = sunpos.azimuth * 180 / Math.PI + 180; setState("0_userdata.0.Astro.Elevation", Math.round(10 * h) / 10, true); setState("0_userdata.0.Astro.Azimut", Math.round(a), true); });@codierknecht Das ist nicht das Problem, der Pool steht nur von Mai bis September. Und was die Uhrzeit angeht, die ist noch nicht fix, ich muss beobachten bis wann das sinnvoll ist und würde das dann anpassen.
-
@paul53 Vielen Dank für den Vorschlag. Kurze Rückfrage dazu. Die Limitierung auf vor 16:00Uhr gilt dem Einschalten. Ausschalten soll aber nach 16:00Uhr weiterhin möglich sein. Dies soll dazu dienen einen harten Cut zu machen, weil die Anlage bei den Schwankungen ab 16:00Uhr sonst wie bei den Wolken ständig ein und aus gehen würde. Wenn also nach 16:00Uhr die Anlage einmal aus geht, soll sie es bleiben. Ist das mit deinem Vorschlag so gemacht, ich lese das so (aber ich bin auch Anfänger), dass die Zeit 16:00Uhr für beide gilt.???
@ronnyempire sagte: Ausschalten soll aber nach 16:00Uhr weiterhin möglich sein.
Bei meinem Vorschlag oben wird kurz nach 16:00 Uhr ausgeschaltet.
Soll nach 16:00 Uhr nur ein Wiedereinschalten verhindert werden, dann kann es so aussehen:
-
@ronnyempire sagte: Ausschalten soll aber nach 16:00Uhr weiterhin möglich sein.
Bei meinem Vorschlag oben wird kurz nach 16:00 Uhr ausgeschaltet.
Soll nach 16:00 Uhr nur ein Wiedereinschalten verhindert werden, dann kann es so aussehen:
@Ronnyempire @paul53
Nur so als Idee, um die Sonnenscheindauer besser auszunutzen:

-
@Ronnyempire @paul53
Nur so als Idee, um die Sonnenscheindauer besser auszunutzen:

@codierknecht isDayTime gibt es als Systemdatenpunkt.
muss ur irgendwo konfiguriert werden -
@Ronnyempire @paul53
Nur so als Idee, um die Sonnenscheindauer besser auszunutzen:

@codierknecht Leider kann ich mich nicht so von der Sonnenuntergangszeit orientieren, da wir ganz am Ende des Tages sehr viele Bäume im Weg haben.
-
@codierknecht isDayTime gibt es als Systemdatenpunkt.
muss ur irgendwo konfiguriert werden@homoran
OK, ungünstig gewählter Name für die Variable.
Sollte ggf. anders benannt werden, da die Sytemvariable ja nur angibt ob gerade Tag oder Nacht ist. Das muss ja nicht mit der idealen Zeit bzgl. Sonnenschein korrelieren.
AlsoisSunshineo.ä. ... kann auchKurtoderHorstheißen - Namen sind Schall und Rauch :grin: -
@codierknecht Leider kann ich mich nicht so von der Sonnenuntergangszeit orientieren, da wir ganz am Ende des Tages sehr viele Bäume im Weg haben.
@ronnyempire sagte in Problem bei Blockly und Shelly:
da wir ganz am Ende des Tages sehr viele Bäume im Weg haben
Ließe sich über den Offset regeln.
Oder eben die "große Lösung" über die Elevation. -
@codierknecht isDayTime gibt es als Systemdatenpunkt.
muss ur irgendwo konfiguriert werden@homoran sagte in Problem bei Blockly und Shelly:
@codierknecht isDayTime gibt es als Systemdatenpunkt.
muss ur irgendwo konfiguriert werdenIn den Instanzeinstellungen des Javascript Adapters kann es konfiguriert werden. Der Datenpunkt ist dann unter javascript.x verfügbar.
-
@ronnyempire sagte in Problem bei Blockly und Shelly:
da wir ganz am Ende des Tages sehr viele Bäume im Weg haben
Ließe sich über den Offset regeln.
Oder eben die "große Lösung" über die Elevation.@codierknecht Vielen dank allen für die Wunderbaren Ideen und Vorschläge. Ich möchte das ganze erstmal nur so einfach wie möglich halten, damit ich es auch verstehen kann. Ist ja mein erstes Projekt :)
-
@ronnyempire sagte: Ausschalten soll aber nach 16:00Uhr weiterhin möglich sein.
Bei meinem Vorschlag oben wird kurz nach 16:00 Uhr ausgeschaltet.
Soll nach 16:00 Uhr nur ein Wiedereinschalten verhindert werden, dann kann es so aussehen:
@paul53 Ich habe das ganze jetzt einmal nachgebaut. Testweise habe ich, da heute keine Einspeisung und sich der Wert von 0 nicht ändert, den Trigger auf aktualisieren gesetzt. Ebenso um zu testen die Delay auf Sekunden. Dann habe ich den Shelly manuell eingeschaltet. Jedoch schaltet er sich nicht aus. Wodran kann es liegen ?

-
@paul53 Ich habe das ganze jetzt einmal nachgebaut. Testweise habe ich, da heute keine Einspeisung und sich der Wert von 0 nicht ändert, den Trigger auf aktualisieren gesetzt. Ebenso um zu testen die Delay auf Sekunden. Dann habe ich den Shelly manuell eingeschaltet. Jedoch schaltet er sich nicht aus. Wodran kann es liegen ?

@ronnyempire sagte: Wodran kann es liegen ?
Die Vergleiche sind falsch herum.
Unten mussdelayoffals Sperre verwendet werden. -
@ronnyempire sagte: Wodran kann es liegen ?
Die Vergleiche sind falsch herum.
Unten mussdelayoffals Sperre verwendet werden.@paul53 Sorry, ich hatte ein bischen rumgespielt und den falschen Screenshot verwendet. Dies ist der aktuelle, es passiert aber weiterhin nichts.
