Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Codierknecht

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Profile
    • Following 0
    • Followers 9
    • Topics 66
    • Posts 6542
    • Best 1279
    • Groups 5

    Codierknecht

    @Codierknecht

    Developer Most Active

    Senior Softwareentwickler und -architekt.
    Reisen, Fotografie und alles was mit nerdiger Technologie zu tun hat.

    1586
    Reputation
    321
    Profile views
    6542
    Posts
    9
    Followers
    0
    Following
    Joined Last Online
    Location Willich

    Codierknecht Follow
    Erbsenzähler Developer Pro Starter Most Active

    Best posts made by Codierknecht

    • "Blockly for dummies" ... Starthilfe und Tipps

      Bitte hier nicht antworten
      Dieser Thread soll den blutigen Anfängern in Sachen Blockly ein wenig Starthilfe bieten und helfen, die ersten Hürden zu meistern und die häufigsten Fallstricke zu vermeiden.
      Fragen/Anmerkungen/Änderungen/Ergänzugen bitte ausschließlich hier!

      Dokumentation
      Du bist neu bei Blockly?
      Dann mach Dir die Mühe und schau Dir die Doku an, bevor Du im Forum einen neuen Beitrag eröffnest.
      Die Erfahrung zeigt, dass immer wieder die gleichen "Probleme" behandelt werden.
      https://www.iobroker.net/#de/documentation/logic/blockly.md

      Versuch macht klug
      Es hilft wenig, im Forum nach Hilfe (selbst gegen Bezahlung) für einen speziellen Anwendungsfall zu fragen, ohne dass Du es selbst nicht zumindest versucht hast. Das Forum bietet an der Ecke primär "Hilfe zur Selbsthilfe".
      Wenn Du nicht weiter kommst, kannst Du gerne im Forum nach Hilfestellung fragen. Liefere auf jeden Fall einen aussagekräftigen Screenshot Deines Versuchs mit.
      Bei umfangreichen Scripten kannst Du auch den XML-Export mitliefern. Dann aber bitte in Code-Tags </> gesetzt und idealerweise noch hinter einem Spoiler verborgen.

      Script starten/stoppen/pausieren
      Ein Blockly-Script wird in ioBroker (genau wie ein reines JavaScript) grundsätzlich zunächst erstellt und dann auch gestartet. Danach läuft es dauerhaft und wird (außer in sehr seltenen Ausnahmefällen) nicht gestoppt oder neu gestartet.
      83fbc941-22c0-4a26-a630-daed58a42ae5-image.png
      ACHTUNG: Scripte - egal welcher Art - gehören nur in sehr seltenen Ausnahmefällen in den Ordner "global". Du solltest Dir eine sinnvolle Ordnerstruktur - im Normalfall unterhalb von "common" - ausdenken.

      Namensgebung:
      Die Namen von Scripten sollten keine Leer- oder gar Sonderzeichen enthalten. Das gilt insbesondere für Umlaute.
      Statt einem Leerzeichen solltest Du einen Binde- oder Unterstrich verwenden.
      Diese Regel gilt grundsätzlich auch für Datenpunkte und Variablen!
      Wobei man bei Variablen auch auf den Bindestrich verzichten sollte. Der wird zwar intern in einen Unterstrich gewandelt, aber wenn man später mal in JS programmiert, erzeugt man sich schnell eine Subtraktion.

      Trigger und Zeitpläne
      Alles was auf Ereignisse reagieren bzw. zu bestimmten Zeiten oder zyklisch ablaufen soll, benötigt einen "Trigger" oder "Zeitplan".
      c9ac37b2-90e0-475d-8955-78677fc74a10-image.png
      ACHTUNG: Was außerhalb dieser Blöcke platziert wird, wird genau 1x - beim Start des Script - ausgeführt.
      Mehr dazu hier

      Werte auslesen
      Werte aus Datenpunkten werden (in den meisten Fällen) mit diesem Baustein gelesen:
      346e989c-ec7c-406d-b86c-3ed7af79880c-image.png
      ACHTUNG:
      Wenn der Wert desjenigen DP benötigt wird, der mit dem Trigger überwacht wird, muss der Wert nicht mit dem "Wert von" Baustein gelesen werden.
      Stattdessen verwendest Du diesen Baustein:
      bc7c17d7-bf62-4ec0-a87e-cfa5aab5a43c-grafik.png
      Wenn der Trigger ausgelöst wurde, sind (so ziemlich) alle Eigenschaften des betroffenen DP bereits bekannt.
      Hier nochmal zu lesen ist unnötig und kann zu Fehlern führen.

      ACHTUNG:
      Das hier ist etwas völlig anderes und liefert das komplette Objekt - also den ganzen DP und nicht nur seinen Wert:
      6575a359-2128-4928-8f78-3d513dd0c3b8-image.png

      Mehr dazu hier

      Werte schreiben (Datenpunkte ändern)
      Grundsätzlich gibt es zwei unterschiedliche Wege, einen Wert in einen DP zu schreiben.
      c8e49077-1738-41ab-8aa0-4f024248b67e-image.png
      Steuere
      Dieser Baustein wird für alle DP verwendet, die einem Adapter "gehören". Das gilt auch für Alias-Datenpunkte, die auf einen Adapter-DP zeigen.
      Aktualisiere
      Verwende diesen Baustein nur für eigene DP, die Du unterhalb von 0_userdata.0 selbst angelegt hast.

      Mehr dazu hier

      Variablen
      Variablen dienen dazu, ermittelte oder berechnete Werte für die weitere Verarbeitung vorzuhalten.
      Variablen werden manuell erstellt und sind im gesamten Script gültig.
      f5616d29-ada0-40d8-aeda-d7543ecdc736-image.png
      Variablen sollten überall dort eingesetzt werden, wo ansonsten der Wert aus einem DP mehrfach ausgelesen werden müsste.
      Auch die Les- und Wartbarkeit eines Scriptes lässt sich durch die Verwendung von Variablen deutlich verbessern.
      Insbesondere komplexe Prüfungen werden durch Variablen deutlich besser lesbar und damit verständlicher.

      Mehr dazu hier

      ... to be continued

      posted in Blockly
      Codierknecht
      Codierknecht
    • RE: "Blockly for dummies" ... Starthilfe und Tipps

      Listen

      Hier mal ein halbwegs sinnvolles "real life" Beispiel, was man z.B. mit Listen anstellen kann:

      decc32ad-4229-4acb-ab78-85ebe1d73e15-image.png
      Hier wird eine Liste dazu verwendet, die Tagesmitteltemperatur zu ermitteln.

      Zunächst wird beim Start des Scriptes eine leere Liste erzeugt.

      Der Zeitplan sorgt nun dafür, dass jede Minute die Temperatur aus einem Datenpunkt gelesen und am Anfang der Liste eingefügt wird.
      Das "vorne anfügen" hat den Vorteil, dass Änderungen auch im Objektbaum ersichtlich sind.
      Der ermittelte Mittelwert wird hier nur ausgegeben. Wie man das in einen DP schreibt, ist hier beschrieben.

      Am Ende wird per Zeitplan um 23:59:30 Uhr die Liste wieder geleert, damit am nächsten Tag wieder mit komplett neuen Werten gerechnet werden kann.

      Das Ganze stellt hier nur ganz rudimentär das grundsätzliche Verhalten dar.
      Man kann das je nach den Anforderungen noch abwandeln/ergänzen:

      • Man arbeitet nicht zyklisch per Zeitplan, sondern triggert auf das Temperatur-Objekt
        073541b0-29d4-4132-b4c0-e3961fe8b937-image.png
      • Man arbeitet mit einer festen Anzahl an Werten. Wurde die erreicht, wird die Liste geleert
        aee1cbe5-0c60-4580-b337-271cee9d6c95-image.png

      Hier ins Detail zu gehen, würde eindeutig zu weit gehen.
      Bei besonderen Anforderungen wird Dir sicher im Forum weitergeholfen.

      posted in Blockly
      Codierknecht
      Codierknecht
    • RE: ioBroker Community-Treffen - Vielen Dank

      @David-G

      Dem möchte ich mich gerne anschließen.
      Es war schön, den einen oder anderen Protagonisten auch mal persönlich kennenzulernen.

      Auch dass viele Teilnehmer z.T. sehr lange Anfahrtswege auf sich genommen haben, spricht glaube ich für das Produkt an sich und für diese Community.
      Ich glaube, spätestens bei der abschließenden Fragerunde wurde klar: ioBroker wird für und durch die Community entwickelt. Jeder hat seinen kleinen Anteil daran ... und sei er noch so winzig.
      Also lasst uns das Ganze weiter vorantreiben ... Aufgaben gibt es genug. Nicht nur für das Core-Team und die Adapter-Entwickler, sondern auch für die vielen Tester und hoffentlich viele neue Beitragende zu Doku und anderen Themen.

      Auch von mir vielen Dank an das Team rund um ioBroker und Solingen-Digital für eine rundum gelungene Veranstaltung.

      posted in ioBroker Allgemein
      Codierknecht
      Codierknecht
    • RE: Host-Adapter Anzeige für Betriebssystemupdates

      @sissiwup sagte in Host-Adapter Anzeige für Betriebssystemupdates:

      diese Funktion hat hier aber nix zu suchen

      Eine reichlich subjektive Einschätzung

      sollte zumindest abschaltbar sein

      Geht doch.
      Entweder "Bestätigen und schließen", Updates installieren oder über den Notification-Adapter ausschalten.

      Meldungen zu Sachen, die ioBroker nix angehen

      Auch wieder recht subjektiv.
      Eine ganze Reihe anderer sind - so wie ich - durchaus der Meinung, dass ein ioBroker sich um seinen Unterbau kümmern darf. Und wenn man hier ständig die von @Thomas-Braun benannten Hilferufe aufgrund völlig versumpfter Basissysteme sieht, ist das bei vielen Anwendern auch bitter nötig.

      posted in Einsteigerfragen
      Codierknecht
      Codierknecht
    • RE: 50€: Mach mit bei einer Smarthome Studie mit ioBroker!

      @kisshome sagte in 50€: Mach mit bei einer Smarthome Studie mit ioBroker!:

      Mindestens 3 Smart Home-Geräte, die die Cloud nutzen

      Tja - genau darum verwende ich ioBroker. Nix Cloud, alles lokal 😁

      posted in ioBroker Allgemein
      Codierknecht
      Codierknecht
    • RE: "Blockly for dummies" ... Starthilfe und Tipps

      Berechnungen ohne Blockly: Aliase

      Nicht selten kann man sich viel Programmiererei sparen, wenn man stattdessen Aliase verwendet.
      Damit werden vorhandene Datenpunkte quasi "gespiegelt" und unterhalb von alias.0 im Objektbaum angelegt.
      Die Struktur denkt man sich - wie auch in 0_userdata.0 - selbst aus.

      Der entscheidende Punkt um sich ein Blockly zu sparen: Man kann im Alias auch eine "Konvertierungsfunktion" angeben. Mit dieser wird dann der ursprüngliche Wert (meist von einem Adapter geliefert) mehr oder weniger umgewandelt.

      Alias anlegen
      Hier führen zwei Wege zum Ziel:

      1. Anlegen "von Hand"
        Hier wird - wie auch in 0_userdata.0 - der DP (und vorher ggf. die Ordnerstruktur) im Objektbaum angelegt.
        a065dbcd-b9f7-400e-bec8-8b09c05dcc6d-grafik.png

      2. Noch viel einfacher geht's, indem man mit der echten Maustaste auf den "Original"-DP klickt und dort "Alias erstellen" wählt.
        0aec3593-9b84-48fc-a76c-67c01a83c505-grafik.png

      Im weiteren Verlauf wird Methode 2) beschrieben. Methode 1) funktioniert prinzipiell analog.

      06dae673-95a8-4bf3-82da-37554088ad0a-grafik.png

      • In "ID" wird die Objekt-ID unterhalb von alias.0 festgelegt. Hier kann (durch Punkte getrennt) auch eine sinnvolle Struktur und eine passende ID für den DP vergeben werden. Die resultierende ID wird dann oben gezeigt.
      • In "Beschreibung" kann ein erklärender Text vergeben werden.
      • In "Typ" wird der Typ (Zahl, Zeichenkette, Logikwert usw.) des Ziel-DP festgelegt.
        Der muss nicht zwingend mit dem Typ des Original DP übereinstimmen und hängt von der Konvertierung ab.
      • "Einheit" gibt eine Bezeichnung für die Einheit (m², °C, km/h) mit, die im Objektbaum mit angezeigt wird.
        Die Einheit wird nur im Baum angezeigt und ist nicht Teil des Wertes!
      • In der "Konvertierung" kann bei Bedarf der Eingangswert (mehr oder weniger umfangreich) umgerechnet werden.
        Dabei steckt in der Variablen val immer der Eingangswert aus dem Original-DP.

      Konvertierungsfunktionen
      In der Konvertierung können übliche Berechnungen per JavaScript vorgenommen werden.
      Das ist der Punkt, an dem man sich nicht selten ein komplettes Blockly sparen kann.

      Hier mal eine (unvollständige) Liste mit oft verwendeten Konvertierungen:

      1. Wert aus JSON extrahieren
        JSON.parse(val).energy.power
        JSON.parse(val).months[12].name
      2. Impulse in m³ umrechnen (Gas- oder Wasserzähler)
        val * 0.01
      3. Windgeschwindigkeit von m/s in km/h umrechnen
        val * 60 * 60 / 1000 oder auch val * 3.6
      4. Gleitkommazahlen mit fester Anzahl Nachkommastellen
        Math.trunc(val * 100) / 100 (2 Stellen)
      5. Byte in Gigabyte
        val / 1024 / 1024 / 1024
      6. °C in °F
        val * 9 / 5 + 32

      Auf die gleiche Art können bei beschreibbaren Datenpunkten die umgewandelten Werte wieder in die Form verwandelt werden, die der Adapter erwartet. val repräsentiert hier den zuvor umgerechneten Wert, der im Alias steckt.
      Beispiele:

      1. km/h wieder in m/s umrechnen
        val / 60 / 60 * 1000 oder val / 3.6
      2. Knoten in km/h
        val * 1.852
      3. °F in °C
        (val - 32) * 5 / 9

      Es macht in der Regel keinen Sinn, nur die Schreibkonvertierung zu verwenden. Wenn beim Schreiben konvertiert wird, sollte der Wert vorher auch beim Lesen konvertiert werden.

      .. to be continued

      posted in Blockly
      Codierknecht
      Codierknecht
    • RE: IOBROKER Admin aus versehen gestoppt

      Hinweis an alle nachfolgenden Leser:
      Dieser Beitrag ist über 7 Jahre alt!
      Nicht das jemand auf die Idee kommt, die hier gezeigten Befehle auszuführen.

      Die sind zum größten Teil völlig veraltet!

      posted in ioBroker Allgemein
      Codierknecht
      Codierknecht
    • RE: "Blockly for dummies" ... Starthilfe und Tipps

      Grundsätzliches
      Insbesondere wer von der prozeduralen Programmierung oder einer SPS zu Blockly kommt, muss sich hier neu orientieren und umdenken.
      Im ioBroker werden Programme nicht bei Zeile 1 gestartet und laufen dann bis Zeile xyz nacheinander ab.
      In der Regel "reagieren" Programme (Scripte) nur auf äußere Einflüsse und werden aktiv, wenn ein bestimmtes Ereignis eintritt. Das kann die Änderung eines Datenpunktes oder auch das Erreichen eines bestimmten Zeitpunktes sein.
      Die meiste Zeit "schlafen" die Programme ... solange, bis eines der genannten Ereignisse eintritt.

      Trigger
      Ein Trigger ist eine Ereignisbehandlung. Das kann man sich als eine Art Abonnement vorstellen.
      Tritt das Ereignis ein, wird der Code im Trigger ausgeführt.

      • Will man bei bool'schen Datenpunkten (true/false) nur reagieren, wenn der DP auf true wechselt, verwendet man am besten "ist größer als Letztes".
        Analog dazu lässt sich der Wechsel auf false mit "ist kleiner als Letztes" verarbeiten.
        Hintergrund: Ein true wird intern als 1 und ein false intern als 0 verarbeitet.

      • Echte "Änderungen" am DP prüft man mit "wurde geändert". Datenpunkte werden von den Adaptern gerne mal zyklisch "aufgefrischt". Eine Prüfung auf "wurde aktualisiert" würde dann viel zu häufig den Trigger auslösen.

      Hier ein ganz einfaches Beispiel: Ändert sich der Zustand eines Schalters "SwitchState", wird die Lampe "Licht" mit dem Wert des Schalters (an oder aus) geschaltet.
      Was es mit dem Baustein "Wert" auf sich hat, wird hier erläutert.
      0f43a4de-3c25-4516-8903-7fc3af448ea9-image.png

      ACHTUNG:
      Niemals mehrere Trigger (oder Zeitpläne oder eine Kombination daraus) ineinander verschachteln. Sowas hier funktioniert nicht:

      541d21b1-d16d-4b1a-b08f-f9e926fc90fb-image.png

      Zeitpläne
      Mit einem Zeitplan kann man Dinge zu bestimmten Zeiten oder auch zyklisch alle x-Minuten ausführen lassen.

      • Vermeide den "Wizard", sondern verwende nach Möglichkeit CRON.
        Mit dem Wizard produzierte Zeitpläne funktionieren häufig nicht - zumindest nicht wie gewünscht

      • Vermeide zyklisch Ausführungen alle x-Minuten, wenn die gleiche Aufgabe auch mit einem Trigger ausgeführt werden kann.
        Man muss nicht alle paar Minuten prüfen, ob ein Datenpunkt einen bestimmten Wert angenommen hat. Das belastet das System. Besser ist es, einen Trigger auf den DP zu setzen.

      In diesem einfachen Beispiel wird eine Lampe täglich um 20:00 Uhr eingeschaltet.
      c970b559-26f7-48f1-8243-85843591876f-image.png

      Alles was außerhalb von Triggern oder Zeitplänen hinzugefügt wird, wird nur 1x - beim Start des Scriptes - ausgeführt.
      Damit lassen sich z.B, verwendete Variablen beim Start des Scriptes auf einen definierten Wert setzen.
      Dabei ist es unerheblich, ob der Baustein losgelöst von allen anderen "in der Luft schwebt" oder ob er z.B. oben (oder unten) an einen anderen Baustein angepinnt wird.

      26864d01-e426-49a8-a386-39319fe97cec-image.png

      ACHTUNG: Ein in Blockly erzeugter Zeitplan wird nur 1x beim Start des Scriptes aktiviert.
      Wenn man "variable" Zeitpläne benötigt, die sich z.B. bei Änderungen an einem Datenpunkt ändern sollen, muss man etwas mehr Aufwand treiben.
      Im einfachsten Fall verwendet man einen "Zeitplan aus Zeit-Zustand" Den setzt man auf einen Datenpunkt vom Typ "String (Text)". Ändert man den Inhalt des DP, ändert sich automatisch auch der Zeitplan. Ohne weiteres Zutun.
      01aefdf2-49f8-4b6d-a9d1-b74572414af3-image.png
      Mehr würde allerdings an dieser Stelle zu weit führen. Wenn Du so etwas benötigst, schau in die Doku.

      posted in Blockly
      Codierknecht
      Codierknecht
    • RE: eigene HTML seite via iobroker

      @sven-schumacher sagte in eigene HTML seite via iobroker:

      Nun, es gibt den WEB Adapter, den andere Adapter nutzen können, um Websites auszuliefern. Das kann z.B. VIS sein. Aber auch die Simple REST API scheint WEB zu nutzen?
      Vis ist alt und ich konnte keine gute Einführung dazu finden. Obwohl VIS vermutlich auch eine Lösung für mein Anliegen wäre, die ich nur nicht verstehe. Weder Google noch die Forensuche und auch nicht YouTube oder ChatGPT konnten mir hier helfen, selbst einfachste Grundlagen zu verstehen.

      Ich muss gestehen: Ich habe erst jetzt verstanden, in welche Richtung das hier überhaupt geht.

      Ich bin Entwickler - und die sind von Haus aus faul. Sonst wären sie ja nicht Entwickler geworden.
      Warum also das Rad nochmal neu erfinden, wenn es bereits eine funktionierende Lösung (Vis) gibt, um HTML auszuliefern.
      Im einfachsten Fall schreibt man sein HTML in einen Datenpunkt und lässt das mit 'nem HTML-Widget ausliefern.

      Vielleicht skizzierst Du mal das gewünschte Ergebnis. Am konkreten Fall lässt sich sowas viel besser erklären als mit irgendwelchen hypothetischen Ansätzen.

      Einige Kommentare haben es jetzt gut erfasst, warum ich diesen Rant hier abgelassen habe.

      Ich entschuldige mich für Offtopic ... Das kann die Folge sein, wenn der Frust sich nur genug ansammelt. Ist sicher nicht gut, aber ich bin kein Roboter und mich nerven bestimmte Muster, die in Foren allzu häufig sind und viele Leute ausgrenzen, die es eben nicht genauer formulieren können und dann aufgeben.

      Hier noch meine 5 Cent dazu:
      Bitte immer im Hinterkopf behalten: So ziemlich alle hier (Entwickler wie Helfende im (in fast jedem) Forum) machen das aus Spaß an der Freud ... in ihrer Freizeit - unentgeltlich.
      Und die können nur helfen, wenn:

      • sie das Problem verstanden haben
      • dafür auch eine Lösung kennen

      ... und der um Hilfe suchende sich um einen sachlichen Ton bemüht ... sonst machen die nämlich auch gerne mal "zu".
      Das passiert auch mal ganz schnell, wenn da Hilfe "eingefordert" wird. Hilfe, auf die man bei kostenlos angebotenen Dingen keinesfalls Anspruch erheben kann.

      posted in ioBroker Allgemein
      Codierknecht
      Codierknecht
    • RE: "Blockly for dummies" ... Starthilfe und Tipps

      Werte schreiben (Datenpunkte ändern)
      Um den Wert eines Datenpunktes zu ändern und damit z.B. ein Gerät einzuschalten, stehen grundsätzlich zwei (relativ ähnliche) Bausteine zur Verfügung.

      88d1c85c-de6b-4aef-bd28-98d5ce275aea-image.png

      Steuere
      Diesen Baustein verwendet man, um Datenpunkte zu verändern die einem Adapter "gehören", um z.B. eine Lampe oder einen Schalter zu schalten.
      Im Detail wird damit eine Änderung "ohne Bestätigung" (Ackknowledge) geschrieben. Diese fehlende Bestätigung ist für den Adapter die Veranlassung, etwas zu tun.
      Die allermeisten Adapter reagieren nicht, wenn hier eine Änderung per "Aktualisiere" (mit Bestätigung) geschrieben wird.
      Das gilt im Übrigen auch für Alias-Datenpunkte, die auf den "echten" DP eines Adapters verweisen.

      Aktualisiere
      Dieser Baustein wird zur Änderung eigener Datenpunkte verwendet, die Du unterhalb von 0_userdata.0 selbst angelegt hast.
      Hierbei wird "mit Bestätigung" geschrieben. Damit wird verhindert, dass der Wert im Objektbaum in rot dargestellt wird. In den meisten Fällen also eine lediglich kosmetische Sache.

      posted in Blockly
      Codierknecht
      Codierknecht

    Latest posts made by Codierknecht

    • RE: [gelöst] Grafana - Darstellungsproblem Bar chart

      @ro75 sagte in Grafana 11.6.x / 12.0.2 - Darstellungsproblem Bar chart:

      Da ist eine Lücke und ich kann mir nicht erklären wie diese zustande kommt.

      Das liegt am Zeitstempel.
      Der ist für alle Einträge der beiden Wertgruppen identisch ... bis auf den von 05/2025.
      Da gibt es eine Differenz von genau 1 ms.

      Von Influx habe ich keinen Schimmer, aber ich könnte mir vorstellen, dass man Zeiten auch umrechnen und damit die Millisekunden komplett eliminieren kann.

      posted in Grafana
      Codierknecht
      Codierknecht
    • RE: Zeitplan ?

      @humidor sagte in Zeitplan ?:

      dann macht er 0 Minuten draus

      Nein. Er macht daraus "Bei Minute 0, alle 2 Stunden"

      Soll heißen, um 00:00, 02:00, 04:00 usw.
      Eben zur Minute 0. Du kannst das z.B. auch auf Minute 5 umstellen: 00:05, 02:05, 04:05 ...

      posted in Blockly
      Codierknecht
      Codierknecht
    • RE: Adapter "WLAN-Symbol" grau/durchgestrichen

      @homoran sagte in Adapter "WLAN-Symbol" grau/durchgestrichen:

      läuft die überhaupt via WLAN?
      Ich denke doch die läuft über DECT

      Wohl wahr. Denkfehler meinerseits.

      posted in Einsteigerfragen
      Codierknecht
      Codierknecht
    • RE: Modbus: Solax Hybrid X3 Gen4 schreiben

      So, der neue Konverter läuft.

      Da ich ab morgen erstmal bis Mitte Juli unterwegs bin, wird da nix dran gebastelt.
      Alles weitere erst nach dem Urlaub.

      posted in Einbindung von Geräten
      Codierknecht
      Codierknecht
    • RE: Datenpunkt auslesen & Objekt wahr setzen

      @uli977 sagte in Datenpunkt auslesen & Objekt wahr setzen:

      Ab hier hört es auf mit meinem Verständnis

      Liegt vielleicht daran, dass @paul53 das Ganze anders aufgezogen hat.
      Er triggert auf den Überschuss. Ist der 10 Minuten lang vorhanden, startet die WM (wenn gewünscht).
      Fällt der Überschuss innerhalb der 10 Minuten unter den Grenzwert, wird der Start abgebrochen.

      posted in Blockly
      Codierknecht
      Codierknecht
    • RE: Datenpunkt auslesen & Objekt wahr setzen

      @uli977 sagte in Datenpunkt auslesen & Objekt wahr setzen:

      Deshalb habe ich auch abgefragt, ob der Ladestrom größer 0 ist.

      das heißt, die WM springt nur an, wenn auch gleichzeitig das Auto geladen wird?
      Müsste da nicht heißen "und ChargePower = 0" ???

      posted in Blockly
      Codierknecht
      Codierknecht
    • RE: Datenpunkt auslesen & Objekt wahr setzen

      @uli977 sagte in Datenpunkt auslesen & Objekt wahr setzen:

      Oh je, vielleicht laufe ich lieber wieder mit dem Waschbrett zum Fluß

      Nö - aufgeben ist keine Option 😁

      posted in Blockly
      Codierknecht
      Codierknecht
    • RE: Datenpunkt auslesen & Objekt wahr setzen

      @uli977

      Der Zusammenhang zwischen einer 29188 in "Object257" und dem passenden Programm erfolgt über den Namen des Ordners (Kanals) - nicht über dessen ID.

      Da muss dann noch deutlich mehr Aufwand getrieben werden 😞

      posted in Blockly
      Codierknecht
      Codierknecht
    • RE: Datenpunkt auslesen & Objekt wahr setzen

      @uli977 sagte in Datenpunkt auslesen & Objekt wahr setzen:

      Meine Herausforderung ist

      Nicht nur Deine - auch unsere 😉

      dass je nach Wert im Objekt 257

      Was genau kann dieser DP enthalten?

      Und wie sehen die DP z.B. unterhalb von "Cotton_Cotton_Cotton" aus.

      Die Kunst wird sein, den Wert von "Object 257" in die passende ID zu übersetzen.

      posted in Blockly
      Codierknecht
      Codierknecht
    • RE: Datenpunkt auslesen & Objekt wahr setzen

      @uli977 sagte in Datenpunkt auslesen & Objekt wahr setzen:

      zu 3) so ist es auch, sobald die Maschine startet, wird der Intervall gestoppt (steht weiter unten im Blockly)

      Wenn Dein Intervall das Programm gestartet hat, läuft es aber weiter.
      Du setzt den Wert nicht beim Start des Programms auf false. Das Intervall läuft also weiter, bis der DP (manuell) auf false gesetzt wird.

      Da auf den "AutoStart" getriggert wird, muss man dessen Wert nicht nochmal (2x) lesen. Der Trigger kennt bereits "seinen" Wert.

      posted in Blockly
      Codierknecht
      Codierknecht
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo