Weiter zum Inhalt

Skripten / Logik

16.6k Themen 214.5k Beiträge

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

NEWS

Unterkategorien


  • Hilfe für Skripterstellung mit JavaScript

    3k 49k
    3k Themen
    49k Beiträge
    D
    @mcu Hi, hab heute die drei !!! beim Alexa Skript https://mcuiobroker.gitbook.io/jarvis-infos/jarvis-v3/system-effektprog./jsontable-alexa-horspiele zum Array hinzugefügt aber es wird kein Cover angezeigt und es werden die drei ??? Kids abgespielt. Kannst Du da bitte mal drüber schauen. Danke [image: 1777493818776-bildschirmfoto-2026-04-29-um-22.16.41-resized.png]
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    M
    @Jannik1808 In meiner Doku habe ich ein Script gefunden. Habe es aber nie gebraucht. Weiß also nicht ob es funktioniert. #!/bin/bash export XDG_RUNTIME_DIR=/run/user/1000 WAYLAND_DISPLAY=wayland-0 wlr-randr --output HDMI-A-1 --off
  • Hilfe für Skripterstellung mit Node-RED

    956 13k
    956 Themen
    13k Beiträge
    S
    Hallo Zusammen, ich bin gerade am überlegen, wie ich folgende Aufgabe umsetzen könnte: Ein true an einer (Trigger)Node lässt einen Zähler laufen und setzt einen eigenen Ausgang auf true. Ein false der Trigger Node stoppt den Zähler setzt diesen aber nicht auf false. Ein true lässt den Zähler einfach weiterlaufen... Nach Ablauf der Zeit im Zähler wird der Ausgang des Zählers auf false gesetzt. Mehr soll nicht passieren. Ein separater Eingang am Zähler setzt diesen auf 0 zurück. Was ich damit anfangen möchte: Die Laufzeit der Poolpumpe wird auf eine Mindestlaufzeit von bspw. 4h überwacht -kann aber manuell bedient bei Bedarf länger laufen. Ein Trigger um 00:01Uhr setzt die Laufzeit zurück. Die Zählernode gilt hier als "Anforderung Pumpe wegen Mindestlaufzeit unterschritten". Ich habe noch keine brauchbaren Ideen, wie ich dass sauber und mit wenig Aufwand umsetzen könnte... Vielen Dank und VG Torsten
  • TDS Sensor / EC-Messen Hilfe gesucht

    blockly
    3
    1
    0 Stimmen
    3 Beiträge
    766 Aufrufe
    E
    Nach einigen Stunden basteln habe ich es nun mit einem berry script geschafft den richtigen TDS und EC Wert zu berechnen. Die Grundlage für mein Skript habe ich hier gefunden: https://github.com/arendst/Tasmota/discussions/18046 Dieses habe ich dann noch angepasst, damit man die beiden Werte über MQTT in den iobroker bekommt. Hier das tasmota berry script: Spoiler #- - Analog input driver written in Berry - - Support for TDS (Total Dissolved Solids) Meter Sensor_CQRSENTDS01 - http://www.cqrobot.wiki/index.php/TDS_(Total_Dissolved_Solids)_Meter_Sensor_SKU:_CQRSENTDS01 - Based on TMP117-driver driver by sfromis and TomsTek (https://github.com/TomsTek/tasmota-berry-TMP117-driver) -# class CQRSENTDS01: Driver static sensor_name = "CQRSENTDS01" # sensor name static tds_label = "TDS" # label for temperature in language of preference var tds # global TDS value in PPM var comp_temp # global temperature compensation var voltage # global TDS sensor voltage var prev_voltage var calib_offset var percentage_offset var ec def init() # initialize globals self.tds = 0 self.comp_temp = 25.0 self.voltage = 1.0 self.prev_voltage = self.voltage self.ec = 0.00 self.calib_offset = 176 # Minimale, angezeigte Spannung wenn Sensor nicht im Wasser self.percentage_offset = 0.96 # Abweichung des PPM Wertes. Bsp.: Anzeige 4% zu hoch -> 0.96 # create rules to trigger when TDS sensor voltage updates and temp sensor updates tasmota.add_rule("ANALOG#A5", /value -> self.trigger_voltage(value)) # TDS-Sensor festlegen tasmota.add_rule("DS18B20-1#Temperature", /value -> self.trigger_temp(value)) # Temp-Sensor festlegen end def trigger_voltage(voltage) if voltage != nil self.voltage = voltage - self.calib_offset end # print("voltage:", voltage) end def trigger_temp(temp) if temp != nil if tasmota.get_option(8) == 1 self.comp_temp = 1.0 + 0.02 * (((temp - 32.0) * 0.5555) - 25.0) else self.comp_temp = 1.0 + 0.02 * (temp - 25.0) end end # print("temp:", temp, "comp_temp:", self.comp_temp) end #- calculate TDS & EC value from voltage and temp -# def calc_tds() # to reduce cpu usage, only perform calculation if voltage changes if self.prev_voltage != self.voltage self.prev_voltage = self.voltage var comp_voltage = (self.voltage / 1000.0) / self.comp_temp self.tds = (((133.42 * comp_voltage * comp_voltage * comp_voltage - 255.86 * comp_voltage * comp_voltage + 857.39 * comp_voltage) * 0.5) * self.percentage_offset) self.ec = (self.tds * 2) / 1000 # print("comp_temp:", self.comp_temp, ", comp_voltage:", comp_voltage, ", tds:", self.tds, ", EC:", self.ec) end end #- trigger a read every second -# def every_second() self.calc_tds() end #- display sensor TDS & EC value in the web UI -# def web_sensor() import string if ! self.tds self.tds = 0 self.ec = 0 end var msg = string.format("{s}%s %s{m}%s PPM{e}", "TDS-Sensor", "", self.tds) var msg_ec = string.format("{s}%s %s{m}%s EC{e}", "EC-Sensor", "", self.ec) tasmota.web_send_decimal(msg) tasmota.web_send_decimal(msg_ec) end #- add sensor TDS & EC value to teleperiod -# def json_append() import string if ! self.tds self.tds = 0 self.ec = 0 end var msg = string.format(',"%s":{"%s":%s}', "TDS-Sensor", "TDS", self.tds) var msg_ec = string.format(',"%s":{"%s":%s}', "EC-Sensor", "EC", self.ec) tasmota.response_append(msg) tasmota.response_append(msg_ec) end end cqrsentds01 = CQRSENTDS01() tasmota.add_driver(cqrsentds01) Viele Grüsse Chris
  • Systemair Genius Steuerung über Iobroker -Modbus Http

    2
    1
    0 Stimmen
    2 Beiträge
    124 Aufrufe
    T
    keiner ne Ahnung ?
  • kWh für jeden Monat in ein DP

    3
    1
    0 Stimmen
    3 Beiträge
    223 Aufrufe
    mickymM
    Lass einfach Deinen Monatsdatenpunkt triggern, sprich wenn Du den schreibst, starte ein neues Skript und ermittle den aktuellen oder Vormonat und schreibe den Wert in einen entsprechenden Datenpunkt.
  • Internetzugang sperren

    16
    0 Stimmen
    16 Beiträge
    1k Aufrufe
    S
    @marc-berg said in Internetzugang sperren: @stefan341 Das ginge auch mit dem Adapter "Fb-Checkpresence". [image: 1714313036989-4e23a4c8-8682-4b75-a8d8-f011bb607865-grafik.png] Das entsprechende Gerät kannst du über "disabled" vom Internet trennen, ganz ohne Script. Danke für den Hinweis. So ist es natürlich viel einfacher. …und funktioniert
  • Boiler Relais Steuerung

    5
    0 Stimmen
    5 Beiträge
    350 Aufrufe
    paul53P
    @pv-anlage Wenn das Relais nach 19:00 Uhr ausschalten soll, obwohl die Leistung noch > 3000 W ist: [image: 1714233246925-blockly_temp.jpg]
  • erledigt: mqtt Wert nach Alias (Konvertierungsfunktion)

    javascript
    3
    2
    0 Stimmen
    3 Beiträge
    350 Aufrufe
    S
    @paul53 sagte in Wert aus mqtt in Alias mit Konvertierungsfunktion speichern: JSON.parse(val).MT691.Leistung DANKE!!! das wars!
  • Werte aus JSON in Alias-DP zerlegen

    14
    0 Stimmen
    14 Beiträge
    1k Aufrufe
    L
    @paul53 Ich hatte gehofft, mit dem Logparser komfortabel bestimme Fehlermeldungen des VE-Adapters im Log detektieren zu können. Das generierte JSON dann auf die Fehlermeldung durchsuchen. Mit Hilfe eines Alias. Das wird aber einfach nichts!
  • [gelöst] kwh berechnen und fortlaufend speichern

    Verschoben
    57
    0 Stimmen
    57 Beiträge
    19k Aufrufe
    paul53P
    @socialbeat sagte: Hast du ne Idee was bei mir falsch laufen könnte? Nein. Der Anfangswert war 0? Die Leistung ist immer positiv (>= 0)? Übrigens: kWh ist keine Leistung, sondern Energie. Du hast den Datenpunkt manuell ohne Maßeinheit erstellt? Weshalb verwendest du nicht "0_userdata.0" für eigene Datenpunkte?
  • Javascript adapter RAM wächst

    10
    0 Stimmen
    10 Beiträge
    434 Aufrufe
    F
    ich habe jetzt einen Großteil des Codes in ein Try Catch Statement gepackt, sodass bei einem Fehler immer der Browser geschlossen wird. Seit dem gibt es keine "Probleme" mehr.
  • MQTT String verändern [NSPanel mit Tasmota]

    1
    0 Stimmen
    1 Beiträge
    143 Aufrufe
    Niemand hat geantwortet
  • [GELÖST] SSH-Befehle per Blockly absetzen

    8
    0 Stimmen
    8 Beiträge
    1k Aufrufe
    T
    Herzlichen Dank für eure Hilfe! Das Script von @falke69 hat mir sehr geholfen und auf dieser Grundlage funktioniert es jetzt. Ein Problem hatte ich unterdessen noch beim Switch gefunden: Hier war die IP einem falschen Interface zugewiesen und daher war der Switch darüber gar nicht zu erreichen, bzw. nur per MAC über upd ansprechbar/konfigurierbar. Zusätzlich dazu habe ich den ioBroker in das gleiche VLAN umgezogen wie das NAS, weil WoL ja nicht netzwerkübergreifend geht - das hatte ich gar nicht bedacht. Hat aber auch nicht geholfen, da der ioB in Docker läuft und daher eh ein anderes Netzwerk hat. Ein SSH-Key war hier mit dem Script gar nicht nötig, zumindest in Bezug auf diesen Switch. Jetzt hab ich schon mal eine funktionierende Grundlage und kann damit weiter testen und Funktionen ausarbeiten. Beste Grüße Marian
  • Benachrichtigung wenn Zeitstempel älter als ist …

    5
    0 Stimmen
    5 Beiträge
    448 Aufrufe
    C
    @paul53 thx
  • Blockly: Wert aus Datenpunkt in anderen Datenpunkt schreiben

    7
    0 Stimmen
    7 Beiträge
    585 Aufrufe
    F
    @paul53 ja, da ist dein JS Snippet schon schöner. Bin darin zwar kein Profi, aber diese 3 Zeilen verstehe ich noch. Vielen Dank für deine Unterstützung.
  • Raspberry über ip Adresse anwählen ohne Localhost

    7
    0 Stimmen
    7 Beiträge
    572 Aufrufe
    HomoranH
    @fummel sagte in Raspberry über ip Adresse anwählen ohne Localhost: Würde das einen sinn machen? dazu doch erst ei mal die Fakten bitte! wie bereits geschrieben geht localhost nur auf dem Rechner auf dem auch iob läuft. Das wäre dann nicht der Raspi mal eben mit einem Linux Befehl, der für einen Pi gedacht war installiert man nichts unter Windows. Was willst du also plattmachen?
  • Blockly Wert schreiben mit Verzögerung

    blockly
    6
    1
    0 Stimmen
    6 Beiträge
    542 Aufrufe
    F
    @codierknecht Danke! Jetzt hab ich auch die Änderung erkannt
  • [ALEXA]Raum erkennung und befehl ausführung in passenden Raum

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    2k Aufrufe
    F
    @djmarc75 Super . Vielen lieben dank . Das hat wirklich geholfen . Bin eigentlich immer auf den neusten stand ,aber die wurde mir nicht angeboten :(
  • Stromverbraucher: zusammenzählen

    21
    3
    0 Stimmen
    21 Beiträge
    906 Aufrufe
    paul53P
    @mico sagte: Vom Typ Zeichenkette String also nicht Boolan Sie müssen vom Typ "Zahl" sein. @mico sagte in Stromverbraucher: zusammenzählen: Alexa dann schon gleich an der richtigen Stelle ein Komma in der Zahl setzt Von Alexa habe ich keine Ahnung.
  • Benachrichtigung aus Blockly nicht nach Zeitplan

    16
    1
    0 Stimmen
    16 Beiträge
    1k Aufrufe
    M
    Hallo @rumper! Kannst du dein endgültiges Blockly hier zum Nachbau einstellen? Das ist eine gute Idee, die ich bei mir auch gern umsetzen will. Danke dir!
  • Script parallel & unabhängig laufen lassen.

    Ungelöst
    2
    0 Stimmen
    2 Beiträge
    181 Aufrufe
    D
    @arno-l du kannst sowohl das script dopelln, als aucb 2 instanzen laufen lassen. Aber ich vermute eher, dass du in deinem script noch irgenwo hard codiert entweder auf dieselbe quelle oder in dasselbe ziel schreibst. Im prinzip brauchst du das script auch nur einmal und kapselst das in ein object, bzw. Closure. Denn der code ist ja identisch, aber du willst quasi 2 verschiedene instanzen haben, also die internen Variablen kapseln. Also mach ein closure drum und rufe es dann 2 mal auf, mit den jeweils unterschiedlichen parametern. Wenn du dich damit beschäftigst, findest du auch ggf. Die stellte, wo noch was hard codiert ist
  • gelöschtes Script spuckt noch rum

    6
    0 Stimmen
    6 Beiträge
    337 Aufrufe
    BananaJoeB
    @mindthegap und im JavaScript Adapter kannst du einstellen das die Skripte ins Dateisystem gespiegelt werden sollen. Dann kannst du auch dort suchen (und sogar die Skripte ändern)

556

Online

32.8k

Benutzer

82.8k

Themen

1.3m

Beiträge