Skip to content

Blockly

6.6k Topics 79.8k Posts

Hilfe für Skripterstellung mit Blockly

NEWS

  • Nach Änderung von Wert -> Timer, Re-Check & Aktion

    6
    1
    0 Votes
    6 Posts
    473 Views
    H
    Als Abschluss für den Thread und weil ich mich bedanken möchte und interessierten Lesern später zeigen möchte, wie ich das zb. für meine Spülmaschine gelöst habe: [image: 1674285906569-e45dc7df-9d84-4250-8d5c-f60b6bfb3da3-image.png] Da ich zum einen ab und an komische Werte > 0W hatte, die entweder an dem Gerät, der Steckdose oder einfach daran liegen, dass jemand kurz die Maschine startet und das Programm dann doch nicht aktiviert, habe ich mich entschlossen einen Mechanismus einzubauen, der eben auch berücksichtigt, ob die Maschine bzw. das Programm ernsthaft gelaufen ist: Wenn ein Wert sich ändert und er ist über 100W (als Beispiel), dann können wir davon ausgehen, dass ein Programm läuft => Wir setzen eine definierte Variable auf "WAHR". Wenn ein Wert >0 aber < 100W als Veränderung gesehen wird, wird ein ggfs. laufender Timer gestoppt - ansonsten passiert nichts. Wenn eine Veränderung des Wertes dazu führt, dass der Wert 0 ist UND die definierte Variable "WAHR" ist, wird eine Nachricht geschickt - die Variable wird dann wieder auf "FALSCH" gesetzt. In dem Stil werde ich es auch mit der Waschmaschine machen und anderen Geräten, die in einem Programm ablaufen und als Kennzeichen haben einen gewissen Schwellwert (zb. für das Heizen) stets zu überschreiten - kleine Verbräuche die aus unterschiedlichsten Gründen auftauchen können, werden ignoriert.
  • Multitimeout - wie function übergeben von blockly in js

    15
    2
    0 Votes
    15 Posts
    1k Views
    P
    @paul: ich poste mal den aktuellen Stand, macht inzwischen denke ich wieder Sinn: Eigentlich ist es nur ein "normaler Timeout-Block" der es ermöglicht einen funktionsaufruf zu verzoegern und dabei einen "dynamische" Bezeichnung hat, sodass das auch mit einem SelectorById-Trigger individuell in Blockly funktioniert. Es funktioniert nun auch mit dem "Multi-Timeout"... :) [image: 1674252663838-63c24a2c-7335-421b-b57d-cc2bac8d6281-image.png] die drei functions - wie bekomme ich die erste davon ganz weg...? // Beschreibe diese Funktion … async function timeout_handles_obj() { var timeout_handles = {}; /* // timeout_handles auslesen aus dp, falls er nicht existiert, dann erstellen: a = scriptName.split('.'); script_name = a.slice(-1)[0]; // Skriptname erfasst dp = "0_userdata.0.System.Timeouts.in_Skript_" + script_name; // wo die Timeouts gebackupt werden if ( !existsState(dp) ) { createState(dp, timeout_handles, { "name": "Timeout-Handles des Skripts", "desc": "Manuell erzeugt", "role": "state", "type": "object", "read": true, "write": true }, function () {}); } else { timeout_handles = getState(dp).val; // Timeout reinladen aus dp } console.log(getState(dp).val); */ return timeout_handles; } // Beschreibe diese Funktion … async function timeout_loeschen(trigger) { a = trigger.split('.'); b = a.slice(a.length - 2, a.length - 0); trigger_id = b.join('_'); // trigger_id = "trigger" gekürzt if( trigger_id in timeout_handles ) { clearTimeout(timeout_handles[trigger_id]); delete timeout_handles[trigger_id]; } } // Beschreibe diese Funktion … async function timeout_setzen(trigger, sek, funktion) { var obj = {}; //Name für den Timeout des Triggers erfassen: a = trigger.split('.'); b = a.slice(a.length - 2, a.length - 0); trigger_id = b.join('_'); // trigger_id = "trigger" gekürzt verzoegerung_ms = sek * 1000; // umrechnen obj[funktion] = funktion; // function in object zuordnen //Timeout setzen timeout_handles[trigger_id] = setTimeout(eval(obj[funktion]), verzoegerung_ms, trigger); /* // Skriptname erfassung und Timeouts backupen in DP: a = scriptName.split('.'); script_name = a.slice(-1)[0]; dp= "0_userdata.0.System.Timeouts.in_Skript_" + script_name; setState(dp, timeout_handles, true); // handles in dp backupen; */ }
  • RPI2 Adapter GPIO Ansteuerung funktioniert nicht

    Moved
    7
    0 Votes
    7 Posts
    445 Views
    HomoranH
    @tombir sagte in RPI2 Adapter GPIO Ansteuerung funktioniert nicht: Jetzt funktioniert es. so muss es sein!
  • Datenpunkt ändern und wieder zurück ändern

    6
    0 Votes
    6 Posts
    323 Views
    HomoranH
    @darkblu sagte in Datenpunkt ändern und wieder zurück ändern: @homoran Danke, probiere ich morgen nochmal aus. und dann nicht direkt schreddern, sondern posten und fragen.
  • [gelöst] Blockly Sendto in CRON funktioniert nicht

    8
    1
    0 Votes
    8 Posts
    604 Views
    B
    @rscsb Perfekt! Herzlichen Dank! Hat funktioniert!
  • Zeitplan Wochentag prüfen?

    9
    1
    0 Votes
    9 Posts
    721 Views
    CodierknechtC
    @kaile45 sagte in Zeitplan Wochentag prüfen?: warum default und nicht direkt die Werte? Weil das nur ein Beispiel ist und das Prinzip verdeutlichen soll. Nicht jeder hat Zeit und Lust, Deinen Objektbaum nachzubasteln um damit einen passenden Screenshot zu machen.
  • Bewegungsmelder Skript fehlerhaft

    60
    1
    0 Votes
    60 Posts
    5k Views
    paul53P
    @13patrick37 sagte: Mit "AllOn" funktioniert alles. Ist nur blöd, dass sofort die Helligkeit auf 100% geht. Wenn "Level" hinterher geschickt wird (vlt. etwas verzögert) dürfte sich der Wert von "AllOn" nicht mehr ändern (true bleiben), also nicht getriggert werden. Oder geht dann der Wert kurz auf false? Der Debug-Log wird es zeigen. [image: 1674163333201-bild_2023-01-19_222211135.png]
  • Blockly Funktionswert auslesen anstatt Logikwert

    4
    1
    0 Votes
    4 Posts
    417 Views
    M
    @paul53 Danke das war der Hinweis :) return getObject(id).common.states[val]; [image: 1674156941216-1a63f907-6d76-4bdd-bc82-1f3c1b55ca62-image.png] Gelöst!
  • Blockly "Falls Objekt" ist mehr als wahr/falsch

    21
    1
    0 Votes
    21 Posts
    2k Views
    R
    @paul53 ja so werde ich es machen
  • Das Script um zwei weitere TRUE Abfragen erweitern

    5
    1
    0 Votes
    5 Posts
    324 Views
    CodierknechtC
    @djmarc75 sagte in Das Script um zwei weitere TRUE Abfragen erweitern: @codierknecht Objekt ID durch Wert ersetzen Ich Depp :man-facepalming: Ist korrigiert - Danke!
  • Datenpunkt schreiben bei Offline des Heizungsthermostat

    3
    0 Votes
    3 Posts
    262 Views
    M
    @arteck [image: 1674115558492-screenshot-2023-01-19-090515.png] [image: 1674115564849-screenshot-2023-01-19-090543.png] Das hätte ich bis jetzt , funktioniert aber nicht richtig.
  • Wie frage ich einen Wert ab?

    13
    1
    0 Votes
    13 Posts
    1k Views
    giziG
    @paul53 danke!! :)
  • Es ist trocken Meldung kommt zu früh.

    9
    2
    0 Votes
    9 Posts
    295 Views
    G
    So sieht es besser aus. [image: 1674072054835-b00beaef-98a9-4e84-91d5-76f623285941-image.png]
  • [Gelöst] Blockly Script mit Alexa Sprachausgabe

    3
    1
    0 Votes
    3 Posts
    352 Views
    BananaJoeB
    @fabiowski stelle dem ersten Post einfach ein [Gelöst] voran
  • Blockly Script

    10
    2
    0 Votes
    10 Posts
    384 Views
    paul53P
    @takahara sagte: helfen, das Script zu korrigieren? Was funktioniert nicht? Was ist "set preset"? Eine weniger Ressourcen verbrauchende Version: [image: 1674037141930-bild_2023-01-18_111900633.png]
  • Probleme bei Astro-Tag und Nacht

    8
    0 Votes
    8 Posts
    635 Views
    T
    @paul53 habe den Fehler gefunden. Hatte zweimal Sonnenaufgang.
  • Fehlendes heartbeat Signal erkennen

    2
    0 Votes
    2 Posts
    337 Views
    paul53P
    @gklank sagte: "Anti-Heartbeat" Funktion. Suche im Forum nach "Watchdog".
  • Hilfe bei PV Eigenverbrauch

    11
    0 Votes
    11 Posts
    1k Views
    K
    @paul53 Hallo Paul53 Danke für die schnellen Antworten, und die guten Tipps.
  • [gelöst] Steckdose ausschalten unter definierten Niveau

    4
    1
    0 Votes
    4 Posts
    345 Views
    P
    @paul53 ja fetz. Danke das wars !
  • Blockly nach Datum gesteuert

    11
    0 Votes
    11 Posts
    486 Views
    paul53P
    @robbi12 sagte: Irgendwie schreibt er diesen Wert wohl nicht richtig. Ich kenne die Viessmannapi nicht.

509

Online

32.8k

Users

82.9k

Topics

1.3m

Posts