NEWS
[Vorlage] Gartenbewässerung mit 6 Ventilen
-
@dslraser die definition von vars_pfad war noch alt. habe ich jetzt überarbeitet.
denk zweiten punkt im java habe ich entfernt.
iwann sieht man seine eigenen fehler einfach nicht mehr ^^
danke dir
-
@Kuddel
den gibt es so nur bei Dir, oder ?
-
@dslraser ja genau,
in den DP schreiben alle Skripte -
@Kuddel
ich habe ja wie gesagt keine Variablen definiert (deaktiviert bei mir). Ich lese nur von Anfang an mit, weil ich auch eine Bewässerung habe, aber mit einem eigenen Blockly (Gardena Irrigation Control), daher verfolge ich Dein Blockly mit.Läuft es denn, so wie es jetzt ist, bei Dir, und sind die Fehler beim erstellen weg ? Ich denke jedenfalls, das es so etwas einfacher sein wird es ein zu richten, da Niemand mehr in der Funktion "rum fummeln" muß, oder ?
-
und noch kurz zum Thema Telegram (als Funktion)
Das ist so eine Funktion
Da steht nur das drinn
nachrichten_ausgabe_Fenster (das ist eine Variable, damit versende ich den Inhalt der Variablen)
user ist auch eine Variable
Das ist schon alles
-
@dslraser ich habe telegram jetzt wie folgt eingebaut:
sendTo("telegram", "send", { text: vars_notify_telegram_text, user: vars_notify_telegram_user, parse_mode: "html", });
Beispiel pause
Muss da noch ein Block unter den Text um die Telegram-Funktion zu starten?
-
@Kuddel
Du versendest ja die info.text , richtig ?
also so wie hieroder hier
Dann musste in der Funktion text: info.text, stehen
Ansonsten, wenn es so ist wie in Deinem Bild, dann müsstest Du den Funktions Block für Telegram in Dein mache setzen.
(wenn ich Dich richtig verstanden habe) -
@dslraser ich habe es jetzt so gemacht
sendTo("telegram", "send", { text: info_text, user: vars_notify_telegram_user, parse_mode: "html", });
Das heißt ja aber, dass die Telegram Nachricht immer verschickt wird oder ?
Wie muss die Prüfun aussehen im Java Block ?
EDIT:
oder funzt es so:
-
@Kuddel
ich wollte Dir gerade an meinem Beispiel schreiben....ich sammele die zu versendende Nachricht in einer Variable ein
z.B. so
und versende die dan z.B. so
-
@Kuddel sagte in [Vorlage] Gartenbewässerung mit 6 Ventilen:
Chris_71 bzgl. deines ersten Screenshots: stimmt, da war noch ein fehler. habe ich gefixt.
Fehler noch da!
Version: bewaesserung_v2.6.8_beta.txt.zipjavascript.0 2020-07-21 16:32:26.738 warn (13700) State "javascript.0.bewaesserung.letzte_startzeit" not found
-
@sigi234 danke, habe den fehler gerade gefunden
-
@dslraser der nächste versuch ^^:
sendTo("telegram", "send", { text: vars_notify_telegram_text, user: vars_notify_telegram_user, parse_mode: "html", });
-
@Kuddel
erstmal kannst Du die Funktion ja mal umbenennen (das _Fenster kann ja weg)Der normale Telegram Block sieht so aus:
Das ist die JS Ansicht von dem Block
also das was hinter text: blabla
ist die Nachricht.
(den Block stelle ich Dir gleich rein, ich bin am Handy)wenn Du keinen Empfänger angibst bekommen es alle die am BOT angemeldet sind, sonst nur der /die Empfänger
also so z.B.
JS
Das Gleiche kann/macht die Funktion
Das ist noch der Parsmode
-
@dslraser alles klar, dann habe ich es jetzt glaube ich begriffen
sendTo("telegram", "send", { text: vars_notify_telegram_text, user: vars_notify_telegram_user, parse_mode: "html", });
-
@Kuddel
Kann ich schon testen?
V 2.6.8 aktuell? -
-
@Kuddel Hui, hier ging heut ja richtig was Ich schaus mir morgen an - morgen frueh hab ich mal 2h keine Termine
-
@Kuddel sagte in [Vorlage] Gartenbewässerung mit 6 Ventilen:
@sigi234 klaro
bewaesserung_v2.6.8.
Test:
Anzahl Ventile habe ich auf 6 erhöht, Im DP steht noch immer 5
Fehler ist jetzt weg: State "javascript.0.bewaesserung.letzte_startzeit" not found
Beim aktivieren von Ventil 2 ist die Restzeit Falsch bzw, wird nicht gestartet.
-
zum Test von @sigi234
Test:
Anzahl Ventile habe ich auf 6 erhöht, Im DP steht noch immer 5
Dazu müßte man in der Funktion Datenpunkte_erstellen was verändern.
Ich habe Dir hier mal ein Beispiel eingebaut. Schau Dir einfach mal die Funktion Datenpunkte_erstellen an.
Dort habe ich die Anzahl der Ventile "ausgegliedert" und auf true gestellt, so wird der DP beim Neustart vom Blockly neu geschrieben. Das könntest Du auch mit den DP machen, die die Namen für die Kreise beinhalten. (ich weiß nur nicht ob der DP auch in den Objekten beschreibbar sein soll, oder nur zur Anzeige dient ? Wenn der auch von dort aus die Einstellungen verändern soll, dann muß das noch etwas anders gemacht werden. Wenn es nur eine "Anzeige" ist, wieviele Ventile da sind, dann würde ich den read only machen)
Unten in der Funktion habe ich Dir mal ein Beispiel (für die 6 Ventile) eingebaut, wie Du nicht benötigte DP wieder löschen kannst. Wird also im Blockly in den Haupteinstellungen die Anzahl der Ventile z.B. auf 4 eingestellt, dann werden Ventil 5 und 6 in den Objekten wieder gelöscht. Ich weiß nur nicht, ob Du noch einen anderen Bezug auf die Ventile im Blockly hast ?Datei ist nur für @Kuddel , da vieles deaktiviert ist.
bewaesserung_v2.6.8-test.txt.zipEDIT: übrigens....
(3984) You are assigning a number to the state "0_userdata.0.Bewaesserung.zeitplan.abends_verzoegerung_sonnenuntergang" which expects a string. Please fix your code to use a string or change the stat (3984) You are assigning a number to the state "0_userdata.0.Bewaesserung.zeitplan.morgens_verzoegerung_sonnenaufgang" which expects a string. Please fix your code to use a string or change the state
-
@sigi234 vielen Dank für den Test. Bei mir startet Ventil 2 ohne Problem.
@dslraser die beiden von dir angemerkte DPs habe ich korrigiert
ich habe deine Anpassung für die Ventil-Anzahl übernommen
//Diese DPs sollen bei jedem Speichern überschrieben werden let vars_writable = [ [basic_vars_pfad+'.ventile.anzahl_ventile', {'name':'anzahl_ventile','type':'number','read':true,'write':true,'role':'number','def':basic_vars_anzahl_ventile,'min':0, 'max':6} ], ] createUserStates(basic_vars_speicherort, true, vars_writable);
Die Namen wollte ich noch den Block integrieren, aber ich glaube nicht, dass das so funzt
//Diese DPs sollen bei jedem Speichern überschrieben werden let vars_writable = [ [basic_vars_pfad+'.ventile.anzahl_ventile', {'name':'anzahl_ventile','type':'number','read':true,'write':true,'role':'number','def':basic_vars_anzahl_ventile,'min':0, 'max':6} ], if(basic_vars_anzahl_ventile > 1) {[basic_vars_pfad+'.ventile.ventil_1.ventil_1_name', {'name':'ventil_1_name','type':'string','read':true,'write':true,'role':'string','def':basic_vars_kreis1_name}],} ] createUserStates(basic_vars_speicherort, true, vars_writable);