Weiter zum Inhalt

Blockly

6.6k Themen 80.2k Beiträge

Hilfe für Skripterstellung mit Blockly

NEWS

  • Blockly Klimaanlage steuern soll erweitert werden

    6
    5
    0 Stimmen
    6 Beiträge
    712 Aufrufe
    E
    Ich muss das Thema nochmal hochholen. Mein Blockly funktioniert soweit sehr gut. Ausser die Steurung der Temperatur über eigenen Datenpunkt Hier mal der Teil vom Blockly für den eigenen Datenpunkt [image: 1716193278863-screenshot-2024-05-20-at-10-13-00-javascript-f7c478effa45.png] [image: 1716193288656-screenshot-2024-05-20-at-10-13-18-javascript-f7c478effa45.png] [image: 1716193302974-screenshot-2024-05-20-at-10-13-43-javascript-f7c478effa45.png] Nun mal der Teil wo App oder FB alles steuern [image: 1716193350318-screenshot-2024-05-20-at-10-14-15-javascript-f7c478effa45.png] [image: 1716193364188-screenshot-2024-05-20-at-10-14-33-javascript-f7c478effa45.png] [image: 1716193370400-screenshot-2024-05-20-at-10-14-47-javascript-f7c478effa45.png] [image: 1716193378407-screenshot-2024-05-20-at-10-15-50-objects-f7c478effa45.png] Hier meine VIS dazu [image: 1716193461808-screenshot-2024-05-20-at-10-23-54-vis.png] Wenn ich nun über VIS (eigenen Datenpunkt die Temperatur ändern) springt der Wert, siehe Logauszug hin und her. Bis die Verbindung im Adapter zur Cloud getrennt wird. Änderung über App funktioniert, wie es soll Logauszug 2024-05-20 10:17:15.283 info state panasonic-comfort-cloud.0. Klima Wohnzimmer.temperatureSet changed: 23 (ack = false) panasonic-comfort-cloud.0 2024-05-20 10:17:15.234 info state panasonic-comfort-cloud.0. Klima Wohnzimmer.temperatureSet changed: 23 (ack = false) panasonic-comfort-cloud.0 2024-05-20 10:17:15.007 info state panasonic-comfort-cloud.0. Klima Wohnzimmer.temperatureSet changed: 23.5 (ack = false) panasonic-comfort-cloud.0 2024-05-20 10:17:14.955 info state panasonic-comfort-cloud.0. Klima Wohnzimmer.insideTemperature changed: 20 (ack = true) panasonic-comfort-cloud.0 2024-05-20 10:17:13.436 info state panasonic-comfort-cloud.0. Klima Wohnzimmer.temperatureSet changed: 24 (ack = false) panasonic-comfort-cloud.0 2024-05-20 10:17:13.393 info state panasonic-comfort-cloud.0. Klima Wohnzimmer.temperatureSet changed: 23.5 (ack = false) panasonic-comfort-cloud.0 2024-05-20 10:17:13.382 info state panasonic-comfort-cloud.0. Klima Wohnzimmer.insideTemperature changed: 19 (ack = true) panasonic-comfort-cloud.0 2024-05-20 10:17:13.340 info state panasonic-comfort-cloud.0. Klima Wohnzimmer.temperatureSet changed: 23 (ack = true) panasonic-comfort-cloud.0 2024-05-20 10:17:11.906 info state panasonic-comfort-cloud.0. Klima Wohnzimmer.temperatureSet changed: 23 (ack = false) panasonic-comfort-cloud.0 2024-05-20 10:17:11.855 info state panasonic-comfort-cloud.0. Klima Wohnzimmer.temperatureSet changed: 23.5 (ack = true) panasonic-comfort-cloud.0 2024-05-20 10:17:10.626 info state panasonic-comfort-cloud.0. Klima Wohnzimmer.temperatureSet changed: 23.5 (ack = false) panasonic-comfort-cloud.0 2024-05-20 10:17:10.569 info state panasonic-comfort-cloud.0. Klima Wohnzimmer.temperatureSet changed: 24 (ack = true) panasonic-comfort-cloud.0 2024-05-20 10:17:09.701 info state panasonic-comfort-cloud.0.info.connection changed: false (ack = true) panasonic-comfort-cloud.0 2024-05-20 10:17:09.655 info state panasonic-comfort-cloud.0. Klima Wohnzimmer.temperatureSet changed: 24 (ack = false) panasonic-comfort-cloud.0 2024-05-20 10:17:09.655 error Service error: Request failed with status code 500Adapter internal error. Code=5006. Stack: ServiceError: Request failed with status code 500Adapter internal error at new ServiceError (/opt/iobroker/node_modules/panasonic-comfort-cloud-client/dist/src/model/ServiceError.js:23:28) at ComfortCloudClient.handleError (/opt/iobroker/node_modules/panasonic-comfort-cloud-client/dist/src/ComfortCloudClient.js:193:31) at ComfortCloudClient.<anonymous> (/opt/iobroker/node_modules/panasonic-comfort-cloud-client/dist/src/ComfortCloudClient.js:228:30) at step (/opt/iobroker/node_modules/panasonic-comfort-cloud-client/dist/src/ComfortCloudClient.js:33:23) at Object.throw (/opt/iobroker/node_modules/panasonic-comfort-cloud-client/dist/src/ComfortCloudClient.js:14:53) at rejected (/opt/iobroker/node_modules/panasonic-comfort-cloud-client/dist/src/ComfortCloudClient.js:6:65) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) Weiss jemand, was ich am Blockly ändern muss, damit es bei der Temperaturwahl über eigenen Datenpunkt auch funktiniert? Danke für die Unterstützung Edit: Problem gefunden und behoben. Folgendes habe ich geändert [image: 1716200303476-screenshot-2024-05-20-at-12-16-38-javascript-f7c478effa45.png] Da ich im VIS bei + und - in 0.5 Schritten die Temperatur ändere(höhere Schritte wäre das Gleiche) wird der Teil vom Blockly ja bei jedem drücken ausgeführt. Mit der VIS-Wartezeit erst nach 3 sek
  • [Gelöst] Blockly mit Funktion in der es request gibt umbauen

    16
    0 Stimmen
    16 Beiträge
    1k Aufrufe
    JoJo58J
    @haus-automatisierung @paul53 Es funktioniert in beide Richtungen und ich kann anfangen alles umzustellen. Vielen Dank für eure Hilfe. Gruß, Johannes
  • [gelöst] So lange ein Objekt "Wahr" ist, mache "Wahr"

    15
    1
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    DuffyD
    @ika Wie von haus-automatisierung geschrieben kann der Oder Baustein direkt an den Falls: [image: 1716111600650-04433cc4-0e8f-47f9-937a-0eb715dce268-grafik.png]
  • Blockly akzeptiert Datenpunkt nicht

    10
    2
    0 Stimmen
    10 Beiträge
    1k Aufrufe
    XsevX
    @homoran Also leider funktioniert es doch nicht wirklich. Ich hatte die Logikprüfung (true/false) bei meinem Datenpunkt (userdata.0.Datenpunkte.BWM.Balkon) weg gelassen, was ein Dauer "true" zur Folge hatte. Habs erst bemerkt als ich den Punkt auf "false" geschalten habe und es immer noch funktioniert hat. Also das Problem ist nach wie vor das er nicht auf den Datenpunkt reagiert. Anbei hab ich das Blockly mal exportiert. Bindestriche etc. hab ich alles entfernt. Hab den Datenpunkt nochmals neu angelegt aber selbes verhalten. <xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="0DvBe(whI|8?:B:Xu}bN" x="112" y="563"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="3"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="}UQx4(.,[;n6G0l?aZnA"> <field name="oid">frigate.0.Balkon.person</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="Of3W9w*aA?+k![aNU1Cv"> <field name="oid">frigate.0.Balkon.dog</field> </shadow> </value> <value name="OID2"> <shadow type="field_oid" id="6qglY6E-^*Unvr[~~7}g"> <field name="oid">frigate.0.Balkon.cat</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="mHFKtNVZa}oCsna-~Mxr"> <value name="IF0"> <block type="logic_operation" id="!LYj5RQXfh9M!}jjAP*2" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="5cS7BkLGY=5KH+nv5v/S"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="2)_y,FN6sexWc(+(]+TL"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id=";]:=-G^RRo!)2_[|kNjL"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id=")PI*nePgyuZ_#VXNO*_Z"> <field name="ATTR">val</field> <field name="OID">frigate.0.Balkon.person</field> </block> </value> <value name="B"> <block type="math_number" id="FoTQ61*Fhs-G3lK*k7?n"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="auiw(/1%{.B`W$J[RE01"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="P_gkk?wk6*9mTEsk4fmI"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="^4*QwHcf].36q}KYgV*_"> <field name="ATTR">val</field> <field name="OID">frigate.0.Balkon.cat</field> </block> </value> <value name="B"> <block type="math_number" id="7^d5iR^Q|^L62)t6xKo("> <field name="NUM">1</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=":z_*l8~K[^8XLCus^yMG"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="f+/Oy+K=`8a4]@Dav|e;"> <field name="ATTR">val</field> <field name="OID">frigate.0.Balkon.dog</field> </block> </value> <value name="B"> <block type="math_number" id="+4[mau,QbeH-:+mq(gDa"> <field name="NUM">1</field> </block> </value> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="C1,fPT[Rq[@3?Gg;[hh$"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="#Y}=hi)S/gX,ZLEqt4po"> <field name="ATTR">val</field> <field name="OID">javascript.0.Camview-Vis</field> </block> </value> <value name="B"> <block type="math_number" id="@dKKWP4GTui_;cj2Jx0."> <field name="NUM">6</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="rK/)8;LYC(|2xDL-I4@:"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="mIFnn8wA$Rmb@v7UocZh"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Datenpunkte.BWM.Balkon</field> </block> </value> <value name="B"> <block type="logic_boolean" id="/9ZE~cd0`W+Od)7(g6oZ"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="|k6YTovQ%wCEDv.U=QT8"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">javascript.0.Camview-Vis</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">200</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="K.YC%G3clv)a{jRI}?(a"> <field name="NUM">6</field> </block> </value> </block> </statement> </block> </statement> </block> </xml>
  • [gelöst]Hilfe bei blockly Image8 Widget Bild ändern anhand..

    6
    1
    0 Stimmen
    6 Beiträge
    258 Aufrufe
    icebearI
    @paul53 Vielen Dank nochmal für den 'Denkanstoß' funktioniert soweit perfekt. Ich mußte mir allerdings noch ein 'Übersetzter'- Script anlegen, welches die States nach 1, 2, 3 usw übersetzt, da ja das Image8 Widget bei Wert für URL nur fortlaufende Zahlen 1, 2, 3 usw kennt.
  • Zeitspanne für Trigger

    1
    1
    0 Stimmen
    1 Beiträge
    159 Aufrufe
    Niemand hat geantwortet
  • PV-Überschuss Heizstab, Verzögerung komme nicht weiter

    6
    1
    0 Stimmen
    6 Beiträge
    297 Aufrufe
    paul53P
    @jungdergung Beim verzögerten Zurückschalten sind 3 nicht-Blöcke zu viel. @jungdergung sagte in PV-Überschuss Heizstab, Verzögerung komme nicht weiter: Netzbezug (negatives Vorzeichen). Negativ bei Bezug und positiv bei Einspeisung? Dann ändere oben in: setze ueberschuss auf Wert.
  • [Schaltung Zirkulation] - Skript funktioniert nicht

    2
    1
    0 Stimmen
    2 Beiträge
    260 Aufrufe
    A
    @scrub Ohne mir das Script im Detail angeschaut zu haben fällt mir nur auf, dass es keinen Trigger gibt.
  • Blockly Verzögerung retriggern

    blockly
    3
    1
    0 Stimmen
    3 Beiträge
    308 Aufrufe
    H
    @paul53 Danke!
  • Skript nach Änderung Timeout - wo einfügen?

    blockly javascript
    9
    1
    0 Stimmen
    9 Beiträge
    826 Aufrufe
    G
    @codierknecht Das Fenster reagiert nicht auf Böen. Die werden leider nicht von der Wetterstation ausgelesen. Dafür nehme ich eben die normale Windgeschwindigkeit, die ja vor Böen auch immer erhöht ist. Aus der Sonneneinstrahlung (Helligkeit) und der Windgeschwindigkeit habe ich durch hin- und herprobieren Werte "ermittelt", die in 4 Stufen das Fenster mehr oder weniger öffnen. Das ist auch wieder abhängig von der vorhergesagten Tageshöchsttemperatur. Was ich noch einbinden will ist die Windrichtung, denn wenn der Wind von Osten / Südosten bläst ist das eigentlich unrelevant, da das Fenster nach Westen öffnet.
  • Blöcke hellblau - Javascript Adapter 8.3.1

    3
    1
    0 Stimmen
    3 Beiträge
    442 Aufrufe
    NinjaTurtle85N
    @homoran Oh Mann Ab ins Schwarze Loch mit mir!!!! Vielen Dank!!!!
  • Licht an wenn Wecker klingelt

    32
    1
    0 Stimmen
    32 Beiträge
    5k Aufrufe
    Dr. BakteriusD
    @newbie2007 Ich stelle das in der Alexa-App ein.
  • Blockly geht auf einmal nicht mehr

    3
    2
    0 Stimmen
    3 Beiträge
    215 Aufrufe
    Horst BöttcherH
    @homoran ok werde ich nachher probieren Fürleicht hab ich ihn mal ausversehn umgestellt
  • Webhook an MS Teams schicken

    2
    1
    0 Stimmen
    2 Beiträge
    325 Aufrufe
    T
    Sooooo, MS Teams bekommt nun schonmal Logging aus dem Broker in einem entsprechenden Kanal: [image: 1715729037323-e90ec9fc-8489-42cd-bdfc-91815ecda76b-grafik.png]
  • "Zeitdifferenz formatieren" liefert "falsches" Format

    10
    3
    0 Stimmen
    10 Beiträge
    993 Aufrufe
    paul53P
    @paddex sagte: negativ 7 min 51 sek ?? JS 8.3.1: [image: 1715707610138-blockly_temp.jpg]
  • [gelöst]JSON auslesen, um zu rechnen

    4
    1
    0 Stimmen
    4 Beiträge
    439 Aufrufe
    docadamsD
    @paul53 Vielen Dank. Ist anderer Ansatz, aber deine Lösung kann ich nachvollziehen.
  • Triggerung durch MQTT zu oft

    5
    1
    0 Stimmen
    5 Beiträge
    448 Aufrufe
    BananaJoeB
    @hg6806 sagte in Triggerung durch MQTT zu oft: ich weiß jetzt allerdings nicht wie belastend das für das System ist, wenn jede Sekunde ein Trigger kommt. kommt auf den Unterbau an. Bei mir Triggern vermutlich > 50 Skripte jede Sekunde von etwa 500 vorhandenen (jedes Tasmotagerät hat sein eigenes Skript, Mindestintervall 60 Sekunden, die wichtigen alle 15 Sekunden, Stromzähler jede Sekunde) Inklusive Skripte die durch Skripte getriggert werden: Skript A reagiert auf MQTT oder holt per http JSON-Daten und teilt die auf mehre Einzeldatenpunkte auf Skript B und C reagieren auf die Datenpunkte die Skript A erzeugt hat Skript D reagiert auf etwas was C erzeugt hat ist ein AMD 4 x 3GHz Prozessor der auf dem Niveau eines Celeron läuft, Auslastung im Schnitt 33%, MQTT Broker ist Mosquitto, ioBroker per Adapter als Client Da geht also bei bedarf ganz viel, 1x die Sekunde muss kein problem sein
  • [gelöst] Ein Trigger auf alle Datenpunkte in einer Liste

    12
    0 Stimmen
    12 Beiträge
    480 Aufrufe
    MartinPM
    So, hier die endgültige Lösung Initialisierung: [image: 1715674712529-e665a404-9fd7-4fd6-83e7-d39a1f550889-grafik.png] Trigger-Schleife: [image: 1715675501435-559f84e1-6cf2-4b4b-bb29-d0a4e83fb455-grafik.png] Durch die um 3 Sekunden verzögerte Ausführung möchte ich die Anzahl der Mails verringern. Häufig fallen ja die Geräte in "Rudeln" aus, z. B. bei WLAN-Problemen, und dann ist es sicher gut, erst eine Mail zu bekommen, wenn das ganze Rudel die Probleme gemeldet hat ... Vielleicht spiele ich noch mit der Wartezeit. Der Ping-Adapter ist auf 60 Sekunden eingestellt, wahrscheinlich wären da mehr als 70 Sekunden besser, aber dann dauert es noch länger, bis die Mail eintrudelt...
  • Rollladenfahrt ankündigen - wie Daten im Blockly auswerten?

    15
    1
    0 Stimmen
    15 Beiträge
    558 Aufrufe
    G
    @martinp :-) Das Weidezaungerät gefällt mir am Besten! Da hab ich gleich viele Ideen, wo ich da noch alles Spannung drauflegen könnte, wenn meine bessere Hälfte wieder mal irgendwo dran rumfummelt wo sie nicht soll... :-) @paul53 Das Blockly muss ich mir in Ruhe anschauen. Die Idee dahinter klingt aber erst mal gut!
  • Timeout richtig eingesetzt?

    Ungelöst
    2
    1
    0 Stimmen
    2 Beiträge
    211 Aufrufe
    paul53P
    @wingo56 sagte: wenn die Bedingung die darüber ist 4 sekunden lang ansteht. Prinzip siehe hier EDIT: Mit Freigabe: [image: 1715620352654-blockly_temp.jpg]

196

Online

33.0k

Benutzer

83.3k

Themen

1.3m

Beiträge