Skip to content

Blockly

Hilfe für Skripterstellung mit Blockly

6.5k Themen 79.4k Beiträge

NEWS

  • Pylontech/Victron Ladeleistung begrenzen - delay?

    11
    1
    0 Stimmen
    11 Beiträge
    904 Aufrufe
    HomoranH
    @falkomfs sagte in Pylontech/Victron Ladeleistung begrenzen - delay?: über 95% SOC durchgeführt, somit benötigen die auch mal voll. das erwartet auch der batter-life Algorithmus
  • Fehlermeldung beim ansteuern der Torsteuerung

    25
    0 Stimmen
    25 Beiträge
    2k Aufrufe
    B
    Hab nicht so angetastet wie du gesagt hast. jetzt läufst perfekt !! Vielen Dank für das Skript und die Hilfe. Ich bin so glücklich !!
  • Schalten nur wenn es dunkel wird.

    50
    1
    0 Stimmen
    50 Beiträge
    4k Aufrufe
    HomoranH
    @beowolf sagte in Schalten nur wenn es dunkel wird.: Das ist der Datenpunkt vom WLED Adapter für die Helligkeit. der die Helligkeit steuert
  • setStateChanged für Blockly

    1
    0 Stimmen
    1 Beiträge
    164 Aufrufe
    Niemand hat geantwortet
  • Brauche Hilfe bei Wert in Blockly (umwandeln)

    24
    2
    0 Stimmen
    24 Beiträge
    2k Aufrufe
    HomoranH
    @icebear sagte in Brauche Hilfe bei Wert in Blockly (umwandeln): wie siehts jetzt aus ? deine Zeitpläne mit Wizard könnten buggy sein. nutze besser einen einfachen Cron
  • Gas- und Stromverbrauch pro Monat in Objekt schreiben

    3
    3
    0 Stimmen
    3 Beiträge
    253 Aufrufe
    S
    @crunchip Super, werde ich mal ausprobieren! Danke!
  • Sendto Email als HTML zeigt kein Bild an

    6
    1
    0 Stimmen
    6 Beiträge
    390 Aufrufe
    MartinPM
    @solardach Bei "Dateiname" die URL der Datei angeben - aber das habe ich noch nicht als HTML probiert ... [image: 1725635914032-2455f423-1c40-4c3e-ab7b-2bbc8cefc79f-grafik.png]
  • Blockly Script Türwächter

    17
    1
    0 Stimmen
    17 Beiträge
    1k Aufrufe
    CodierknechtC
    @asgothian sagte in Blockly Script Türwächter: Manchmal will man gezielt bestimmte whitespace chars vor oder hinter einem Text haben und auch darauf prüfen Prinzipiell gebe ich Dir Recht. Dürfte allerdings ziemlich selten und hier nicht gefragt sein. @Orpheus1977 Interessant wäre mal zu sehen, wie das HTML der Seite aussieht und wie das mit dem Parser ausgelesen wird.
  • Wert bei Differenz aktualisieren

    4
    1
    0 Stimmen
    4 Beiträge
    349 Aufrufe
    M
    @paul53 said in Wert bei Differenz aktualisieren: @mpl1338 sagte: funktioniert das absolut nicht Vorschlag: [image: 1725395606982-blockly_temp.jpg] EDIT: Messwert durch 66 auf eine Nachkommastelle gerundet: [image: 1725397194625-blockly_temp.jpg] Vielen dank! Funktioniert :)
  • Raum Zuteilung und Auswertung ist [object Object]

    7
    0 Stimmen
    7 Beiträge
    254 Aufrufe
    S
    @paul53 said in Raum Zuteilung und Auswertung ist [object Object]: const obj = getObject(ObjectID, 'rooms'); let room = obj.enumNames[0]; if(typeof room == 'object') room = room.de; return obj.common.name + "<br><span class='opaque'>" + room + "</span>"; Vielen lieben Dank Paul.
  • Zeitplan auf Datenpunkt beziehen

    11
    1
    0 Stimmen
    11 Beiträge
    1k Aufrufe
    AsgothianA
    @hausbaer sagte in Zeitplan auf Datenpunkt beziehen: Vielen Dank, funktioniert. Ich lasse über einen Datenpunkt jeden Tag nachts die entsprechenden Zeiten schreiben. Diese triggere ich dann mit "Zeitplan aus Zeitzustand" Warum so kompliziert ? Wenn du sowieso jeden Tag alle 7 Datenpunkte neu schreiben lässt, dann sollte es kein problem sein einen eigenen Datenpunkt für "Ausfuehrung heute" zu erzeugen und da immer die Zeit rein zu schreiben die am aktuellen Tag gilt. Dann kannst du dir das Zusammenbauen des Quell-Datenpunkt-Namens sparen - es wird immer "Ausfuehrung heute" genutzt. bei Skript-Start einfach den Schedule basierend auf "Ausfuehrung heute" aktivieren statt des Zeitplans zum neu setzen des Cron einen Trigger auf "Ausfuehrung heute", wurde geändert nutzen. Neu schreiben musst du den Zeitplan ja nur wenn die Uhrzeit auch geändert wurde. Nebenbei - was machst du wenn Müll in deiner Zeit drin steht ? Dann stürzt dein Skript ggf. ab.
  • Löschen temp. Variablen mit aktuellem JS-Adapter?

    Ungelöst
    9
    0 Stimmen
    9 Beiträge
    515 Aufrufe
    paul53P
    @siggi0904 sagte: Also müssen alle temp. Variablen außerhalb des Triggers initialisiert werden Blockly deklariert alle selbst erstellten Variablen und alle Timer-Variablen global im Skript (1. Zeile im erzeugten Javascript-Code).
  • Nuki tür schliessung

    5
    0 Stimmen
    5 Beiträge
    190 Aufrufe
    Dr. BakteriusD
    @patrick-5 Ich würde einen Trigger auf den Datenpunkt für State des Nuki 1 setzen. Dann folgendes: FALLS WERT = Wert des DP für verschlossen UND Aktuelle Zeit ist NICHT ZWISCHEN 7:00 und 22:00 STEUERE DP Nuki 2 mit Wert für versperren STEUERE DP Nuki 3 mit Wert für versperren
  • Gesamtlaufzeit trotz Unterbrechung berechnen

    6
    4
    0 Stimmen
    6 Beiträge
    259 Aufrufe
    HomoranH
    @paul53 So! heute morgen war es soweit! Die geschriebenen Werte beider Skripte passen [image: 1725346715220-screenshot_20240903-082728_firefox.jpg] Die Meldungen im log jedoch nicht wirklich. [image: 1725346806372-screenshot_20240903-082826_firefox.jpg] War aber mein Fehler in meinem Skript [image: 1725346797709-screenshot_20240903-083427_firefox.jpg] Habe ich den counter genullt bevor ich ihn ausgelesen hatte und in deinem Skript [image: 1725346893610-screenshot_20240903-083829_firefox.jpg] habe ich beide debug-Ausgaben falsch gehabt Statt Startzeit war die Sperrvariable, und die Formatierung der Dauer war anscheinend unnötig. hier noch der zugehörige Chart [image: 1725347100909-screenshot_20240903-090420_firefox.jpg]
  • In regelmäßigen Abständen type eines DP ändern

    32
    1
    0 Stimmen
    32 Beiträge
    3k Aufrufe
    D
    @peterfido danke ... hab gestern das Script mal getestet und den mqtt Adapter neugestartet... und das Script hat den DP sofort in String gewandelt :+1:
  • JS-Funktion für influxDB2 ohne "await wait(xxxx)" möglich?

    3
    1
    0 Stimmen
    3 Beiträge
    476 Aufrufe
    S
    so, nächstes Problem. Das Script funktioniert, jedoch stürzt der Javascript Adapter bei Fehlern ab. Ich wollte es nun in ein try / catch verpacken. Der Adapter stürzt jetzt zwar nicht mehr ab, aber der Fehler wird bei catch nicht sauber in der Konsole ausgegeben. Wo liegt mein Fehler? try { return new Promise((resolve, reject) => { let Ergebnis = 0 let settings = [ 'import "timezone"', 'import "date"', 'option location = timezone.location(name: "Europe/Berlin")', 'from(bucket: "'+Bucket+'")', '|> range(start: -'+Start+')', '|> filter(fn: (r) => r["_measurement"] == "'+Datenpunkt+'")', '|> filter(fn: (r) => r["_field"] == "value")', '|> aggregateWindow(every: '+Aggregation+', fn: '+fn+', createEmpty: false) ', ].join(''); sendTo('influxdb.0', 'query', settings, function (query) { Ergebnis = query.result[0].map(elm => ({ t: (elm.ts !== null && elm.ts !== undefined) ? elm.ts : null, y: (elm._value !== null && elm._value !== undefined) ? elm._value : null })) resolve(Ergebnis) }) }) } catch (error) { console.warn(error) }
  • [gel.]Blockly: E-Mail-Anhang Dateiname änd. v. Anhängen

    14
    1
    0 Stimmen
    14 Beiträge
    301 Aufrufe
    BananaJoeB
    @martinp sagte in [gel.]Blockly: E-Mail-Anhang Dateiname änd. v. Anhängen: @haus-automatisierung Dann wird es aber sicherlich Zeit, mit der Aufgabe von Blockly nach Javascript zu wechseln ;-) nichts gegen Blockly, ich liebe es für die schnelle Nummer zwischendurch. Bei Bedarf kann man ja umwandeln. Bei importierten Zertifikat ginge es ja direkt in Blockly. Aber, Vorsicht Falle! Blos weil man ein Zertifikat importiert, bedeutet es nicht das man diesem vertraut. Denn im Zertifikat müsste dann ein passender DNS-Name stehen und der Aufruf müsste über den Namen erfolgen. Über IP im Zertifikat und Aufruf geht es meist auch (auch wenn das nicht richtig ist). Das Zertifikat auf meinen Reolinks nutzt gar nichts: [image: 1725207121532-833a8304-72f2-4678-b89e-cb95dd907138-image.png] Neuere haben da angeblich einen Menüpunkt für das Hochladen eines eigenen?
  • Blockly -> Logo (S7) Ansteuerung

    8
    5
    0 Stimmen
    8 Beiträge
    548 Aufrufe
    P
    @mika-0 Müsstest Du ausprobieren. Ich habe nur noch eine Logo!8 in Betrieb, welche für Tests nicht zur Verfügung steht. Allerdings macht die keine Probleme, sodass ich hier von einem Software-Problem ausgehe. [Die restlichen Aufgaben übernehmen mehrere Eaton Easy E4. Da gibt es die Software Updates ohne Siemens-Konto, welches auch noch zwischenzeitlich aktuell gehalten möchte, und es gibt recht einfach zu nutzende Nodes für Node-Red. Die Möglichkeit der Programmierung per Strukturietem Text finde ich für spezielle Fälle flexibler. Dass es die Easy-Soft nur für Windows unter Intel/AMD gibt, könnte für den ein oder anderen Anwender ein Ausschlusskriterium sein.] Zum Thema: Ich würde generell einen Merker nutzen, welcher den Status der Kommunikation widerspiegelt. Also etwa alle 10 Sekunden ein Bit invertieren, welches auf einem anderen Datenpunkt wieder zurückkommt. (Watchdog) Ob der Watchdog Logo!-seitig, oder ioBroker-seitig initiiert wird, ist egal. Der muss auf der Gegenseite nur ein Timeout zurücksetzen und dann zurückgeschickt werden. Diesen Merker dann bei "kritischen" Pfaden in der Logo!-Soft mit einbinden. ioBroker-seitig kann dieser für eine Warnung per Telegramm und Co. genutzt werden. Wenn der Heizstab auch schon bei "false" getriggert wird, dann reagiert Dein Programm irgendwo nicht nur auf die steigende Flanke. Blockly nutze ich nicht. Evtl. hilft es, den damit generierten Javascript-Code noch zu posten. Generell nutze ich verschiedene Merker / Datenpunkte für Soll und Ist. So bekommt man schnell mit, wenn die Kommunikation unterbrochen ist, und man sieht in einer Visualisierung den Ist-Zustand.
  • Zählen wenn Strom fließt

    11
    3
    0 Stimmen
    11 Beiträge
    934 Aufrufe
    Ben1983B
    @gaggerler OK. Also wenn Du "nur" die Zeit messen willst, dann musst du dort nur einen true bzw. false befehl absetzen und der spuckt dir zie zeit, den mittelwert de aktivierungen aus usw. aber ok.
  • [gelöst] Variable in einem "IDs vom Selektor"

    11
    4
    0 Stimmen
    11 Beiträge
    751 Aufrufe
    haus-automatisierungH
    @j_paul Ja, könnte man natürlich machen

555

Online

32.7k

Benutzer

82.4k

Themen

1.3m

Beiträge