logo elektroda
logo elektroda
X
logo elektroda

Nützliche Skripte für Domoticz. DzVents, LUA, Node Red usw.

xury 26940 39
WERBUNG
Treść została przetłumaczona Polnisch » Deutsch Zobacz oryginalną wersję tematu
  • #31 20804762
    Maciek1008
    Niveau 10  
    Es handelt sich um inkrementelle Zähler vom Typ Water.
    IDX des Hauptwasserzählers: 871
    IDX des Gartenwasserzählers: 1146
    IDX des zu berechnenden Wasserzählers: 1164
    Nach der IDX muss das Skript berechnen: 871 - 1146 = 1164
  • WERBUNG
  • #32 21184236
    xury
    Spezialist Hausautomatisierung
    Ein kurzes Beispiel für den NodeRed-Stromfluss, der die Strompreise des aktuellen Tages in Fünfzehn-Minuten-Intervallen abruft.
    https://flows.nodered.org/flow/0b34e3f9d29c55cb969ef8275d245958

    Hinzufügen nach 14 [Minuten]:

    Und hier ist ein Beispiel für das Herunterladen von Daten von der PGNiG-API:
    https://flows.nodered.org/flow/3395fa93044f91d0c41460d9c38d28ff
  • WERBUNG
  • #34 21378916
    Daro1003
    Niveau 33  
    Gibt es eine Möglichkeit, ein Skript zu schreiben, das die Heizung auf der Grundlage der Daten der Photovoltaikanlage und der aktuellen Stromverbrauchsdaten im Haus steuert?
  • WERBUNG
  • #35 21441441
    sznickers
    Niveau 11  
    Hallo @xury, sehr schöner Beitrag. Danke!
    Domoticz speichert die Parameter alle 5 Minuten. Ist es möglich, dies zu ändern, so dass z. B. alle 5 Sekunden eine Speicherung erfolgt? Warum? Ich würde gerne nachts wissen, ob die Sumpfpumpe eingeschaltet ist. Wenn die Aufzeichnung alle 5 Minuten erfolgt, kann dies übersehen werden, d. h. es wird nicht aufgezeichnet. Die Zeit, die die Pumpe für einen Zyklus benötigt, beträgt etwa 1-2 Minuten.
  • #36 21444762
    xury
    Spezialist Hausautomatisierung
    Es ist nicht möglich, den Zeitpunkt des Schreibens in die Datenbank zu ändern, ohne in den Quellcode und die eigene Kompilierung einzugreifen.
    Stattdessen kann man in beliebigen Intervallen in die Influxdb-Datenbank schreiben und diese Daten dann auf Grafana visualisieren.
  • WERBUNG
  • #38 21446908
    xury
    Spezialist Hausautomatisierung
    Hilfreich, ich habe es selbst benutzt. Wenn dein Sensor seine Werte häufig an Domoticz meldet.
  • #39 21447539
    sznickers
    Niveau 11  
    Vielleicht kannst du helfen :) , ich habe einen kleinen Fehler:

    2025-02-19 22:40:00.579 Error: EventSystem: in LCD Falownik Lua all: [string "commandArray = {} ..."]:4: bad argument #1 to 'pairs' (table expected, got nil)
    2025-02-19 22:41:00.471 Fehler: EventSystem: in LCD Inverter Lua all: [string "commandArray = {} ..."]:4: bad argument #1 to 'pairs' (table expected, got nil)
    2025-02-19 22:42:00.522 Fehler: EventSystem: in LCD Inverter Lua all: [string "commandArray = {} ..."]:4: bad argument #1 to 'pairs' (table expected, got nil)
    2025-02-19 22:43:00.544 Error: EventSystem: in LCD Inverter Lua all: [string "commandArray = {} ..."]:4: bad argument #1 to 'pairs' (table expected, got nil)

    Worum geht es mit Paare, Tabelle?
    Ich habe ein Skript erstellt, um Daten vom Sensor an den ESP an das Display zu senden. Das Skript funktioniert, es zeigt an, was es auf dem Display anzeigen soll.

    mein Skript:
    commandArray = {}
    
    -- loop through all the changed devices
    for deviceName,deviceValue in pairs(devicechanged) do
    
       if (deviceName=='L123FW') then
         commandArray['OpenURL']='http://192.168.0.113/control?cmd=LCD,1,1,'..tostring(deviceValue)..'_W'
       end
        if (deviceName=='L123FkWh') then
         commandArray['OpenURL']='http://192.168.0.113/control?cmd=LCD,2,1,'..tostring(deviceValue)..'_kWh'
       end
    
    end
    
    return commandArray

    und so sieht das Skript LUA all Anweisung aus:
    commandArray = {}
    
    print ("All based event fired");
    -- loop through all the devices
    for deviceName,deviceValue in pairs(otherdevices) do
    --    if (deviceName=='myDevice') then
    --        if deviceValue == "On" then
    --            print("Device is On")
    --        elseif deviceValue == "Off" then
    --            commandArray['a device name'] = "On"
    --            commandArray['Scene:MyScene'] = "Off"
    --        end
    --    end
    end
    
    -- loop through all the variables
    for variableName,variableValue in pairs(uservariables) do
    --    if (variableName=='myVariable') then
    --        if variableValue == 1 then
    --            commandArray['a device name'] = "On"
    --            commandArray['Group:My Group'] = "Off AFTER 30"
    --        end
    --    end
    end
WERBUNG