NEWS
[GELÖST] Einfaches Skript Trockner
-
Hi zusammen,
habt ihr einen einfachen Vorschlag für ein Blockly welches mit einem Sonoff Pow und Pushover eine Benachrichtigung sendet sobald der Trockner fertig ist?
Im Forum hab ich schon gesucht aber die gefundenen Skripte scheinen mir zu kompliziert.
Danke für eure Vorschläge oder Hinweise.
Gruß
Stefan
-
die gefundenen Skripte scheinen mir zu kompliziert. `
Das ist leider dem Stromverbrauch der modernen Trockner geschuldet.Hast du mal einen Trocknerverlauf geloggt, wie bei dir der Leistungsverlauf aussieht?
Gruß
Rainer
-
Ne hab ich nicht. Ich weiß auch gerade nicht ob das über Sonoff mit Tasmota geht. Aber letztlich müsste man doch sagen können : wenn current wert unter X für 5 Minuten dann schicke Nachricht, fertig.
Gesendet von meinem MI 5s mit Tapatalk
-
fertig `
und damit wird es schon wieder komplizierter.Timer starten, timer abbrechen, wenn doch wieder über dem Wert…..
Ich weiß auch gerade nicht ob das über Sonoff mit Tasmota geht. `
Wenn du einen current Wert bekommst den du als Trigger nutzen willst, musst du den auch loggen können.Gruß
Rainer
-
Hm. Hat jemand ein Beispiel Skript? Dann baue ich das mal um.
Gesendet von meinem MI 5s mit Tapatalk
-
Hm. Hat jemand ein Beispiel Skript? Dann baue ich das mal um. `
Die hast Du doch gefunden und waren zu kompliziert. -
Hm. Hat jemand ein Beispiel Skript? Dann baue ich das mal um.
Die hast Du doch gefunden und waren zu kompliziert.
Ach ja…. Und das hilft jetzt bei welcher Lösung nochmal?...Gesendet von meinem MI 5s mit Tapatalk
-
Hm. Hat jemand ein Beispiel Skript? Dann baue ich das mal um.
Die hast Du doch gefunden und waren zu kompliziert.
Ach ja…. Und das hilft jetzt bei welcher Lösung nochmal?... `
Sollen wir jetzt speziell für Dich ein "einfaches" Beispiel erarbeiten, dass Du dann umbauen kannst? :roll:Ein wenig viel verlangt, oder?
Grüße
-
Solange wir nicht auch nur annähernd wissen wie dein Trockner "tickt" ergibt das ganze eh keinen Sinn.
Bitte logge daher mindestens eine Trocknung und stelle hier den Graphen dazu ein.
Gruß
Rainer
-
Also das ist meins fuer die Waschmaschine, was du ja sicherlich auch schon gefunden hast in den anderen Threads.
Ist dir das schon zu kompliziert?
Da faellt mir ein ich wollte immernochmal dieses Previousstatezeugs angucken, aber das ist n anderes Thema
3803_firefox_2018-02-09_11-32-14.png -
Also das ist meins fuer die Waschmaschine, was du ja sicherlich auch schon gefunden hast in den anderen Threads.
Ist dir das schon zu kompliziert?
Da faellt mir ein ich wollte immernochmal dieses Previousstatezeugs angucken, aber das ist n anderes Thema ` Danke. Kannst das mal exportieren und einstellen? Ich importiere es mal und guck mal. Vielen Dank. Gruß
Gesendet von meinem MI 5s mit Tapatalk
-
Die paar Bausteine bekommst du ja schneller nachgebaut als importiert, die Objekte musst du ja sowieso anpassen.
Bin gespannt ob es bei dir auch seinen Dienst verrichtet.
-
Also das ist meins fuer die Waschmaschine `
In Javascript kann man dieses Skript sehr einfach realisieren:const idPower = 'hm-rpc.0...POWER'; const idUse = 'javascript.0.WMinBetrieb'; on(idPower, function(dp) { if(dp.state.val > 2) setState(idUse, true, true); else if(dp.oldState.val > 2) { sendTo('pushover', { message: 'Waschmaschine fertig', title: 'Meldung Waschmaschine' }); setState(idUse, false, true); } });
-
on(idPower, function(dp) {
if(dp.state.val > 2) setState(idUse, true, true);
else if(dp.oldState.val > 2) { <–-------------------------Ist das richtig?
sendTo('pushover', {
message: 'Waschmaschine fertig',
title: 'Meldung Waschmaschine'
});
setState(idUse, false, true);
}
}); `
Grüße
-
Also das ist meins fuer die Waschmaschine, was du ja sicherlich auch schon gefunden hast in den anderen Threads.
Ist dir das schon zu kompliziert?
Da faellt mir ein ich wollte immernochmal dieses Previousstatezeugs angucken, aber das ist n anderes Thema `
In dem ersten "Falls" Block setzt Du "Setze Waschmaschine_fertig auf …." Wo kommt denn "Waschmaschine_fertig" her oder was ist das?
Ebenso Object "inUse". Wo kommt das her bzw. wo legst Du das Objekt an?
Gruß
Stefan
-
else if(dp.oldState.val > 2) { <–-------------------------Ist das richtig? `
Ja, es soll nur <u>einmal</u> gesendet werden, wenn die WM (der Trockner) lief (oldState.val > Grenzwert) und jetzt nicht mehr läuft. Eine Grenzwertunterschreitung bedeutet nicht zwangsläufig, dass der Wert unterhalb des Grenzwertes konstant bleibt. Die Abfrage hat die gleiche Wirkung wie die Skriptvariable Waschmaschine_fertig in dem Blockly Script.
@Gerni:Ebenso Object "inUse". Wo kommt das her bzw. wo legst Du das Objekt an? `
Den Datenpunkt (Typ: Logikwert) kannst Du im Reiter "Objekte" unter javascript.0 anlegen. Wenn Du ihn nicht benötigst (nur das Pushover), dann kannst Du die Deklaration der ID und die setStates() löschen.Script ohne Datenpunkt (nur Pushover):
const idPower = 'hm-rpc.0...POWER'; on(idPower, function(dp) { if(dp.state.val <= 2 && dp.oldState.val > 2) { sendTo('pushover', { message: 'Waschmaschine fertig', title: 'Meldung Waschmaschine' }); } });
-
Ja, es soll nur <u>einmal</u> gesendet werden, wenn die WM (der Trockner) lief (oldState.val > Grenzwert) und jetzt nicht mehr läuft. Eine Grenzwertunterschreitung bedeutet nicht zwangsläufig, dass der Wert unterhalb des Grenzwertes konstant bleibt. Die Abfrage hat die gleiche Wirkung wie die `
Ja genau. Hast Du Dir schon mal den Verlauf solcher Werte von einer WM oder TR angeschaut?Ich bin auf jeden Fall gespannt
Grüße
-
Ebenso Object "inUse". Wo kommt das her bzw. wo legst Du das Objekt an?
Den Datenpunkt (Typ: Logikwert) kannst Du im Reiter "Objekte" unter javascript.0 anlegen. Wenn Du ihn nicht benötigst (nur das Pushover), dann kannst Du die Deklaration der ID und die __setStates()__ löschen.
Ja, der ist nicht noetig, den habe ich nur eingefuegt damit ich mal was in Vis abbilden kann. Vis ist allerdings bei mir so ein "demnaechst"-Projekt…
Und klar kann man das in Javascript einfach machen, wenn man JS kann. Aber dafuer gibt es ja Blockly, womit man sich allerdings auch gut JS-Vorlagen basteln kann indem man sich den Code anzeigen laesst.
-
else if(dp.oldState.val > 2) { <–-------------------------Ist das richtig? `
Ja, es soll nur <u>einmal</u> gesendet werden, wenn die WM (der Trockner) lief (oldState.val > Grenzwert) und jetzt nicht mehr läuft. Eine Grenzwertunterschreitung bedeutet nicht zwangsläufig, dass der Wert unterhalb des Grenzwertes konstant bleibt. Die Abfrage hat die gleiche Wirkung wie die Skriptvariable Waschmaschine_fertig in dem Blockly Script.
@Gerni:Ebenso Object "inUse". Wo kommt das her bzw. wo legst Du das Objekt an? `
Den Datenpunkt (Typ: Logikwert) kannst Du im Reiter "Objekte" unter javascript.0 anlegen. Wenn Du ihn nicht benötigst (nur das Pushover), dann kannst Du die Deklaration der ID und die setStates() löschen.Script ohne Datenpunkt (nur Pushover):
const idPower = 'hm-rpc.0...POWER'; on(idPower, function(dp) { if(dp.state.val <= 2 && dp.oldState.val > 2) { sendTo('pushover', { message: 'Waschmaschine fertig', title: 'Meldung Waschmaschine' }); } }); ```` ` Das ist jetzt ein Java Script, richtig? Ich bin ja schon froh wenn ich im Blockly alles so finde :-D
Aber ja, es reicht wenn EINE Nachricht kommt. Wäre das hier nicht so, dass unzählige Nachrichten kommen weil der Verbrauch ja länger unter Wert X bleibt?
Gesendet von meinem MI 5s mit Tapatalk
-
> Wäre das hier nicht so, dass unzählige Nachrichten kommen weil der Verbrauch ja länger unter Wert X bleibt?
Nein.
Das Skript triggerd bei Wertänderung und prüft dann, ob der neue Wert unter bzw gleich 2 ist und der alte Wert über 2.
Also muss sich 1. was ändern und 2. auch noch die obige Bedingung erfüllt sein. Solange sich Werte unterhalb von 2 ändern passiert nichts. Wenn es von <=2 auf >2 geht passiert auch nichts sondern erst, wenn es (wieder) von >2 auf <=2 geht