Skip to content

Skripten / Logik

Hilfe zu JavaScript, Blockly, TypeScript, Node-RED, Scenes und text2command

16.6k Topics 213.7k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    D
    @ArnoD Vielen Dank werde ich morgen machen!
  • Hilfe für Skripterstellung mit Blockly

    7k 79k
    7k Topics
    79k Posts
    paul53P
    @Duffy sagte: Es unterscheidet irgendwie nicht zwischen BWM 1 und 2. Doch, in den Logs wurde unterschieden. Es ist allerdings nicht nachvollziehbar, weshalb unmittelbar nacheinander BWM 1 den entgegengesetzten Wert und BWM 2 den gleichen Wert zweimal annimmt. EDIT: Versuche es mal mit getrennten Triggern für BWM 1 und BWM 2: [image: 1771881389743-blockly_temp.jpg]
  • Hilfe für Skripterstellung mit Node-RED

    953 13k
    953 Topics
    13k Posts
    Marc BergM
    Es gibt in der Verson 1.3.0 einen neuen Node: iob-setObject (Stand 10.02.26 noch beta) Mit dem neuen Node kann man ioBroker-Objektdefinitionen (Metadaten) direkt schreiben und ändern. Hauptfunktionen: Instanz-Konfigurationen ändern - z.B. MQTT publish-Pattern, Intervalle, etc. Objekt-Eigenschaften aktualisieren - Namen, Rollen, Einheiten, Min/Max-Werte ändern es gibt zwei Modi: Merge-Modus : Ändert nur die angegebenen Eigenschaften, alle anderen bleiben erhalten Replace-Modus: Überschreibt das komplette Objekt Typischer Workflow: Objekt mit iob-getobject holen Mit Change-Node gewünschte Properties ändern Mit iob-setobject zurückschreiben
  • Array erstellen aus Datenpunkten in javascript

    javascript
    12
    0 Votes
    12 Posts
    2k Views
    R
    @paul53 Ja, ich muss noch viel lernen. Aber das ist ein schönes praktisches Beispiel womit ich zum Verständnis was rumprobieren kann . Danke dir erst mal so weit. Wenn noch Fragen sind, werde ich noch mal nachhaken.
  • Elektroauto nur mit PV Überschuss laden

    javascript
    6
    0 Votes
    6 Posts
    2k Views
    smileS
    Das ist ein sehr spannendes Thema, wenn ich mich hier einmal einklinken darf. Wir planen aktuell 2 Ladesäulen an unserer Firma, und eine PV Anlage. Es ist auch genau unser Anielgen, die E Autos nach Möglichkeit mit dem PV Überschuss zu laden, weil sich dadurch der Ertrag der PV Anlage natürlich deutlich verbessert. So wie ich sehen kann gibt es bereits einen iobroker Adapter für Keba Ladesäulen sowie für Fronius PV Wechselrichter, weshalb ich derzeit auf dem Stand bin eine Keba Ladesäule zu erwerben. Oder habt ihr andere Infos, dass z.B. auch die Integration einer Alfen Eve Ladesäule über OCPP 1.5 / 1.6 angebunden werden kann? Laut Hersteller soll darüber hinaus ab Mai die Kommunkation mit anderen Energiemanagementsystemen Via Modbus TCP/IP (per Ethernet) möglich sein. Ich würde nämlich eigentlich lieber die Alfen Eve Ladesäulen nehmen, aber wenn die Konnektivität zu iobroker mit den Keba Ladesäulen einfacher ist, dann wäre das ein starkes Argument für Keba.
  • [gelöst] Problem mit Abfallkalenderskript

    Moved
    30
    6
    0 Votes
    30 Posts
    2k Views
    opossumO
    Hallo, danke für den Hinweis, musste ich mir erst selber zusammenreimen. Aber jetzt ist das ok. Gruß Egbert
  • Bewegungsmelder schaltet Licht

    javascript blockly
    17
    0 Votes
    17 Posts
    2k Views
    S
    Probier mal so: <xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="undefined" id="timeoutWz">timeoutWz</variable> </variables> <block type="comment" id="X,*.}*tPzsA.Vda~~gpz" x="-462" y="63"> <field name="COMMENT">Trigger auf motion</field> <next> <block type="on_ext" id="0ZRal3s;tUmp9/Bj~$5Q"> <mutation items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="OqgM$PjlbUi9gN.11if9"> <field name="oid">hm-rpc.0.NEQ1702891.1.MOTION</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="eF?+Gupjz8*p#z.A|t7H"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="!HEVg+~}vmbHq!a}Ku{[" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="DX(uvjzED/QeqMBthM)X"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="zoH}akd2i-#s%?KY_s,`"> <field name="ATTR">val</field> <field name="OID">hm-rpc.0.NEQ1702891.1.BRIGHTNESS</field> </block> </value> <value name="B"> <block type="math_number" id="-6HGm{FG+hzPA5NY~J2Q"> <field name="NUM">50</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="6YG()hB_PpfhE2fU/f^;"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="JuT/Fk{t#}jq0YmjJo?("> <field name="ATTR">val</field> <field name="OID">yeelight-2.0.Beleuchtung_Waschkueche.control.power</field> </block> </value> <value name="B"> <block type="logic_boolean" id="|=N|r{4_x`Z3t/VlRy-s"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="o)`Zmjz]1,}ehoOW0DdK"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="DWT|Q;*)BlPssB4XSTBo"> <field name="TEXT">Bewegung Waschkueche erkannt.</field> </shadow> </value> <next> <block type="debug" id=".wPwO*n3h_LqPIW#0KhB"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="W%3!N+Ed4,yCq+b$]|,U"> <field name="TEXT">Lampe Waschkueche ist eingeschalten!</field> </shadow> </value> <next> <block type="timeouts_cleartimeout" id="U!.Gh4s?s*5kxB8F@~p1"> <field name="NAME">timeoutWz</field> <next> <block type="control" id="ha(8Z9;8JUd`E;IB2pr:"> <mutation delay_input="false"></mutation> <field name="OID">yeelight-2.0.Beleuchtung_Waschkueche.control.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="?h!WA0PXtly#.B79[`gx"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="timeouts_cleartimeout" id="+Wd9ysblJ?W%Mb}sh[3s"> <field name="NAME">timeoutWz</field> <next> <block type="timeouts_settimeout" id="^l|Y=q!x+X4cjdG*hS`)"> <field name="NAME">timeoutWz</field> <field name="DELAY">1</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="control" id="W`)[QB~ug_28U!tnReMZ"> <mutation delay_input="false"></mutation> <field name="OID">yeelight-2.0.Beleuchtung_Waschkueche.control.power</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="?A`mJ^prP5L~-c35c+3L"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="debug" id="uuC1M0ECXOBrA*(nJfQi"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="/S}Za#4OBs1Qt=b?bl}4"> <field name="TEXT">Lampe Waschkueche ist ausgeschalten!</field> </shadow> </value> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </xml> In Blockly einfügen. Bei mir funktioniert es so.
  • Frage zu "regex" (ist doch ganz schön komplex)

    javascript
    25
    1
    0 Votes
    25 Posts
    982 Views
    bahnuhrB
    @Homoran sagte in Frage zu "regex" (ist doch ganz schön komplex): Wenn ich mal wieder auf die Kuppe komme Gerne, jederzeit.
  • 0 Votes
    15 Posts
    1k Views
    AsgothianA
    @Daniel1103 Also.. ein Script in Blockly zusammenbauen kann ich dir leider nicht. Ich würde das über eine Scriptverkettung in JS lösen. Das geht wahrscheinlich irgendwie auch als Blockly, nur das kann ich noch weniger gut hier schreiben. Durch die Aufspaltung in kleinere Funktionseinheiten wird es besser skalierbare und einfacher zu handeln. Mein Aufbau sähe so aus: var timeout = null; var script_active = false; var activationDelay = 100; on ({id:'datenpunkt_aktivierung_durch_vis', change:'ne'}, function() { if (obj.newState.val) { setTimeout(function() { script_active = true; },activationDelay); } else script_active=false; }); function Activate() { if (timeout == null && script_active) { timeout = setTimeout(function() { timeout = null; }, 100); // Hier deine Aktion machen } } on ({ id: 'datenpunkt_sensor_1', change: 'gt'} Activate); on ({ id: 'datenpunkt_sensor_2', change: 'gt'}, Activate); ... on ({ id: 'datenpunkt_sensor_N', change: 'gt'}, Activate); dazu noch ein paar Warnhinweise ich bin im Büro, kann die Syntax also nicht checken - es können Tippfehler drin sein die Variable ActivationDelay gibt an wieviel zeit zwischen Aktivierung im Vis und Scharf gehen vergeht. Die Datenpunkte musst du natürlich korrekt setzen, ich kenne deine Objektstruktur nicht. Du brauchst für jeden Sensor den du überwachen willst ein "on" statement Durch das "change:'gt'" triggert der "on" Befehl nur auf Änderungen von false auf true, nicht umgekehrt Durch das "change:'ne" triggert der erste "on" Befehl nur auf Änderungen, nicht auf Aktualisierungen des Status Was du bei // Hier deine Aktion machen rein kopieren musst kannst Du dir aus dem Quelltext des Blocklys das du oben hast heraus kopieren. Ich kenne die Syntax für Pushover leider nicht. Ich hoffe das Gibt Dir ein paar Hinweise.
  • Problem mit eigenem Datenpunkt , schaltet nicht

    blockly
    10
    4
    0 Votes
    10 Posts
    498 Views
    A
    @Homoran Danke für Deine Nachricht, Ich habe den Fehler gerade gefunden. Es war ein falscher Datenpunkt eingetragen. Da der Hand/Auto-Schalter jetzt wie gewünscht schaltet möchte ich das Blockly dahin gehend erweitern, das wenn der Schalter auf Auto steht ich die Pumpe durch anklicken des Pumpenicons nicht ausschalten kann. Bei Stellung Hand soll es aber möglich sen. Ist diese Konstellation möglich? Gruß Michael
  • E-Mail Vorlage mit Spracheingabe senden

    multimedia monitoring communication
    3
    0 Votes
    3 Posts
    297 Views
    sigi234S
    Nein, ich verstehe deine Frage nicht wirklich was du möchtest?
  • [Frage] Meldung Senden Telegram erfolgreich?

    monitoring
    8
    0 Votes
    8 Posts
    683 Views
    iomountainI
    da res bei mir immer 0 ist und ich JavaScript nicht wirklich kann hab ich weiter geforscht: wenn ich Internet habe und ein sendTo('telegram.0' mache ändert sich die telegram.0.communicate.botSendMessageId +1 wenn ich kein Internet habe bleibt Sie auf dem alten Wert. Beispiel in Blockly: [image: 1552256559223-fa55578a-2088-464b-bb63-16783944e1ba-image.png] Für mich reicht die Lösung, bin aber für Verbesserungsvorschläge offen Danke Ralph
  • Frage: Wie trägere ich einen Button state mit JS

    javascript
    4
    1
    0 Votes
    4 Posts
    281 Views
    AsgothianA
    @stimezo Danke dafuer. Ich hatte es dann doch einfach probiert und es ist nichts explodiert.. also mach ich es so wie oben beschrieben weiter. A.
  • Bild von URL abrufen und per Mail senden

    Moved
    10
    0 Votes
    10 Posts
    2k Views
    AlCalzoneA
    @metaxa sagte in Bild von URL abrufen und per Mail senden: Ich vermute, dass der "Install-Fixer" von @AlCalzone daran beiteiligt ist oder war. Richtig vermutet. Der User iobroker hat jetzt immer Vollzugriff aufs Installationsverzeichnis. Damit ist sudo nicht mehr nötig und sollte nicht verwendet werden.
  • 0 Votes
    6 Posts
    719 Views
    paul53P
    @rantanplan sagte in [Frage] [Blockly/JavaScript] v.4.1.12 Alles etwas langsamer?: Aber bei "aktualisiere" funktionierte es. Das war dann Zufall !
  • Blockly - Pushover & Attachment

    Moved
    45
    0 Votes
    45 Posts
    7k Views
    M
    @dan11hh sagte in Blockly - Pushover & Attachment: @dtp: Also ohne Blockly funktioniert es auf jeden Fall schon mal mit der Version 1.2.0 von pushover-notifications. ` Vielen Dank für das Script. Als nicht Script mächtiger, kann ich da schon mal etwas rumfummeln. Würde eigentlich gerne mein Klingel Skript anpassen und meine Türkamera einen Snapshot pushen lassen. Hab nur leider keine Ahnung wie ich das ohne Blockly hinbekommen soll. Der Snapshot wird über folgende URL abgerufen: http://192.168.2.119/cgi-bin/api.cgi?cm … ord=123456 Wie bekomm ich das nun in ioBroker? :oops: Hallo. Ich habe bei mir genau das selbe vor. Möchte gern bei auslösen des Bewegungssensor das ein Snapshot per Pushover versendet wird. Bist du mit deinem Vorhaben schon weiter gekommen? Meine Suche im Netz war bisher erfolglos. Gruß Markus
  • Camshot von Fully Kiosk über Telegram senden

    Moved
    3
    0 Votes
    3 Posts
    813 Views
    E
    @Novak Ist es auch möglich, ein Snap von einem Video zu erstellen und dieses zu versenden? Meine Cam bietet leider kein Snap Link.
  • Sonoff TH16 neustarten

    heating blockly
    12
    1
    0 Votes
    12 Posts
    1k Views
    Ralla66R
    Kannst ja mal im Browser Mozilla oder IE eingeben : http://dein Sonoff/cm?cmnd=Status 10 oder http://dein Sonoff/cm?cmnd=Status %10
  • (gelöst) Status Kontakte über Telegramm

    Moved
    5
    0 Votes
    5 Posts
    693 Views
    D
    @Svemo Habe den Script auf meine Komponenten angepasst. Passt auch soweit. Ich bekomme nur bei der Auswahl für alle Kontakte folgende Fehlermeldung im LOG. [image: 1552123939694-bildschirmfoto-2019-03-09-um-10.26.32.png] Gibt es eine Begrenzung bei der Anzahl der Anzeige und kann man die nicht abschalten. Da ich nicht so viel Ahnung habe vom Scripten, bin ich auf eure Hilfe angewiesen. pdulles
  • [VORLAGE] GoogleHome spechen lassen TTS

    Moved
    24
    0 Votes
    24 Posts
    6k Views
    blauholstenB
    Hallo, Da bist du hier eigentlich verkehrt. Geh Mal auf die readme seite des sayit Adapters, dort ist es denke ich beschrieben. Alternativ hier im Forum Mal suchen. Nur auf die schnelle, du musst mittels blocky o.ä. den Datenpunkte des sayit Adapters mit deinem gewünschten Text beschreiben.
  • TypeError: a.getElementsByTagName is not a function bei Blockly

    Moved
    4
    0 Votes
    4 Posts
    366 Views
    F
    @RappiRN Ich wollte es nicht in VIS integrieren. Sondern in der Scriptengine. Mein Fehler war, dass man Scripte nicht in Blockly importieren kann. Dazu muss man einfach ein leeres JScript anlegen (kein Blockly!) und dort kann man den Script-Text dann importieren. Ich hatte gedacht ich könne das Script importieren und er baut das in Blockly um, da es andersrum ja auch funktioniert. War ein Anfängerdenkfehler von mir.
  • Alle Wecker ausschalten

    javascript
    1
    0 Votes
    1 Posts
    274 Views
    No one has replied
  • Erwartete Tageshelligkeit (Dauer) berechnen

    javascript blockly
    34
    0 Votes
    34 Posts
    5k Views
    cashC
    @hans_999 das heißt Ihr habt es im Sommer über eine Stunde länger hell? Das hätte ich nicht gedacht. Ich glaube ich muss umziehen :-) Wobei mir die Helligkeit im Sommer reicht. Im Winter ist der Tag leider meistens zu kurz..

588

Online

32.7k

Users

82.4k

Topics

1.3m

Posts