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
    O
    Da ich tandoor nutze und Bring als Einkaufslistenapp (wird auch mit Alexa synchronisiert), hab ich mir ein Script erstellt, welches mit die Tandoor items ins Bring holt - ggf. kann das ja noch jemand gebrauchen: // --- KONFIGURATION --- const tandoorUrl = 'tandoorURL'; const apiToken = 'tandoorAPI-KEY'; const bringListState = 'bring.XXX.saveItem'; // --- Ab hier keine Konfig mehr --- const axios = require('axios'); const syncInterval = 5; // Alle 5 Minuten // --- HAUPTFUNKTION --- async function syncTandoorToBring() { console.log('Tandoor-Sync: Starte Synchronisierung (Bearer-Mode)...'); try { const response = await axios({ method: 'get', url: `${tandoorUrl}/api/shopping-list-entry/`, headers: { 'Authorization': `Bearer ${apiToken}`, 'Accept': 'application/json' }, timeout: 10000 }); // Tandoor liefert Liste oft in .results let data = Array.isArray(response.data) ? response.data : (response.data.results || []); // Nur nicht-erledigte Items filtern const openEntries = data.filter(entry => !entry.completed); if (openEntries.length === 0) { console.log('Tandoor: Keine neuen Einkaufslisten-Einträge gefunden.'); return; } for (const entry of openEntries) { // Logik-Update: Wir prüfen alle Namensfelder von Tandoor let name = ""; if (entry.food_display) { name = entry.food_display; } else if (entry.description) { name = entry.description; } else if (entry.food && entry.food.name) { name = entry.food.name; } else { name = "Unbekannte Zutat"; } let amount = (entry.amount && entry.amount !== 0) ? entry.amount : ""; let unit = entry.unit_display || ""; // Sauber zusammenfügen und unnötige Leerzeichen entfernen let itemName = `${amount} ${unit} ${name}`.replace(/\s+/g, ' ').trim(); console.log(`Tandoor-Sync: Übertrage "${itemName}" zu Bring!`); // 1. In Bring-Adapter schreiben await setStateAsync(bringListState, itemName); // 2. In Tandoor als erledigt markieren await markAsCompleted(entry.id); } console.log('Tandoor-Sync: Synchronisierung abgeschlossen.'); } catch (error) { if (error.response) { console.error(`Tandoor-Sync Fehler (${error.response.status}): ${JSON.stringify(error.response.data)}`); } else { console.error('Tandoor-Sync Netzwerkfehler: ' + error.message); } } } // --- HILFSFUNKTION: ABHAKEN --- async function markAsCompleted(entryId) { try { await axios({ method: 'patch', url: `${tandoorUrl}/api/shopping-list-entry/${entryId}/`, headers: { 'Authorization': `Bearer ${apiToken}`, 'Content-Type': 'application/json' }, data: { completed: true } }); console.log(`Tandoor-Sync: Item ${entryId} in Tandoor abgehakt.`); } catch (error) { console.error(`Tandoor-Sync Update Fehler für ID ${entryId}: ${error.message}`); } } // --- ZEITSTEUERUNG --- schedule(`*/${syncInterval} * * * *`, syncTandoorToBring); // Sofort-Start beim Speichern syncTandoorToBring();```
  • Hilfe für Skripterstellung mit Blockly

    7k 80k
    7k Themen
    80k Beiträge
    M
    Gestern war bei VolMax 3,54V Ladeende 100%, das Entladen stoppt halt dann doch relativ bald wenn ich bei Volmin 3,16V stoppe, aber wird wohl Sinn machen. Damit es ein bisschen hinausgezögert wird habe ich aber aktuell schon von 40% (500W) bis 10% verlaufend das Entladelimmit bis zu nur noch maximal 200W runtergesetzt.
  • Hilfe für Skripterstellung mit Node-RED

    955 13k
    955 Themen
    13k Beiträge
    mickymM
    @Tontechniker Man kann solche Filter aber auch OHNE neue Nodes zu installieren mit einfachen Standard-Switch Nodes realisieren: [image: 1776865319208-af3cab3c-2716-43f4-b7df-7f74e8bf051b-image.jpeg] ggf. einfach nochmal meinen alten Thread anschauen: https://forum.iobroker.net/topic/50086/datum-und-zeitverarbeitung-mit-nodered
  • Roborock bei Abwesenheit, aber nur 1x täglich starten

    5
    0 Stimmen
    5 Beiträge
    356 Aufrufe
    S
    @paul53 Auch eine gute Idee. Werde morgen mal ausprobieren, was ich am besten umgesetzt bekomme. Danke dir.
  • Cronjob immer letzter Tag im Monat

    Verschoben
    24
    0 Stimmen
    24 Beiträge
    7k Aufrufe
    CodierknechtC
    @endurance Nein, das Script startet um 23:30 Uhr und prüft, ob der Tag in 12 Stunden zufälligerweise der 1. ist. Dann ist ja der aktuelle Tag der letzte des Monats und die Verarbeitung soll durchgeführt werden. Laufen muss das Script ja nur vom 28. bis zum 31. - denn nur an diesen Tagen besteht die Chance, dass der nächste Tag der 1. ist.
  • Gelöst: Stur schalten oder lieber vorher IST-Zustand abfrag

    5
    1
    0 Stimmen
    5 Beiträge
    471 Aufrufe
    W
    @paul53 Ich Blindfisch, vor lauter Abfragen hatte ich vergessen, dass ich ja auch abfrage, ob auf Bewegungsmelder gerade überhaupt reagiert werdedn soll oder ich zu nachtschlafender Zeit lieber darauf verzichte. Super, dann ist mir klar, was ich zu tun habe. Ich danke Dir. Und Danke für die Info, dass Adapter auch stur Pakete absenden, wenn es eigentlich nicht nötig wäre. Da habe ich dann doch noch einiges mehr zu optimieren. Gruss, Jürgen
  • Heizungsprogramme mit Google Kalender. (ioBroker + iCal)

    3
    0 Stimmen
    3 Beiträge
    252 Aufrufe
    S
    @nachtfuchs vielen Dank für deine Mithilfe und deine Gedankenastöße. Habe es leider erst heute gesehen das jemand geantwortet hat, muss da wohl noch mal die Benachrichtigungeinstellungen ansehen.
  • IP Cam FTP Bild und Video per Telegram schicken

    3
    0 Stimmen
    3 Beiträge
    976 Aufrufe
    Bastian LahrmannB
    @liv-in-sky Danke für die Hilfe! Ich habe es mir dann doch einfacher gemacht und Motioneye trotzdem angebunden um mir das in der Vis anzuzeigen oder Bilder per Telegram zu schicken. Jetzt muss ich mir nur noch ein Skript bauen um die Dateien, die von Reolink gespeichert werden, automatisch zu löschen, aber ich denke, dass ich das hinbekomme. Gibt da ja auch einige Anleitungen. Danke dir!
  • iObroker restart per script

    5
    0 Stimmen
    5 Beiträge
    620 Aufrufe
    Thomas BraunT
    @dieterb sagte in iObroker restart per script: Warum sollte man das nicht verwenden? Weil für den ioBroker keine root-Rechte benötigt werden und wenn man den dennoch mit root-Rechten anpackt läufst du Gefahr dir das Rechtegefüge zu zerballern. Deswegen macht man das nicht. iob stop iob fix iob start ausführen.
  • Trigger unsubscribe (Verständnisfrage)

    22
    0 Stimmen
    22 Beiträge
    1k Aufrufe
    O
    @paul53 ja klar Script starten und werden von anderen Scripten mit Triggern aufgerufen / gestartet besser ausgedrückt. Wir meinen das selbe.
  • YAHKA: Kein Einbinden der Bridge in Home App möglich

    5
    0 Stimmen
    5 Beiträge
    468 Aufrufe
    I
    @tombox sagte in YAHKA: Kein Einbinden der Bridge in Home App möglich: @invidianer gibt es denn Fehler im log oder im debug log Wie gesagt, es geht wieder! Tatsächlich anscheinend ein Problem zwischen YAHKA und node.js 18.15.0: https://github.com/jensweigele/ioBroker.yahka/issues/403
  • Mennekes Charge Control Wallbox Überschussladen

    3
    1
    0 Stimmen
    3 Beiträge
    426 Aufrufe
    P
    Wow, funktioniert perfekt, vielen vielen Dank!!! So eine einfache Übersicht hätte ich gerne für meine PV Landschaft mit verschiedenen WR.
  • Shelly Plus i4 soll anderen Shelly schalten

    9
    0 Stimmen
    9 Beiträge
    6k Aufrufe
    J
    @da_woody Da es sich um Shelly's der 2. Generation handelt, funktionieren die Befehle scheinbar nicht. Deine Anleitung funktioniert nur, wenn ich einen Shelly der 1. Generation schalten will (z.B. Plug S). Ich bräuchte einen RPC-Befehl für die 2. Generation bitte. Komme mit der API-Beschreibung nicht wirklich klar. Danke trotzdem
  • Best Practise zum Anlegen von Datenpunkten

    3
    0 Stimmen
    3 Beiträge
    347 Aufrufe
    Rene55R
    @paul53 Also grundsätzlich ok, Ergänzung um read und write. Und den Bereich um "native" als gegeben so hinnehmen.
  • [gelöst] Schedule für Monatswechsel triggert täglich

    6
    2
    0 Stimmen
    6 Beiträge
    487 Aufrufe
    G
    @paul53 said in Schedule für Monatswechsel triggert täglich: Nimm besser einen CRON-String: "2 0 1 * *" Mach ich, ist übersichtlicher! Danke
  • JScript-Editor in Blockly zickt rum

    12
    1
    0 Stimmen
    12 Beiträge
    817 Aufrufe
    I
    @gombersiob sagte in JScript-Editor in Blockly zickt rum: Wobei ich selber weniger mit Blockly arbeite. Ich finde JavaScript (besser noch TypeScript) handlicher und übersichtlicher. Finde ich auch, zumindest bei den eintönigen Definitionen für Datenpunkte ist JS knapper und übersichtlicher.
  • An OpenDtu http request senden

    communication
    1
    1
    0 Stimmen
    1 Beiträge
    412 Aufrufe
    Niemand hat geantwortet
  • CPU Temp von Windows PC auslesen? Hotkeys auf PC starten?

    22
    0 Stimmen
    22 Beiträge
    3k Aufrufe
    EddeE
    @mickym Perfekt. So läuft es wunderbar. Vielen Dank.
  • ausgehender Fritzbox-Anruf Wassermelder

    5
    0 Stimmen
    5 Beiträge
    458 Aufrufe
    D
    @djmarc75 said in ausgehender Fritzbox-Anruf Wassermelder: hast Du den Adapter tr064 im Einsatz ? Ja, den habe ich im Einsatz. Wie geht das denn mit dem tr064 Adapter?
  • [GELÖST] Eigene Objekt Einstellung für Sourceanalytix

    5
    3
    0 Stimmen
    5 Beiträge
    325 Aufrufe
    YodaY
    @homoran die Fehler die ich dort finde kommen von der Fritz Steckdosen warum kann ich nicht wirklich nachvollziehen. Es waren aber noch einige andere Fehler vorhanden - die ich beseitigen konnte. Wobei eigentlich kein Fehler mit meinem Objekt direkt zu tun hatten. Keine Ahnung aber nun sind meine neuen Objekte 6-WattVerbrauch-Minus-SolarWatt vorhanden: [image: 1678660220540-ok1.png] Danke dir für den tip mit dem Log - da hatte ich nicht reingeschaut - sind noch andere Fehler um die ich mich mal kümmern müsste .... :-( sourceanalytix.0 2023-03-12 23:20:50.456 info Initialization of 0_userdata.0.Strom.6-WattVerbrauch-Minus-SolarWatt successfully sourceanalytix.0 2023-03-12 23:20:47.274 info Initialising (36 of 36) "0_userdata.0.Strom.6-WattVerbrauch-Minus-SolarWatt" sourceanalytix.0 2023-03-12 23:20:10.286 error Initialization of sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.02_previousWeek failed, check warn messages ! sourceanalytix.0 2023-03-12 23:20:10.286 error Cannot handle calculations for sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.02_previousWeek, check log messages and adjust settings! sourceanalytix.0 2023-03-12 23:20:10.281 error No cost type defined for sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.02_previousWeek, please Select Type of calculation at state setting sourceanalytix.0 2023-03-12 23:20:10.272 error Initialization of sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.01_previousDay failed, check warn messages ! sourceanalytix.0 2023-03-12 23:20:10.272 error Cannot handle calculations for sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.01_previousDay, check log messages and adjust settings! sourceanalytix.0 2023-03-12 23:20:10.271 error No cost type defined for sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.01_previousDay, please Select Type of calculation at state setting sourceanalytix.0 2023-03-12 23:20:10.261 error Initialization of sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.05_currentYear failed, check warn messages ! sourceanalytix.0 2023-03-12 23:20:10.261 error Cannot handle calculations for sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.05_currentYear, check log messages and adjust settings! sourceanalytix.0 2023-03-12 23:20:10.260 error No cost type defined for sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.05_currentYear, please Select Type of calculation at state setting sourceanalytix.0 2023-03-12 23:20:10.202 error Initialization of sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.03_currentMonth failed, check warn messages ! sourceanalytix.0 2023-03-12 23:20:10.201 error Cannot handle calculations for sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.03_currentMonth, check log messages and adjust settings! sourceanalytix.0 2023-03-12 23:20:10.201 error No cost type defined for sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.03_currentMonth, please Select Type of calculation at state setting sourceanalytix.0 2023-03-12 23:20:10.192 error Initialization of sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.02_currentWeek failed, check warn messages ! sourceanalytix.0 2023-03-12 23:20:10.191 error Cannot handle calculations for sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.02_currentWeek, check log messages and adjust settings! sourceanalytix.0 2023-03-12 23:20:10.191 error No cost type defined for sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.02_currentWeek, please Select Type of calculation at state setting sourceanalytix.0 2023-03-12 23:20:10.179 error Initialization of sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.01_currentDay failed, check warn messages ! sourceanalytix.0 2023-03-12 23:20:10.179 error Cannot handle calculations for sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.01_currentDay, check log messages and adjust settings! sourceanalytix.0 2023-03-12 23:20:10.179 error No cost type defined for sourceanalytix.0.fritzdect__0__DECT_087610178347__power.currentYear.consumed.01_currentDay, please Select Type of calculation at state setting sourceanalytix.0 2023-03-12 23:20:04.041 error Initialization of tuya.0.bf8e70a10eeb5baa2aycrz.19 failed, check warn messages ! sourceanalytix.0 2023-03-12 23:20:04.038 error Cannot handle calculations for tuya.0.bf8e70a10eeb5baa2aycrz.19, check log messages and adjust settings! sourceanalytix.0 2023-03-12 23:20:04.038 error No cost type defined for tuya.0.bf8e70a10eeb5baa2aycrz.19, please Select Type of calculation at state setting
  • [GELÖST] clear schedule?

    Gesperrt Verschoben
    9
    0 Stimmen
    9 Beiträge
    4k Aufrufe
    ?
    Eine sehr hilfreiche Antwort von einer sehr intelligenten Person. Was ist das denn denn für eine ulkige Gesellschaft hier ;) Deinen Schliemann kannst du dir sonst wo hinschieben....
  • Auslesen der Viessmann Cloud für Heizung?!?

    Verschoben
    109
    0 Stimmen
    109 Beiträge
    27k Aufrufe
    H
    Ich bin mir nicht ganz sicher, ob ich die Datenpunkte richtig interpretiere. Kann mir jemand sagen ob das stimmt? Kesseltemperatur: viessmannapi.0.216418.0.features.heating.boiler.sensors.temperature.main.properties.value.value Vorlauftemperatur: viessmannapi.0.216418.0.features.heating.boiler.temperature.properties.value.value Die Vorlauftemperatur wird mir in der App von Viessmann allerdings immer um ein paar Grad anders angezeigt. Das verwirrt mich. Außerdem wird mir in der App auch die Abgastemperatur angezeigt (auf der Viessmann-Webseite allerdings nicht). Gibt es hierfür auch einen Datenpunkt im ioBroker?
  • Alias Konvertierungsfunktion: Mehrere Variablen?

    3
    0 Stimmen
    3 Beiträge
    312 Aufrufe
    C
    @paul53 Danke!

607

Online

32.8k

Benutzer

82.8k

Themen

1.3m

Beiträge