Skip to content

Blockly

Hilfe für Skripterstellung mit Blockly

6.6k Topics 79.7k Posts

NEWS

  • Brauche Hilfe bei Wert in Blockly (umwandeln)

    24
    2
    0 Votes
    24 Posts
    2k Views
    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 Votes
    3 Posts
    259 Views
    S
    @crunchip Super, werde ich mal ausprobieren! Danke!
  • Sendto Email als HTML zeigt kein Bild an

    6
    1
    0 Votes
    6 Posts
    392 Views
    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 Votes
    17 Posts
    1k Views
    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 Votes
    4 Posts
    364 Views
    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 Votes
    7 Posts
    285 Views
    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 Votes
    11 Posts
    1k Views
    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?

    Unsolved
    9
    0 Votes
    9 Posts
    530 Views
    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 Votes
    5 Posts
    192 Views
    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 Votes
    6 Posts
    259 Views
    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 Votes
    32 Posts
    3k Views
    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 Votes
    3 Posts
    495 Views
    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 Votes
    14 Posts
    303 Views
    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 Votes
    8 Posts
    579 Views
    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 Votes
    11 Posts
    945 Views
    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 Votes
    11 Posts
    755 Views
    haus-automatisierungH
    @j_paul Ja, könnte man natürlich machen
  • Fehler im Blockly mit Hochzählung?

    3
    1
    0 Votes
    3 Posts
    234 Views
    DJMarc75D
    @firechumper sagte in Fehler im Blockly mit Hochzählung?: Hat sich erledigt... kann gelöscht werden Dies ist eine Community und wenn es sich erledigt hat dann bitte für andere Suchende die Lösung posten !!!
  • zählen i von 6 bis 1 geht nicht - gelöst!

    11
    1
    0 Votes
    11 Posts
    925 Views
    AsgothianA
    @wagner sagte in zählen i von 6 bis 1 geht nicht - gelöst!: @paul53 :+1: mit Pause gehts Mit pause geht es. Schlecht ist es trotzdem. Besser so: [image: 1725024841367-screenshot-2024-08-30-at-15.33.55.png] Diese Anordnung von Blöcken kannst du in einen Trigger einbauen und musst dich nicht darum kümmern was passiert wenn der innerhalb von weniger als 18 Sekunden 2 mal aufgerufen wird. A. p.s. da ich dein Objekt LichtAn nicht hab habe ich da einfach ein wahr stehen lassen - die Transferleistung das anzupassen traue ich aber jedem zu.
  • Wert "zu einem bestimmten Zeitpunkt" aus influxdb auslesen

    4
    1
    0 Votes
    4 Posts
    500 Views
    M
    @paul53 Vielen Dank nochmal für Deine Hilfe. Ich mußte in Deinem Beispiel nur noch die Start- und End-Zeit vertauschen, jetzt funktioniert es perfekt: [image: 1724941461893-7ece776d-88b8-4ed2-870f-ee5f913aeb6a-image.png]
  • Werte aus JSON übernehmen

    12
    2
    0 Votes
    12 Posts
    855 Views
    haus-automatisierungH
    @homoran sagte in Werte aus JSON übernehmen: du hast ja immer noch die Konvertierung in Objekt! Das ist auch nicht falsch. Die Funktion getAttr wandelt ja nur selbst in ein Objekt, wenn man einen String reinreicht. Genauso kann man auch ein Objekt reingeben. Das ist insbesondere sinnvoll, wenn man mehrere Attribute haben möchte, da dann die Konvertierung in ein Objekt nur 1x gemacht werden muss.

709

Online

32.7k

Users

82.6k

Topics

1.3m

Posts