Skip to content

Skripten / Logik

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

16.6k Topics 213.9k Posts

NEWS

Subcategories


  • Hilfe für Skripterstellung mit JavaScript

    2k 49k
    2k Topics
    49k Posts
    A
    @azzkikrboy Verwendest du die Objekt-ID 0_userdata.0.Charge_Control.Allgemein.EigenverbrauchDurchschnitt ? Da sollten immer beide Werte angezeigt werden.
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Topics
    80k Posts
    F
    @KPT sagte in Script zum Laden/Entladen von Zendure Solarflow: Gibt es Erfahrungen, ob der Solarstream 800 Plus überhaupt per MQTT steuerbar ist? Also ich habe seit knapp 5 Tagen einen SF800 Plus und kann Ihn über MQTT steuern. Hab mir das JS von Felli geholt, bissl umgebaut und bin auch gerade dabei mir mal das Blockly von @murphy-0 näher zu betrachten. Jedenfalls läßt sich der Akku steuern und auch regeln. Ich habe aber auch Zeit gebraucht bis ich die Einstellungen hatte, damit es funktionierte. Habe in der Zendur-App den MQTT von ioBroker mit Port 1883 hinterlegt mit Benutzer/PW versorgt. Danach kamen die Daten sowohl im MQTT-Explorer als auch im Broker an, allerdings natürlich mit einem anderen Verzeichnis-Pfad wie von der Zendur-App. In dieser hatte ich beides eingetragen, wobei die Daten vom Akku wie es aussieht es nur wirklich mit der "Auth. Key" reinkommen. Ich habe es auch über "Lokaler Mqtt Server" versucht, aber irgendwie ging´s damit nicht richtig. P.S.: den Auth-Key bekommst Du in der App unter Profil und dann unten über Autorisierungs-Cloud-Schlüssel diesen abrufen und in den Adapter kopieren.
  • 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
  • Statusmeldung abends welche Fenster/Türen noch offen sind

    Moved
    3
    0 Votes
    3 Posts
    827 Views
    S
    Danke pix, puh ich glaub das ist noch nen Nr zu groß für mich :oops: . Wenn du von Gewerke redest, dann sind das alles Melder von der CCU2 oder? Ich habe auch andere Fenstersensoren im Einsatz (Xiaomi) und was meinst du mit: Dazu beim Einschalten der Alarmanlage oder durch Zeitplan den Text aus idAnsage in den text2speech Datenpunkt tts zu kopieren. Versteh nur Bahnhof :oops:
  • [gelöst] on/subscribe, zwei Adapter ausschließen

    Moved
    6
    0 Votes
    6 Posts
    465 Views
    AlCalzoneA
    FYI: In der aktuellen Version auf GitHub (noch nicht veröffentlicht) funktionieren jetzt auch RegExp und Arrays für die meisten Parameter, inklusive fromNe. on({..., fromNe: /foo|bar/}, (obj) => { // sonstiger Trigger-Code }); und on({..., fromNe: ["foo", "bar"]}, (obj) => { // sonstiger Trigger-Code }); sind damit auch unterstützt.
  • Sonnenuntergang Blockly

    Moved
    13
    0 Votes
    13 Posts
    9k Views
    rantanplanR
    @smarti2015: Dann kann man auch verpasste Zeit-Situationen nachträglich aktivieren. So was fehlt mir hier; geht das irgendwie auch? ` Einfach eine Aktion/Button/Datenpunkt triggern und dann Zeitvergleich machen aktuelle Zeit > Sonnenuntergang. Man kann auch sowas einsetzen. viewtopic.php?f=21&t=4891&hilit=astro#p48209 Grüße
  • Blockly script import speichert nicht

    Moved
    3
    0 Votes
    3 Posts
    887 Views
    C
    @Fraenki23: Hallo Ich habe das selbe Problem finde ab im Netz keine Antwort. Hast Du das Problem eingrenzen können und eine Antwort. Wenn ich ein Skript importiere kann ich es nicht speichern. Gruß und dank Fränki ` hab das Problem auch bei mir funktioniert es wenn ich eine neue Blocklydatei erstelle diese umbennen und speichere und dann das Script erst importieren, dann kann ich auf speichern klicken.
  • Enum tiefe

    Moved
    1
    0 Votes
    1 Posts
    306 Views
    No one has replied
  • Gartenbewässerung [gelöst]

    Moved
    8
    0 Votes
    8 Posts
    1k Views
    paul53P
    @Snake1024: funktioniert einwandfrei. ` Dann markiere bitte das Thema im Betreff des ersten Beitrags als [gelöst].
  • Anderen Raspberry ohne IOBroker steuern möglich?

    Moved
    11
    0 Votes
    11 Posts
    2k Views
    W
    @Dutchman: Hmm diese Script Schnipsel dürften JavaScript aber nicht crashen lassen. Was kommt im Log ` Dazu müsste ich das Plugin nochmal installieren. Die Log Anzeige ist bei mir mit MQTT Verbindungsfehlern vollgelaufen - die wiederholende Fehlermeldung bestand nur aus (wortlaut): "Konnte nicht verbinden" und "versuche es nochmal" :oops:
  • Senden an MQTT im (Blockly) Script?

    Moved
    1
    0 Votes
    1 Posts
    505 Views
    No one has replied
  • [Gelöst] variablen Datenpunkt mit Blockly ansteuern

    Moved
    12
    0 Votes
    12 Posts
    7k Views
    C
    @Bongo: Eigentlich brauche ich noch so was: wert.png Nur mit variablen Datenpunkt. Also Datenpunkt-Pfad in einer Variable. Aber ich sehe so etwas nicht. ` Genau das suche ich auch. Schade, dann werde ich das in Java Script schreiben müssen. Cosmo
  • To many errors 95% scanned

    Moved
    7
    0 Votes
    7 Posts
    442 Views
    cashC
    Danke werde Deine Tipps beherzigen
  • [Vorlage] Geofency-Skript: über PHP-Webspace an ioBroker

    Moved
    1
    2 Votes
    1 Posts
    1k Views
    No one has replied
  • [gelöst] Fehler beim https post für ein Formular (Car-Net)

    Moved
    2
    0 Votes
    2 Posts
    642 Views
    S
    Aber ich [emoji3] Problem war, dass das Python-Skript eine Session benutzt, um z.B. Cookies durchzureichen. Wenn man dem Request ein jar: request.jar() mit gibt, dann klappt es… Edit: Hier viewtopic.php?f=35&t=15308 ist das Skript.
  • Briefkasten abfrage mit Script?

    Moved
    6
    0 Votes
    6 Posts
    2k Views
    D
    @tobih83: Nun kann ich mit der Programmfunktion in der CCU aber nicht wirklich das Abfragen wie ich es möchte. ` Das geht aber schon auch mit den Bordmitteln der CCU. https://homematic-forum.de/forum/viewtopic.php?f=31&t=26282&p=262394#p262394! Man kann sogar recht einfach die Einwürfe komplett ohne CCU und ioBroker per Raspi erfassen. https://homematic-forum.de/forum/viewtopic.php?f=18&t=43306#p431626 mein kleines Spaßprojekt dazu. Läuft seit Monaten absolut stabil. Ganz unten in dem Thread habe ich noch ein kleines Video mit meiner vis-Umsetzung gepostet.
  • Vordefinierte Werte

    Moved
    1
    1
    0 Votes
    1 Posts
    582 Views
    No one has replied
  • [GELÖST]Touchscreen aus Standby über exec ?

    Moved
    4
    1
    0 Votes
    4 Posts
    570 Views
    R
    hat sich erledigt… hab es jetzt Hardwaremäßig lösen können über HM Komponenten und geht echt super
  • Js wie in "Puffer" schreiben

    Moved
    36
    0 Votes
    36 Posts
    2k Views
    S
    nach sehr langem debuggen von node eiscp.js habe ich nun einen weg gefunden die Daten auszufiltern… on('data', function (data) { if(first) { xml = eiscp_packet_extract(data); first = false; var result = iscp_to_command(xml); result.iscp_command = xml; result.host = config.host; result.port = config.port; result.model = config.model; } else { xml = xml + data.toString('ascii', 18); // evtl. data.toString() ? self.emit('debug', util.format("DEBUG (XML) command %s", xml)); var result = iscp_to_command(xml); result.iscp_command = xml; result.host = config.host; result.port = config.port; result.model = config.model; if(xml.indexOf('') != -1) { self.emit('data', result); first = true if (typeof result.command !== 'undefined') { if (Array.isArray(result.command)) { result.command.forEach(function (cmd) { self.emit(cmd, result.argument); }); } else { self.emit(result.command, result.argument); } } } } if(result.command !== 'receiver-information' | result.command !== 'net-usb-list-info-allitems') { first = true; self.emit('debug', util.format("DEBUG (received_data) Received data from %s:%s - %j", config.host, config.port, result)); self.emit('data', result); // If the command is supported we emit it as well if (typeof result.command !== 'undefined') { if (Array.isArray(result.command)) { result.command.forEach(function (cmd) { self.emit(cmd, result.argument); }); } else { self.emit(result.command, result.argument); } } } }); da es nur zwei commands gibt, die eine xml als Anwort erhalten sollte das eigendlich funktionionieren. das ist sicher nicht der eleganteste Weg aber so komme ich auf jedenfall erst einmal weiter… (hoffe) ich
  • [gelöst] Verzöget Schalten

    Moved
    5
    0 Votes
    5 Posts
    663 Views
    T
    Perfekt, danke fürs Helfen ! Gruß Thomas
  • [GELÖST]Blocky Tür auf/zu Meldung Telegra

    Moved
    7
    2
    0 Votes
    7 Posts
    769 Views
    M
    Super :D :D Danke so funktioniert es wunderbar ! Ich sehe ich muss mich unbedingt in das Thema Blocky einlesen… Aber trotzdem ist es schön zwischendurch einen Erfolg zu bekommen :) auch mit Hilfe von anderen Usern ... :D
  • [GELÖST] JSON String für Arduino aus ioBroker Objekten erstellen

    Moved
    2
    0 Votes
    2 Posts
    669 Views
    rudikxR
    Ich hab die Lösung falls es jemanden interessiert ;) [ { "id": "5ec56b41.f215c4", "type": "serial out", "z": "aca75de6.d3a82", "name": "Pool", "serial": "c6e3ab46.9b7588", "x": 1417.773754119873, "y": 644.7422542572021, "wires": [] }, { "id": "70af1a43.93aee4", "type": "ioBroker in", "z": "aca75de6.d3a82", "name": "Change_KollektorStart", "topic": "admin.0.Eigene.Pool.Change_KollektorStart", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 187.7736053466797, "y": 586.4064445495605, "wires": [ [ "5bd55717.1388d8" ] ] }, { "id": "45d396a5.ecbb98", "type": "ioBroker in", "z": "aca75de6.d3a82", "name": "Change_KollektorStop", "topic": "admin.0.Eigene.Pool.Change_KollektorStop", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 187.02349853515625, "y": 649.0391654968262, "wires": [ [ "5bd55717.1388d8" ] ] }, { "id": "9406678e.0446a8", "type": "debug", "z": "aca75de6.d3a82", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "x": 1431.773494720459, "y": 739.7502040863037, "wires": [] }, { "id": "880909c2.bc7478", "type": "function", "z": "aca75de6.d3a82", "name": "Daten sammel", "func": "out=context.data ||{}\nnode.log(\"start\" + msg.payload);\nnode.log(\"start stored\" + context.data);\ntopic=msg.topic;\nnode.log(topic);\n\nif (msg.payload==\"send\")\n{\n msg.payload=context.data;\n msg.out=\"Sent data to \" +out.house;\n msg.topic=\"pool/settings\";\n context.data=null;\n return [msg];\n}\n\nelse \n{\n out[topic]=msg.payload;\n context.data=out;\n node.log(\"stored\" + context.data);\n return null;\n}\n\nreturn msg;", "outputs": 1, "noerr": 0, "x": 712.0234756469727, "y": 645.0391654968262, "wires": [ [ "c8d42c65.ffb99" ] ] }, { "id": "7c5156c5.da5478", "type": "inject", "z": "aca75de6.d3a82", "name": "", "topic": "pool/settings", "payload": "send", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 587.0234298706055, "y": 1158.0392265319824, "wires": [ [ "880909c2.bc7478" ] ] }, { "id": "5bd55717.1388d8", "type": "change", "z": "aca75de6.d3a82", "name": "", "rules": [ { "t": "change", "p": "topic", "pt": "msg", "from": "admin/0/Eigene/Pool/Change_", "fromt": "str", "to": "", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 474.02344512939453, "y": 773.0391502380371, "wires": [ [ "880909c2.bc7478" ] ] }, { "id": "63fa34f5.6bc9cc", "type": "ioBroker in", "z": "aca75de6.d3a82", "name": "Change_Automatik", "topic": "admin.0.Eigene.Pool.Change_Automatik", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 193.0234375, "y": 523.0390739440918, "wires": [ [ "5bd55717.1388d8" ] ] }, { "id": "cc0f415c.25d71", "type": "ioBroker in", "z": "aca75de6.d3a82", "name": "Change_P2PoolPumpe", "topic": "admin.0.Eigene.Pool.Change_P2PoolPumpe", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 181.0234375, "y": 764.0390625, "wires": [ [ "5bd55717.1388d8" ] ] }, { "id": "18454efa.588f31", "type": "ioBroker in", "z": "aca75de6.d3a82", "name": "Change_PoolSollTemp", "topic": "admin.0.Eigene.Pool.Change_PoolSollTemp", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 185.27333068847656, "y": 818.6717948913574, "wires": [ [ "5bd55717.1388d8" ] ] }, { "id": "4a86fdf1.13acb4", "type": "ioBroker in", "z": "aca75de6.d3a82", "name": "Change_P1SolarPumpe", "topic": "admin.0.Eigene.Pool.Change_P1SolarPumpe", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 174.2732696533203, "y": 709.6717185974121, "wires": [ [ "5bd55717.1388d8" ] ] }, { "id": "39a7e1ea.0064ee", "type": "ioBroker in", "z": "aca75de6.d3a82", "name": "Change_minMessungenAnzahl", "topic": "admin.0.Eigene.Pool.Change_minMessungenAnzahl", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 171.0234375, "y": 930.0390739440918, "wires": [ [ "5bd55717.1388d8" ] ] }, { "id": "630e44a.891eabc", "type": "ioBroker in", "z": "aca75de6.d3a82", "name": "Change_minimaldifferenz", "topic": "admin.0.Eigene.Pool.Change_minimaldifferenz", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 185.27333068847656, "y": 986.6717948913574, "wires": [ [ "5bd55717.1388d8" ] ] }, { "id": "9ba23aa1.01fe68", "type": "ioBroker in", "z": "aca75de6.d3a82", "name": "Change_SollSperTakte", "topic": "admin.0.Eigene.Pool.Change_SollSperTakte", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 194.2732696533203, "y": 870.6717643737793, "wires": [ [ "5bd55717.1388d8" ] ] }, { "id": "c8d42c65.ffb99", "type": "json", "z": "aca75de6.d3a82", "name": "", "property": "payload", "action": "str", "pretty": false, "x": 976.0195693969727, "y": 635.753927230835, "wires": [ [ "a1920200.7f4e4" ] ] }, { "id": "a1920200.7f4e4", "type": "function", "z": "aca75de6.d3a82", "name": "\\n - Line Feed anfügren", "func": "msg.payload = msg.payload+\"\\n\"; \nreturn msg;", "outputs": 1, "noerr": 0, "x": 1170.8906631469727, "y": 710.648458480835, "wires": [ [ "9406678e.0446a8", "5ec56b41.f215c4" ] ] }, { "id": "c6e3ab46.9b7588", "type": "serial-port", "z": "", "serialport": "/dev/ttyUSB0", "serialbaud": "19200", "databits": "8", "parity": "none", "stopbits": "1", "newline": "\\n", "bin": "false", "out": "char", "addchar": false } ]
  • Stromverbrauch "Smartmeter" -> SonOff -> Anzeige Vis

    Moved
    1
    4
    0 Votes
    1 Posts
    761 Views
    No one has replied

312

Online

32.7k

Users

82.5k

Topics

1.3m

Posts