Weiter zum Inhalt

ioBroker Allgemein

29.9k Themen 440.1k Beiträge
Integrationtsplattform für IoT

NEWS

  • [gelöst][VIS-2] Kartenwidget um Traccar-Route darzustellen

    16
    0 Stimmen
    16 Beiträge
    532 Aufrufe
    icebearI
    @oliverio Ich arbeite noch dran, im Moment bin grad erstmal dabei meine Route Optionen so anzupassen, das die Route nich aussieht wie eine zick-zack linie
  • Fehler bei Update von vis-icontwo 2.11.6

    54
    0 Stimmen
    54 Beiträge
    1k Aufrufe
    Thomas BraunT
    @Alero sagte: Den brauche ich nicht. ich habe keinen Raspberry Pi im Einsatz Und warum hast du den dann überhaupt installiert? Man hält die Kisten so schlank wie möglich und verzichtet auf jeden unnötigen Krempel. Schmeiß alles raus, was nicht verwendet wird.
  • Pushover Adapter E2EE

    2
    0 Stimmen
    2 Beiträge
    99 Aufrufe
    Marc BergM
    @feichti92 sagte: wo genau ich dafür den Feature-Request stellen kann. Da: https://github.com/ioBroker/ioBroker.pushover/issues
  • ioBroker über Carplay bedienen

    4
    0 Stimmen
    4 Beiträge
    280 Aufrufe
    hg6806H
    Ja schade, ich werde bestimmt keine extra Hardware dafür kaufen, die ich nicht brauche
  • Kostal Smartmeter per modbus auslesen

    105
    0 Stimmen
    105 Beiträge
    25k Aufrufe
    X
    Hi zusammen, da ich den Einsatz von Modbus TCP mit den ganzen Registern eher gescheut habe, habe ich einen KSEM Adapter geschrieben. Falls noch Interesse besteht kann ich ihn gerne mal vorstellen. Aktuell teste ich ihn gerade.
  • Photovoltaik Wechselrichter AiSWEI / Solplanet

    29
    0 Stimmen
    29 Beiträge
    9k Aufrufe
    Johannes MaurerJ
    @Anne ich stehe gerade vor einem ähnlichen Problem, dass ich einen Solplanet ASW 20kH-TH (ASW020K-TH) Wechselrichter auslesen möchte. Leider kann ich das verlinkte Dokument nicht öffnen (passwortgeschützt und Registrierung geht auch nicht). Kannst mir weitere Informationen geben, wie Du die Verbindung herstellen konntest? Bisher habe ich Folgendes versucht: Der Ai-Dongle bietet über seine LAN-/WLAN-Schnittstelle leider keine lokale API (Port 8484 und Modbus TCP Port 502 sind nicht erreichbar, lediglich Port 443 für die Cloud-Anbindung). Ich habe einen USB-RS485-Adapter über ein Ethernet-Kabel an den RJ45-3-Port (Third_485, CN407) des Wechselrichters angeschlossen. Die Modbus-Adresse ist in der App auf 3 konfiguriert. Trotz Tests mit verschiedenen Baudraten (9600, 2400, 19200) und Device-IDs bekomme ich keine Antwort vom Wechselrichter.
  • openKNX: Verliert Verbindung zu Schnittstelle

    28
    0 Stimmen
    28 Beiträge
    2k Aufrufe
    W
    Hab nach wie vor keinerlei Probleme
  • Upnp v0.3.6

    Verschoben
    120
    0 Stimmen
    120 Beiträge
    24k Aufrufe
    Jey CeeJ
    @Kanumouse sagte: Sucht der Adapter standardmäßig via Multicast im Netzwerk? Nein per Broadcast, aber das wird nur verwendet um die Geräte zu finden. Jedes upnp Gerät sendet den sobald es im Netzwerk aktiv ist, heißt der Adapter schaut Aktiv und Passiv nach neuen Geräten. Befehle werden aber immer direkt an das Gerät gerichtet. Daher ist es sehr Unwahrscheinlich das das Problem daher kommt.
  • Tester gesucht: Strompreis- und CO2-Prognose+day ahead

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    124 Aufrufe
    Niemand hat geantwortet
  • Taico Batterie über iobroker auslesen

    3
    0 Stimmen
    3 Beiträge
    473 Aufrufe
    G
    Hallo Stefan, ich stand vor dem gleichen Problem und die Software von Taico hat mich nach nun über einem Jahr Nervenkosten zur "Eigenentwicklung" mit KI Unterstützung gebracht. Hier mein aktuelles Github dazu. Ich habe gestern angefangen und der aktuelle Stand ist schon ordentlich. https://github.com/Gesiima/taico-bms-unleashed/tree/main Die Integration in iobroker läuft einfach per MQTT [image: 1782677953026-e56e6071-e614-4eaa-86ec-c84cbaffc44e-image.jpeg] [image: 1782677970034-eff14f06-e1d0-40c1-8fd6-5b6a326c68db-image.jpeg] [image: 1782678043575-b20b99d0-3cc6-42ff-a2f9-9089b8f31db3-image.jpeg]
  • Erfahrungen mit Alexa+?

    42
    0 Stimmen
    42 Beiträge
    2k Aufrufe
    RoboCopR
    Meine Aqara WSDCGQ11LM Temperature and humidity sensor übernehmen nicht mehr die "aktuellen Temperaturen". Die Sensoren sind in IOT verknüpft, und neue werden nicht mehr in Alexa 2.0 verbunden.
  • VIS-2 - eChart mit dynamischem Zeitfenster

    7
    0 Stimmen
    7 Beiträge
    293 Aufrufe
    fuzzy1955F
    @Norwegen60 sagte: aber ich weiß nicht wie ich dort mehrere Linien auswähle [EDIT] Hast du auch die eCharts v3.1.0? Da geht es über die Datenquellen (Entwurfsansicht). In dem Widget wird dann nur das eCharts -Preset ausgewählt: [image: 1782664738355-8c7e0f71-cb14-4e58-ab67-7fcb71431c3d-image.jpeg] So wird es 1:1 in dem VIS2- eCharts-Widget dargestellt: [image: 1782664499836-b7187064-f0e8-47c9-881d-566c6c9a2aaa-image.jpeg]
  • Matter Adapter und SLZB-MR4U als OBTR

    9
    0 Stimmen
    9 Beiträge
    318 Aufrufe
    apollon77A
    @maloross sagte: @apollon77 sagte: "OPerational Dataset" ... oist auch ein langer Hex-String Innerhalb der BLE-Konfiguration werden im Matter-Adapter vorab WLAN-Einstellungen (kenn ich) und Bluetooth HCI ID (daran bin ich gescheitert) abgefragt. Als Dataset habe ich die Hex-Zahl aus dem MR5u angegeben. Danach war der Matter-Adapter lange Zeit am suchen - nach 5 Minuten habe ich das dann abgebrochen. Dann müsster man log schauen bzw das TLV mal genau checken ob das das richtige ist. Naja in ner woche habich meine Geräte ud ich schaue selbst
  • nach Update kann IOB nicht mehr starten....

    3
    0 Stimmen
    3 Beiträge
    106 Aufrufe
    Thomas BraunT
    @ralle Und wenn der user anleget ist, die Kiste einmal sauber neugestartet wurde schaust du dir den Output von iob diag an. Vermutlich liegt da noch mehr im Argen.
  • TibberLink Adapter

    650
    1 Stimmen
    650 Beiträge
    254k Aufrufe
    C
    @TobW also bei mir wird noch immer kein live Meassurement Wert geliefert. 2026-06-28 10:21:34.627 - info: host.raspberrypi instance system.adapter.tibberlink.0 in version "7.1.3" started with pid 79766 2026-06-28 10:21:39.179 - info: tibberlink.0 (79766) starting. Version 7.1.3 in /opt/iobroker/node_modules/iobroker.tibberlink, node: v22.22.2, js-controller: 7.2.2 2026-06-28 10:21:40.276 - info: tibberlink.0 (79766) Tibber Data API: vehicle polling started every 5 minute(s) 2026-06-28 10:22:39.805 - warn: tibberlink.0 (79766) Error on Tibber feed: Unknown error 2026-06-28 10:22:39.807 - warn: tibberlink.0 (79766) [tibberPulse]: received null liveMeasurement from Tibber feed — skipping 2026-06-28 10:24:39.619 - warn: tibberlink.0 (79766) Error on Tibber feed: Unknown error 2026-06-28 10:24:39.620 - warn: tibberlink.0 (79766) [tibberPulse]: received null liveMeasurement from Tibber feed — skipping 2026-06-28 10:26:39.698 - warn: tibberlink.0 (79766) Error on Tibber feed: Unknown error 2026-06-28 10:26:39.699 - warn: tibberlink.0 (79766) [tibberPulse]: received null liveMeasurement from Tibber feed — skipping 2026-06-28 10:28:40.074 - warn: tibberlink.0 (79766) Error on Tibber feed: Unknown error 2026-06-28 10:28:40.075 - warn: tibberlink.0 (79766) [tibberPulse]: received null liveMeasurement from Tibber feed — skipping 2026-06-28 10:30:39.536 - warn: tibberlink.0 (79766) Error on Tibber feed: Unknown error 2026-06-28 10:30:39.537 - warn: tibberlink.0 (79766) [tibberPulse]: received null liveMeasurement from Tibber feed — skipping 2026-06-28 10:31:39.540 - warn: tibberlink.0 (79766) A feed was disconnected very often. I keep trying to reconnect with incremental delay - Error text sent by Tibber: Disconnected from Tibber feed. Funktioniert der Adapter bei dir? Ich habe den Log-Auszug mal bei github zu dem issue angehängt.
  • echarts: Label um 90° drehen

    echarts
    2
    1
    0 Stimmen
    2 Beiträge
    110 Aufrufe
    M
    @WG25 Das kann man nur mit flexCharts machen. flexCharts installieren Skript in javascript einfügen, HISTORY und DATA_POINT anpassen, Skript starten Aufruf im Browser mit der unteren Adresse (Protocoll und IP anpassen) Beispiel Skript in javascript einfügen Skript für javascript // --------------------------------------------------------- // Einstellungen // --------------------------------------------------------- const HISTORY_INSTANCE = 'history.0'; // Hier den festen Datenpunkt eintragen const DATA_POINT = 'DEIN DATENPUNKT MIT HISTORY'; // Name für den Flexcharts-Aufruf const MESSAGE_NAME = 'verbrauchHistory'; // Anzahl der angezeigten Kalendertage const DAYS = 14; // Ein aggregierter History-Wert pro Tag const STEP_MS = 24 * 60 * 60 * 1000; // Anzahl der Nachkommastellen const DECIMALS = 2; // Diagrammüberschrift const TITLE = `Verbrauch der letzten ${DAYS} Tage`; // --------------------------------------------------------- // Einheit sicher aus common.unit lesen // --------------------------------------------------------- function getDataPointUnit(id) { const object = getObject(id); if (!object) { console.warn(`Das Objekt ${id} wurde nicht gefunden.`); return ''; } if (object.type !== 'state') { console.warn( `${id} ist kein State, sondern vom Typ "${object.type}".` ); return ''; } /* * Reflect.get vermeidet den Typfehler des Editors. * Es wird damit object.common.unit gelesen. */ const unit = Reflect.get(object.common, 'unit'); return typeof unit === 'string' ? unit.trim() : ''; } const UNIT = getDataPointUnit(DATA_POINT); if (UNIT) { console.info( `Einheit von ${DATA_POINT}: ${UNIT}` ); } else { console.warn( `Für ${DATA_POINT} wurde keine Einheit gefunden.` ); } // --------------------------------------------------------- // Zahlenwert deutsch formatieren // --------------------------------------------------------- function formatNumber(value) { const number = Number(value); if (!Number.isFinite(number)) { return ''; } return number.toLocaleString('de-DE', { minimumFractionDigits: DECIMALS, maximumFractionDigits: DECIMALS }); } // --------------------------------------------------------- // Zahlenwert mit Einheit formatieren // --------------------------------------------------------- function formatValue(value) { const formattedNumber = formatNumber(value); if (!formattedNumber) { return ''; } return UNIT ? `${formattedNumber} ${UNIT}` : formattedNumber; } // --------------------------------------------------------- // Flexcharts-Anfrage empfangen // --------------------------------------------------------- onMessage(MESSAGE_NAME, (_httpParams, callback) => { const end = Date.now(); /* * Beginn des ersten angezeigten Tages auf * 00:00 Uhr setzen. */ const startDate = new Date(); startDate.setHours(0, 0, 0, 0); startDate.setDate( startDate.getDate() - (DAYS - 1) ); const start = startDate.getTime(); getHistory( HISTORY_INSTANCE, { id: DATA_POINT, start: start, end: end, /* * Tagesmaximum: * * Geeignet für einen Tageszähler, der während * des Tages hochzählt und nachts zurückgesetzt wird. */ aggregate: 'max', // Ein Wert pro Tag step: STEP_MS, timeout: 10000, // Keine zusätzlichen Werte außerhalb des Zeitraums removeBorderValues: true, // Fehlende Werte nicht künstlich auffüllen ignoreNull: false }, (error, result) => { if (error) { console.error( `History-Fehler bei ${DATA_POINT}: ` + JSON.stringify(error) ); callback( createErrorChart( 'Die History-Daten konnten nicht geladen werden.' ) ); return; } if (!Array.isArray(result) || result.length === 0) { callback( createErrorChart( 'Für den gewählten Zeitraum wurden keine Daten gefunden.' ) ); return; } const historyData = result .filter(item => { const timestamp = Number(item?.ts); return ( Number.isFinite(timestamp) && timestamp >= start && timestamp <= end ); }) .sort((a, b) => { return Number(a.ts) - Number(b.ts); }); if (historyData.length === 0) { callback( createErrorChart( 'Es wurden keine gültigen History-Einträge gefunden.' ) ); return; } const labels = []; const seriesData = []; for (const item of historyData) { const timestamp = Number(item.ts); const date = new Date(timestamp); labels.push( date.toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit' }) ); if ( item.val === null || item.val === undefined || item.val === '' ) { seriesData.push({ value: null, label: { show: false } }); continue; } const value = Number(item.val); if (!Number.isFinite(value)) { seriesData.push({ value: null, label: { show: false } }); continue; } const roundedValue = Number( value.toFixed(DECIMALS) ); /* * Der fertige Beschriftungstext wird direkt * am jeweiligen Datenwert gespeichert. * * Dadurch ist keine JavaScript-Formatterfunktion * innerhalb des ECharts-Objekts erforderlich. */ seriesData.push({ value: roundedValue, label: { formatter: formatValue(roundedValue) } }); } const hasValidValues = seriesData.some(item => { return item.value !== null; }); if (!hasValidValues) { callback( createErrorChart( 'Für die ausgewählten Tage wurden keine Zahlenwerte gefunden.' ) ); return; } const seriesName = UNIT ? `Verbrauch (${UNIT})` : 'Verbrauch'; const option = { backgroundColor: 'transparent', textStyle: { fontFamily: 'Arial, sans-serif', fontStyle: 'normal', fontWeight: 'normal' }, title: { text: TITLE, left: 'center', textStyle: { color: '#000000', fontFamily: 'Arial, sans-serif', fontStyle: 'normal', fontWeight: 'bold', fontSize: 16, textBorderWidth: 0, textShadowBlur: 0 } }, tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' }, textStyle: { fontFamily: 'Arial, sans-serif', fontStyle: 'normal', fontWeight: 'normal' } }, grid: { left: 60, right: 30, // Platz für die senkrechten Beschriftungen top: 120, bottom: 70, containLabel: true }, xAxis: { type: 'category', data: labels, axisLabel: { interval: 0, rotate: 0, hideOverlap: true, color: '#000000', fontFamily: 'Arial, sans-serif', fontStyle: 'normal', fontWeight: 'normal', fontSize: 11, textBorderWidth: 0, textShadowBlur: 0 }, axisLine: { lineStyle: { color: '#000000' } }, axisTick: { alignWithLabel: true, lineStyle: { color: '#000000' } } }, yAxis: { type: 'value', // Einheit automatisch aus dem Datenpunkt name: UNIT, min: 0, nameTextStyle: { color: '#000000', fontFamily: 'Arial, sans-serif', fontStyle: 'normal', fontWeight: 'normal', fontSize: 12, textBorderWidth: 0, textShadowBlur: 0 }, axisLabel: { color: '#000000', fontFamily: 'Arial, sans-serif', fontStyle: 'normal', fontWeight: 'normal', fontSize: 11, textBorderWidth: 0, textShadowBlur: 0 }, axisLine: { show: true, lineStyle: { color: '#000000' } }, splitLine: { lineStyle: { opacity: 0.25 } } }, dataZoom: [ { type: 'inside', start: 0, end: 100 } ], series: [ { name: seriesName, type: 'bar', data: seriesData, barMaxWidth: 35, label: { show: true, // Wert um 90 Grad drehen rotate: 90, // Wert oberhalb des Balkens anzeigen position: 'top', distance: 8, align: 'left', verticalAlign: 'middle', // Schwarze Schrift color: '#000000', fontFamily: 'Arial, sans-serif', fontStyle: 'normal', fontWeight: 'bold', fontSize: 12, // Keine Textumrandung textBorderWidth: 0, textBorderColor: 'transparent', // Kein Texthintergrund backgroundColor: 'transparent', borderWidth: 0, // Kein Textschatten textShadowBlur: 0, textShadowColor: 'transparent', textShadowOffsetX: 0, textShadowOffsetY: 0 }, itemStyle: { borderRadius: [4, 4, 0, 0] }, emphasis: { label: { color: '#000000', fontFamily: 'Arial, sans-serif', fontStyle: 'normal', fontWeight: 'bold', textBorderWidth: 0, textBorderColor: 'transparent', backgroundColor: 'transparent', borderWidth: 0, textShadowBlur: 0, textShadowColor: 'transparent' } } } ] }; callback(option); } ); }); // --------------------------------------------------------- // Fehlerdiagramm erzeugen // --------------------------------------------------------- function createErrorChart(message) { return { backgroundColor: 'transparent', textStyle: { fontFamily: 'Arial, sans-serif', fontStyle: 'normal', fontWeight: 'normal' }, title: { text: 'Flexcharts-Fehler', subtext: message, left: 'center', top: 'middle', textStyle: { color: '#000000', fontFamily: 'Arial, sans-serif', fontStyle: 'normal', fontWeight: 'bold', textBorderWidth: 0, textShadowBlur: 0 }, subtextStyle: { color: '#000000', fontFamily: 'Arial, sans-serif', fontStyle: 'normal', fontWeight: 'normal', textBorderWidth: 0, textShadowBlur: 0 } }, xAxis: { show: false }, yAxis: { show: false }, series: [] }; } Eintrag im Browser https://192.168.178.150:8082/flexcharts/echarts.html?source=script&message=verbrauchHistory&darkmode=auto
  • [gelöst] Neuer Ordner unter Benutzerdaten

    admin ordner erstellen
    3
    1
    0 Stimmen
    3 Beiträge
    126 Aufrufe
    DolomitiD
    Ah, OK. Danke für den Hinweis. Hab nicht dran gedacht bei den Issues zu schauen. Auf meinem Testsystem mit Admin 7.9.10 geht es. Dann warte ich entweder auf die nächste stable oder stell mal kurz um auf beta.
  • goE-Adapter - Phasenumschaltung ?

    16
    1
    0 Stimmen
    16 Beiträge
    471 Aufrufe
    HumidorH
    hatte da Fehler im blockly, aktuell läuft das mit der httpGet Variante.
  • Update auf Node.js 22.x / Webinterface nicht erreichbar

    61
    0 Stimmen
    61 Beiträge
    2k Aufrufe
    Thomas BraunT
    @arnold Versuch es mal mit iob nodejs-update 22 Aber ich vermute, du musst das System neu aufsetzen, weil du da ein 32bit-Setup fährst.
  • Tankerkönig schweigt seit 7.3.26

    11
    0 Stimmen
    11 Beiträge
    597 Aufrufe
    H
    Ich habe gerade mal nachgeschaut, löppt wieder.

409

Online

33.0k

Benutzer

83.4k

Themen

1.3m

Beiträge