Navigation

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

    NEWS

    • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar

    • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?

    • Monatsrückblick – September 2025

    • Profile
    • Following 1
    • Followers 1
    • Topics 63
    • Posts 596
    • Best 21
    • Groups 1

    Atifan

    @Atifan

    22
    Reputation
    131
    Profile views
    596
    Posts
    1
    Followers
    1
    Following
    Joined Last Online

    Atifan Follow
    Pro

    Best posts made by Atifan

    • RE: Wasserzähler - Selfmade

      Ah super, Danke!
      Ja hier ist mein Gehäuse inkl. Halterung.
      Besteht aus 2 Teilen und kann z.B. mit doppelseitigem Montageband zusammengeklebt werden.
      Die Linse der CAM hat genau einen Abstand von 8cm von der Wand, wo der Halter befestigt ist.
      Der Abstand kann aber auch noch einige cm vergrößert werden.
      Ist halt auf meine Örtlichkeiten abgestimmt, sollte aber bei den meisten nutzbar sein.
      Ich habe die CAM dann einfach mit Isolierband am Halter fixiert.
      Es ist eigentlich noch ein Prototyp, aber er erfüllt so auch seinen Zweck, daher habe ich es einfach so gelassen 🐕
      Man muss den Halter eigentlich nur so einstellen, dass die Linse möglichst genau über der Mitte des Zählers sitzt.
      Dann den Halter in der Höhe über der Wasseruhr im optimalen Abstand befestigen.
      Bei mir waren das genau 10cm von der Linse der CAM zur Glasoberfläche der Wasseruhr.
      Dafür muss ggf. die Linse justiert werden, damit das Bild scharf wird.

      ac41ebe2-f227-44b7-9d93-e195c3ed1312-image.png d58cddea-b0e1-4f1d-9165-680cfed9af7d-image.png

      Hier die 3D-Dateien zum Drucken:
      Kamerahalter.stl
      Wandhalter.stl
      Werkzeug_Focus_Linse_einstellen.stl

      posted in Hardware
      Atifan
      Atifan
    • Avatar/Profilbild im IoBroker ändern?

      Hi.
      Habe bei einem Youtube Video gesehn, dass jemand in seinem IoBroker einen anderen Avatar bzw. Profilbild angezeigt hatte, also kann man den ja ändern. Ich finde aber nirgendwo eine Einstellung wo ich das machen kann. Kann mir jemand sagen wie das geht? 🙂
      Danke
      23218a8d-ad2d-4f5e-b5ca-c64eda245dce-image.png

      posted in ioBroker Allgemein
      Atifan
      Atifan
    • RE: Blockly - bestimmter Zeitraum der Ausführung

      Ich glaub ich bin gerade selber darauf gekommen.
      So sollte es denke ich funktionieren oder?

      962c0ccc-e0fc-4581-98f4-a9c542799188-image.png

      posted in Blockly
      Atifan
      Atifan
    • RE: NodeRed Version 1.16.2 Bug

      Hi, es liegt definitiv am NodeRed Update auf Version 1.16.2
      Habe Version 1.13.0 wieder installiert und da funktioniert alles wieder.

      posted in Node-Red
      Atifan
      Atifan
    • RE: [Major Update] SourceAnalytix v0.4.7-beta.0 released !

      Hi, kann man schon sagen wann ca. die Tageswerte wieder implementiert werden (von Mo-So) ?

      posted in Tester
      Atifan
      Atifan
    • RE: Wasserzähler - Selfmade

      Hallo, bin sehr interessiert daran so einen Wasserzähler Sensor nachzubauen und hätte daher einige Fragen.

      1. Geht das mit meinem analogen Wasserzähler der Firma Elster (siehe Bild)
      2. ich habe zufällig ein ESP32CAM hier, bekomme die Kamera aber nicht gedreht bzw. fokussiert. Hat da jemand einen Tipp wie man das einfach hin bekommt oder evtl. einen Tipp für ein Kamera die ich mir bestellen könnte bei der es einfach geht. Ich habe keine originale OV2640 drauf sondern eine XRZ00D1
      3. Gibt es irgendwo eine detaillierte Anleitung wie man vorgehen muss bzw. wie man den Server einrichtet und konfiguriert? Ich würde gerne den Server auf einem Intel NUC laufen lassen.

      Schon mal Danke vorab.

      9cb944dc-13b8-43cf-b710-db9f418bc2af-image.png

      posted in Hardware
      Atifan
      Atifan
    • RE: Script wird nicht ausgeführt

      @bassface sagte in Script wird nicht ausgeführt:

      @atifan
      Also werden Skripte ausgeführt, allerdings nicht zur konfigurierten Zeit?
      Stimmt den deine Systemzeit?

      Per SSH:

      date
      

      Ja war UTC eingestellt, Scipt funktionierte aber 2h später als eingestellt, daher dachte ich natürlich beim Prüfen, dass es nicht funktioniert, weil es ja erst 2h später getriggert wurde.

      Habe jetzt die Zeit umgestellt und es geht. Danke!

      console -> timedatectl set-timezone Europe/Berlin

      posted in Blockly
      Atifan
      Atifan
    • RE: NodeRed Version 1.16.2 Bug

      OK habe es mal auf Github gepostet.
      https://github.com/ioBroker/ioBroker.node-red/issues/87

      atifan created this issue in ioBroker/ioBroker.node-red

      closed NodeRed 1.16.2 -> Alexa devices not working #87

      posted in Node-Red
      Atifan
      Atifan
    • RE: Wasserzähler - Selfmade

      Ich hatte mir ein 3d-Gehäuse erstellt und dort ein kleines Loch vorgesehen, wodurch die LED dann beleuchten kann. Das Loch war aber nur so groß wie die LED selbst, so dass die Ausleuchtung schlecht war, da nur in einem kleinen Winkel ausgeleuchtet wurde. Habe das Loch jetzt größer gemacht, so dass die LED in einem größeren Winkel strahlen kann.
      Der Abstand von dem Objektiv bis zur Wasseruhr ist ziemlich genau 10cm.

      posted in Hardware
      Atifan
      Atifan
    • RE: gelöst - Blockly JSON auslesen und Wert in DP schreiben

      Habs gerade rausgefunden, statt "body.records" einfach nur "records", dann funktioniert es 🙂

      posted in Blockly
      Atifan
      Atifan

    Latest posts made by Atifan

    • RE: 0_userdata.0.lovelace.showIcal.log0.markdown nicht aktuell

      @ticaki Ja es war so, dass mehrere Adapter und Scripte ineinander griffen, deswegen hab ich es jetzt komplett vereinfacht.

      Voher war es so, dass der Ical Adapter die Daten von Google Kalender ausgelesen hat.
      Dann hat der TreasureShedule Adapter die Daten aus nem Ical Datenpunkt gelesen und diese unter 0_userdata.0.Abfallkalender gespeichert.
      Dann hat ein Script die Daten genommen und in einen Datenpunkt zusammengefasst.
      Dann hat ein anderes Script den Datenpunkt vom andern Script genommen und gekürzt, so dass von ca. 8 Abfallterminen nur noch 3 angezeigt werden, und das in einen neuen Datenpunkt geschrieben. Das war dann der Datenpunkt den ich in meinem LovelaceUI angezeigt hab.

      Jetzt macht das alles das eine Script. Es werden nur noch die Daten über Ical von Google gezogen und das Script liest alles und schreibt die neuen Daten in einen Datenpunkt, der dann über LovelaceUI angezeigt wird.

      Alles möglich dank ChatGPT 🙂

      posted in ioBroker Allgemein
      Atifan
      Atifan
    • RE: 0_userdata.0.lovelace.showIcal.log0.markdown nicht aktuell

      Hi, ich weiss zwar nicht warum das oben nicht mehr funktioniert, aber es spielt keine Rolle mehr.
      Ich habe mit Hilfe von ChatGPT ein Script erstellt, das das macht was ich wollte.

      Falls einer ein Müllkalender Script möchte, das er mit Hilfe von LovelaceUI in einem Markdown-Fenster anzeigen kann.
      Hier die funktionsweise.
      Man benötigt nur den Adapter Ical (zum Auslesen eines Google Kalenders in dem die Müllabfuhrtermine hinterlegt sind).
      Außerdem den Adapter LovelaceUI um das Lovelace Dashboard aufzubauen. Dort benötigt man dann noch ein Markdown-Karte für die Anzeige.
      Am Ende sieht das dann so aus:

      93756da5-20ad-4f31-b19a-bd7929502352-grafik.png

      Das Script liest den Datenpunkt "ical.0.data.text" aus und schreibt die Daten um in den Datenpunkt "0_userdata.0.Abfallkalender.Abfalldaten_komprimiert".
      Dieser Datenpunkt muss dann im Markdown-Karte als Quelle angegeben werden.

      2a594cce-42b1-43fe-98a1-3f3a4d45e559-grafik.png

      const TARGET_STATE = "0_userdata.0.Abfallkalender.Abfalldaten_komprimiert";
      const SOURCE_STATE = "ical.0.data.text";
      
      let updateTimeout = null;
      
      // Ziel-State erstellen, falls nicht vorhanden
      if (!existsState(TARGET_STATE)) {
          createState(TARGET_STATE, "", {
              name: "Komprimierte Abfalldaten (HTML, farbig, fett, 4 Zeilen)",
              type: "string",
              role: "text",
              read: true,
              write: false
          }, (err) => {
              if (err) log("Fehler beim Erstellen des Ziel-States: " + err, "error");
              else scheduleUpdate();
          });
      } else {
          scheduleUpdate();
      }
      
      // Hilfsfunktionen
      function formatDateGerman(date) {
          return `${String(date.getDate()).padStart(2,'0')}.${String(date.getMonth()+1).padStart(2,'0')}.${date.getFullYear()}`;
      }
      
      function parseRelativeDate(text) {
          const now = new Date();
          const date = new Date(now);
          const relMatch = text.match(/(Heute|Morgen|Übermorgen|In (\d+) Tagen)/i);
          if (!relMatch) return text;
          const word = relMatch[1].toLowerCase();
          if (word.includes("heute")) date.setDate(now.getDate());
          else if (word.includes("morgen") && !word.includes("übermorgen")) date.setDate(now.getDate()+1);
          else if (word.includes("übermorgen")) date.setDate(now.getDate()+2);
          else if (word.includes("in")) {
              const num = parseInt(relMatch[2],10);
              if (!isNaN(num)) date.setDate(now.getDate()+num);
          }
          return formatDateGerman(date);
      }
      
      // Update-Trigger (Debounce)
      function scheduleUpdate() {
          if (updateTimeout) clearTimeout(updateTimeout);
          updateTimeout = setTimeout(() => {
              updateAbfallkalender();
              updateTimeout = null;
          }, 500);
      }
      
      // Hauptfunktion
      function updateAbfallkalender() {
          try {
              if (!existsState(SOURCE_STATE)) return;
      
              const src = getState(SOURCE_STATE);
              if (!src || !src.val || typeof src.val !== "string" || src.val.trim() === "") return;
      
              const lines = src.val.split(/\r?\n/).filter(l => l.trim() !== "");
              const top4 = lines.slice(0, 4);
      
              const colorMap = { "Biotonne":"green", "Blaue Tonne":"blue", "Gelbe Tonne":"gold", "Restabfalltonne":"black" };
              const muellRegex = /(Biotonne|Blaue Tonne|Gelbe Tonne|Restabfalltonne)/i;
              const result = [];
      
              for (const line of top4) {
                  if (!line) continue;
                  const dateMatch = line.match(/^(Übermorgen|Morgen|Heute|In \d+ Tagen|\d{1,2}\.\d{1,2}\.\d{4})/i);
                  const muellMatch = line.match(muellRegex);
                  if (dateMatch && muellMatch) {
                      const datum = parseRelativeDate(dateMatch[0]);
                      const muell = muellMatch[1];
                      const farbe = colorMap[muell] || "black";
                      const muellColored = `<font color="${farbe}" size="5"><b>${muell}</b></font>`; // Schrift eine Stufe kleiner
                      result.push(`<b><font size="5">${datum} – ${muellColored}</font></b>`); // Datum ebenfalls kleiner
                  }
              }
      
              // Header: Abfallkalender rot, fett, unterstrichen, Schriftgröße eine Stufe kleiner
              const header = `<font color="red" size="6"><b><u>Abfallkalender</u></b></font><br><br>`;
              const body = result.join("<br>");
              const output = header + body;
      
              if (existsState(TARGET_STATE)) setState(TARGET_STATE, output, {ack: true});
      
          } catch(e) {
              log("Fehler in updateAbfallkalender(): " + e, "error");
          }
      }
      
      // Trigger auf Änderungen der iCal-Daten
      if (existsState(SOURCE_STATE)) {
          on({id: SOURCE_STATE, change: "any"}, () => scheduleUpdate());
      }
      
      // Einmal beim Start ausführen
      scheduleUpdate();
      
      
      posted in ioBroker Allgemein
      Atifan
      Atifan
    • 0_userdata.0.lovelace.showIcal.log0.markdown nicht aktuell

      Hallo zusammen,

      ich nutze den Adapter Ical.0 um einen Kalender von Google auszulesen.
      Die Daten zeige ich über Lovelace UI auf meinem Dashboard an.
      Nutze das um anzuzeigen wann die nächsten Mülltonnenentleerungen stattfinden.

      Jetzt habe ich das Problem, dass der Datenpunkt 0_userdata.0.lovelace.showIcal.log0.markdown das letze Mal am 17.10. aktualisiert wurde, daher werden mir nur noch alte Werte angezeigt und meine Daten sind nicht mehr aktuell.
      Ich weiss aber nicht wieso der nicht aktualisiert wird bzw. von welchem Adapter wann der Datenpunkt aktualisiert wird.
      Weiß das evlt. jemand?

      1b8b75da-c47a-46e3-8379-0a56eebd45cb-grafik.png

      posted in ioBroker Allgemein
      Atifan
      Atifan
    • RE: Lovelace - wie Wettervorhersage visualisieren?

      @arteck Ja klar, natürlich der Dienst ist gemeint nicht der Adapter.
      Danke schaue ich mir mal an.

      posted in Visualisierung
      Atifan
      Atifan
    • Lovelace - wie Wettervorhersage visualisieren?

      Hallo,
      ich hatte die ganze Zeit in Lovelace eine Wettervorhersage visualisiert.
      Die Daten kamen über den Adapter "Accuweather".
      Leider ist der Dienst, bzw. die Nutzung der API auf der Webseite mittlerweile kostenpflichtig, daher suche ich eine Alternative, die man auch schön visualisieren kann.
      Bei Accuweather kamen die Daten in IoBroker in verschiedene Datenpunkte und man konnte dann in Lovelace das ganze einfach integrieren und visualisieren.
      Jetzt suche ich eine Alternative mit der man das so oder ähnlich in Lovelace darstellen kann.
      Hat einer Tipps?
      Schonmal Danke im Voraus 🙂

      So sah das in Lovelace aus:
      60d61ac6-a5fd-45c8-9607-7f27a17a5a15-grafik.png

      Hier die Karte:
      ee6def27-c8bf-4b76-9770-3c12b85f865b-grafik.png

      posted in Visualisierung
      Atifan
      Atifan
    • RE: Test Adapter Accuweather 2.x.x

      @thomas-braun Ahso, alles klar, danke 🙂

      posted in Tester
      Atifan
      Atifan
    • RE: Test Adapter Accuweather 2.x.x

      Hallo zusammen,

      bei mir kommt beim Adapter Accuweather seit dem 10.09.25 keine Daten mehr rein.
      Im log kommt folgende Meldung -> siehe Screenshot.
      Hat noch jemand das Problem? Weiß jemand ob das evtl. jetzt kostenpflichtig wurde? Oder warum funktioniert es auf einmal nicht mehr?

      fd9a2f8a-a96a-478c-8185-837186cb26eb-grafik.png

      posted in Tester
      Atifan
      Atifan
    • RE: gelöst - Blockly JSON auslesen und Wert in DP schreiben

      @padrino Jo habs geändert 🙂

      posted in Blockly
      Atifan
      Atifan
    • RE: gelöst - Blockly JSON auslesen und Wert in DP schreiben

      Habs gerade rausgefunden, statt "body.records" einfach nur "records", dann funktioniert es 🙂

      posted in Blockly
      Atifan
      Atifan
    • gelöst - Blockly JSON auslesen und Wert in DP schreiben

      Hallo,
      ich habe ein Python-Script das auf nem Server ausgeführt wird und über nen IR-Lesekopf meine Wärmemengezähler ausliest. Es schreibt die Daten dann über Simple_API in Iobroker in einen Datenpunkt. Das Problem ist es schreibt die Daten als JSON-String und ich muss über ein Blockly Script den Wert rausfiltern den ich haben will.
      Ich hatte ein Blockly das die ganze Zeit funktioniert hat, das Problem ist aber dass sich das Python Script geändert hat und jetzt die JSON-Datei etwas anders aufgebaut ist. Deswegen funktioniert das Auslesen jetzt nicht mehr. Kann mir einer sagen was ich ändern muss? Danke schonmal.

      Hier ein Bild von meinem aktuellen Blockly, das passt aber nur auf die alte JSON und muss irgendwie geändert werden 🙂
      0224aa19-a106-4ab2-82ec-53344f341be7-grafik.png

      Hier ist die JSON-Datei Struktur, wo der rote Wert ausgelesen werden soll.

      {
        "frame_info": {
          "a": "0x0",
          "c": "0x8",
          "start": "0x68",
          "stop": "0x16",
          "crc": "0xde",
          "length": "0x42"
        },
        "header": {
          "status": "0x0",
          "medium": "0x4",
          "access_no": 135,
          "sign": "0x0, 0x0",
          "version": "0x19",
          "identification": "0x80, 0x74, 0x12, 0x52",
          "type": "0x72",
          "manufacturer": "SEN"
        },
        "records": [
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.ENERGY_WH",
            "%(#ff0000)[**value": 159620000,**]
            "unit": "MeasureUnit.WH"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.VOLUME",
            "value": 30628.779000000002,
            "unit": "MeasureUnit.M3"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.VOLUME_FLOW",
            "value": 0,
            "unit": "MeasureUnit.M3_H"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.POWER_W",
            "value": 0,
            "unit": "MeasureUnit.W"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.FLOW_TEMPERATURE",
            "value": 23.400000000000002,
            "unit": "MeasureUnit.C"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.RETURN_TEMPERATURE",
            "value": 23.700000000000003,
            "unit": "MeasureUnit.C"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.TEMPERATURE_DIFFERENCE",
            "value": 0,
            "unit": "MeasureUnit.K"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnit.FABRICATION_NO",
            "value": 80741252,
            "unit": "MeasureUnit.NONE"
          },
          {
            "function": "FunctionType.INSTANTANEOUS_VALUE",
            "type": "VIFUnitExt.CUSTOMER_LOCATION",
            "value": 80741252,
            "unit": "MeasureUnit.NONE"
          },
          {
            "function": "FunctionType.MORE_RECORDS_FOLLOW",
            "type": "None",
            "value": null,
            "unit": "None"
          }
        ]
      }
      
      posted in Blockly
      Atifan
      Atifan
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo