Weiter zum Inhalt

ioBroker Allgemein

29.7k Themen 437.2k Beiträge
Integrationtsplattform für IoT

NEWS

  • Script: Ein Rollladen schaltet nicht

    9
    4
    0 Stimmen
    9 Beiträge
    247 Aufrufe
    T
    @da_woody Ja, Device reboot, und Neustart der Instanzen Shelly und Javascript, aber keine Änderung
  • ioBroker Webserver läuft nicht.

    10
    0 Stimmen
    10 Beiträge
    371 Aufrufe
    Thomas BraunT
    @stefan-falt sagte in ioBroker Webserver läuft nicht.: Jetzt habe ich aber den WebServer aktualisiert. Jetzt gehts wieder facepalm Joh, wie immer: Kiste insgesamt auf Stand halten, dann 'runnt das Süstäm' auch.
  • vis-2 über cloud: Leere Widgets

    4
    2
    0 Stimmen
    4 Beiträge
    480 Aufrufe
    arteckA
    @ammawel sagte in vis-2 über cloud: Leere Widgets: und einiges mehr funktionieren ja nur weil es funktioniert heisst es nicht dass alles geht.. da nicht freigegeben
  • Keine Verbindung vom ESP-01S (Tasmota) zum ioBroker [gelöst]

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    164 Aufrufe
    MartinSUM
    @ralla66 Ich habe gesehen, dass Du den MQTT Adapter im ioBroker benutzt (ich hatte sonoff benutzt, hatte ich irgendwo mal gelesen) Ich habe den "MQTT Broker/Client" benutzt und als Master koniguriert. (dann sieht es auch so aus wie bei sonoff) Zuerst habe ich mir natürlich selber ein Bein gestellt und mich gewundert, dass bei mqtt/0/stat/myESP/Result kein Ergebnis kommt. Naja, man sollte auch an der richtigen Stelle lesen, bei mqtt/0/tele/myESP/Result Wenn man weiss wie das alles funktioniert, ist es eigentlich ganz einfach. Vielen Dank ralla66! VG Martin
  • Daten für Vielflieger sammeln

    6
    0 Stimmen
    6 Beiträge
    307 Aufrufe
    ldittmarL
    Ich habe jetzt ein Skript geschrieben, um alle mögliche Daten eines Reiseziels anzeigen zu können. Vielleicht braucht das noch irgendjemand... //Settings const iCalID = 'ical.5.data.table'; //ID des Terminkalenders im ical Adapter const flightTerm = 'Flug '; //wie heißen die Termine Bsp: Flug New York - Termin als Ganztagstermin über den gesamten Aufenthalt const apiKey = 'xxxxxxxx'; // API Key für weather.visualcrossing.com const weatherIcons = '0_userdata.0/Wetter_Icons' //Link zu den Wetter-Icons - hier gibt es die Sets zum runterladen https://github.com/visualcrossing/WeatherIcons //Create Objects createState("0_userdata.0.Flug.imageURL", '', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.start",'', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.end",'', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.html", '', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.city", '', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.timezone", '', {type: 'string', read: true, write: false}); createState(`0_userdata.0.Flug.cityPopulation`, 0, {type: 'number', read: true, write: false}); createState("0_userdata.0.Flug.country", '', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.countryFullname", '', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.countryPopulation", 0, {type: 'number', read: true, write: false}); createState("0_userdata.0.Flug.countryArea", 0, {type: 'number', read: true, write: false, unit: 'm²'}); createState("0_userdata.0.Flug.capital", '', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.subregion", '', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.flagURL", '', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.coatOfArmsURL", '', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.language", '', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.drivingSide", '', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.currencyCode", '', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.currencyName", '', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.currencySymbol", '', {type: 'string', read: true, write: false}); createState("0_userdata.0.Flug.currencyEuro", 0, {type: 'number', read: true, write: false}); for (let i = 0; i < 7; i++) { createState(`0_userdata.0.Flug.day${i}.tempmax`, 0, {type: 'number', read: true, write: false, unit: '°C'}); createState(`0_userdata.0.Flug.day${i}.tempmin`, 0, {type: 'number', read: true, write: false, unit: '°C'}); createState(`0_userdata.0.Flug.day${i}.humidity`, 0, {type: 'number', read: true, write: false, unit: '%'}); createState(`0_userdata.0.Flug.day${i}.precipprob`, 0, {type: 'number', read: true, write: false, unit: '%'}); createState(`0_userdata.0.Flug.day${i}.snow`, 0, {type: 'number', read: true, write: false, unit: '%'}); createState(`0_userdata.0.Flug.day${i}.cloudcover`, 0, {type: 'number', read: true, write: false, unit: '%'}); createState(`0_userdata.0.Flug.day${i}.uvindex`, 0, {type: 'number', read: true, write: false}); createState(`0_userdata.0.Flug.day${i}.sunrise`, '', {type: 'string', read: true, write: false}); createState(`0_userdata.0.Flug.day${i}.sunset`, '', {type: 'string', read: true, write: false}); createState(`0_userdata.0.Flug.day${i}.icon`, '', {type: 'string', read: true, write: false}); // createState(`0_userdata.0.Flug.day${i}.date`, '', {type: 'string', read: true, write: false}); } const axios = require('axios'); on({id: iCalID, change: "any"}, async function (obj) { const events = obj.state ? obj.state.val : {}; let flightFound = false; let city = ""; let start = ""; let end = ""; let startDE = ""; let endDE = ""; events.forEach(entry => { if (entry.event.includes(flightTerm) && !flightFound) { city = entry.event.replace(/[^a-zA-Z\s-]/g, "").replace("Flug", "").trim().replace(" ", "%20"); start = formatDate(entry._object.start, "YYYY-MM-DD"); end = formatDate(entry._object.end, "YYYY-MM-DD"); flightFound = true; startDE = formatDate(entry._object.start, "DD.MM.YYYY"); endDE = formatDate(entry._object.end, "DD.MM.YYYY"); setState("0_userdata.0.Flug.start",startDE, true); setState("0_userdata.0.Flug.end",endDE, true); } }); if(flightFound){ setState("0_userdata.0.Flug.imageURL", "", true); let imageURL = ''; let country = ''; let link = "https://api.teleport.org/api/cities/?search=" + city; let firstTR = '<tr><td>'; let population = ''; let timeScript = ''; await axios.get(link).then(response => { const result = response.data; link = result["_embedded"]["city:search-results"][0]["_links"]["city:item"]["href"]; }).catch(e => {console.error("City Suche");}) await axios.get(link).then(response => { const result = response.data; population = result["population"]; setState("0_userdata.0.Flug.cityPopulation", population, true); const timezone = result["_links"]['city:timezone']['name']; setState('0_userdata.0.Flug.timezone', timezone, true); timeScript = `<script>function uhrzeit() {document.getElementById('cityTimeSpan').innerHTML = new Date().toLocaleTimeString("de-DE", {timeZone: '${timezone}'});} setInterval(uhrzeit, 900);</script>`; country = result["_links"]["city:country"]["name"]; link = result["_links"]["city:urban_area"]["href"] + "images/"; }).catch(e => {console.error("Country Search");}) await axios.get(link).then(response => { const result = response.data; imageURL = result["photos"][0]["image"]["web"]; setState("0_userdata.0.Flug.imageURL", imageURL, true); }).catch(e => {console.error("Urban Area");}) let currencyCode = ''; let currencySymbol = ''; if(country !== '') { if(country === 'United States') country = "USA"; link = `https://restcountries.com/v3.1/name/${country.replace(" ", "%20")}`; await axios.get(link).then(response => { const result = response.data[0]; setState('0_userdata.0.Flug.capital', result['capital'][0], true); setState("0_userdata.0.Flug.country", result['translations']['deu']['common'], true); setState("0_userdata.0.Flug.countryFullname", result['translations']['deu']['official'], true); setState("0_userdata.0.Flug.countryPopulation", result['population'], true); setState("0_userdata.0.Flug.countryArea", result['area'], true); setState("0_userdata.0.Flug.flagURL", result['flags']['png'], true); setState("0_userdata.0.Flug.coatOfArmsURL", result['coatOfArms']['png'], true); const language = Object.values(result['languages']).join(', '); setState("0_userdata.0.Flug.language", language, true); setState("0_userdata.0.Flug.drivingSide", result['car']['side'], true); setState("0_userdata.0.Flug.subregion", result['subregion'], true); currencyCode = Object.keys(result['currencies'])[0]; setState("0_userdata.0.Flug.currencyCode", currencyCode, true); setState("0_userdata.0.Flug.currencyName", result['currencies'][currencyCode]['name'], true); currencySymbol = result['currencies'][currencyCode]['symbol']; setState("0_userdata.0.Flug.currencySymbol", currencySymbol, true); firstTR += `<img src='${result['flags']['png']}' alt='flag' style='max-width: 50px; height: auto; float: left; margin-right: 10px;'>`; firstTR += `<img src='${result['coatOfArms']['png']}' alt='coatOfArms' style='max-width: 50px; height: auto; float: right; margin-right: 10px;'>`; firstTR += "<div style='text-align: center;'>"; firstTR += `<p><b>Land:</b> ${result['translations']['deu']['official']} <b>Region:</b> ${result['subregion']}</p>`; firstTR += `<p><b>Fläche:</b> ${result['area']} m² <b>Hauptstadt:</b> ${result['capital'][0]}</p>`; firstTR += `<p><b>Einwohner Land:</b> ${result['population']} <b>Einwohner Stadt:</b> ${population}</p>`; firstTR += `<p><b>Sprache:</b> ${language}</p>`; firstTR += `<p><b>Währung:</b> ${result['currencies'][currencyCode]['name']} <b>Fahrspur:</b> ${result['car']['side'] === 'left'?'links':'rechts'}</p>`; }).catch(e => { console.error("Country Data"); }) } if(currencyCode !== '') { link = `https://economia.awesomeapi.com.br/json/last/EUR-${currencyCode}`; log(link); await axios.get(link).then(response => { const result = response.data; log(result); const value = result[Object.keys(result)[0]].bid; setState("0_userdata.0.Flug.currencyEuro", value, true); firstTR += `<p><b>1€ entsprechen:</b> ${value} ${currencySymbol}</p>`; }).catch(e => { console.error("Currency"); }) } firstTR += "</div></td></tr>"; setState("0_userdata.0.Flug.html", "", true); let html = timeScript + "<div style='max-width: 600px; margin: 0 auto;'>"; link = `https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/${city}/${start}/${end}?unitGroup=metric&include=days%2Calerts%2Cevents&key=${apiKey}&contentType=json`; await axios.get(link).then(response => { const result = response.data; city = result.resolvedAddress; setState("0_userdata.0.Flug.city", city, true); html += `<h1 style='text-align: center;'><img style='max-width: 100%; height: auto;' src='${imageURL}' alt='Stadtbild'><span>&#9992;&nbsp;<span>${city}&nbsp;${startDE}&nbsp;-&nbsp;${endDE}</span>&nbsp;&#9992;</span></h1>`; html += "<table border='1' style='width: 100%; border-collapse: collapse;'>"; html += firstTR; html += "<tr><td><h1 style='text-align: center; padding-top:15px;' id='cityTimeSpan'/></td></tr>"; for (let i = 0; i < 7; i++) { const day = result.days[i] || {}; setState(`0_userdata.0.Flug.day${i}.tempmax`, day.tempmax || 0, true); setState(`0_userdata.0.Flug.day${i}.tempmin`, day.tempmin || 0, true); setState(`0_userdata.0.Flug.day${i}.humidity`, day.humidity || 0, true); setState(`0_userdata.0.Flug.day${i}.precipprob`, day.precipprob || 0, true); setState(`0_userdata.0.Flug.day${i}.snow`, day.snow || 0, true); setState(`0_userdata.0.Flug.day${i}.cloudcover`, day.cloudcover || 0, true); setState(`0_userdata.0.Flug.day${i}.uvindex`, day.uvindex || 0, true); setState(`0_userdata.0.Flug.day${i}.sunrise`, day.sunrise || '', true); setState(`0_userdata.0.Flug.day${i}.sunset`, day.sunset || '', true); setState(`0_userdata.0.Flug.day${i}.icon`, day.icon || '', true); setState(`0_userdata.0.Flug.day${i}.date`, formatDate(day.datetime, "DD.MM.YYYY") || '', true); if(day.icon){ html += "<tr><td>"; html += `<img src='./../${weatherIcons}/${day.icon}.png' alt='icon' style='max-width: 50px; height: auto; float: left; margin-right: 10px;'>`; html += "<div style='text-align: center;'>"; html += `<p style='font-weight: bold; margin-bottom: 5px; text-align: right;'>${formatDate(day.datetime, "DD.MM.YYYY")}</p>`; html += "<br/>"; html += `<p><b>Temperatur:</b> ${day.tempmin} - ${day.tempmax} °C <b>Luftfeuchtigkeit:</b> ${day.humidity} %</p>`; html += `<p><b>Regen:</b> ${day.precipprob} % <b>Schnee:</b> ${day.snow} %</p>`; html += `<p><b>Wolkenabdeckung:</b> ${day.cloudcover} % <b>UV-Index:</b> ${day.uvindex}</p>`; html += `<p><b>Sonnenaufgang:</b> ${day.sunrise} <b>Sonnenuntergang:</b> ${day.sunset}</p>`; html += "</div>"; html += "</td></tr>"; } } html += "</table>"; setState("0_userdata.0.Flug.html", html, true); }).catch(e => {console.error("Wetterdaten");}) }else{ setState('0_userdata.0.Flug.start','', true); setState('0_userdata.0.Flug.end','', true); setState('0_userdata.0.Flug.html', '', true); setState('0_userdata.0.Flug.imageURL', '', true); setState('0_userdata.0.Flug.coatOfArmsURL', '', true); setState('0_userdata.0.Flug.city', '', true); setState('0_userdata.0.Flug.timezone', '', true); setState('0_userdata.0.Flug.cityPopulation', 0, true); setState('0_userdata.0.Flug.country', '', true); setState('0_userdata.0.Flug.countryPopulation', 0, true); setState('0_userdata.0.Flug.countryArea', 0, true); setState('0_userdata.0.Flug.countryFullname', '', true); setState('0_userdata.0.Flug.capital', '', true); setState('0_userdata.0.Flug.countryPopulation', 0, true); setState('0_userdata.0.Flug.flagURL', '', true); setState('0_userdata.0.Flug.currencyCode', '', true); setState('0_userdata.0.Flug.currencySymbol', '', true); setState('0_userdata.0.Flug.currencyName', '', true); setState('0_userdata.0.Flug.currencyEuro', 0, true); setState('0_userdata.0.Flug.language', '', true); setState('0_userdata.0.Flug.drivingSide', '', true); for (let i = 0; i < 7; i++) { setState(`0_userdata.0.Flug.day${i}.tempmax`, 0, true); setState(`0_userdata.0.Flug.day${i}.tempmin`, 0, true); setState(`0_userdata.0.Flug.day${i}.humidity`, 0, true); setState(`0_userdata.0.Flug.day${i}.precipprob`, 0, true); setState(`0_userdata.0.Flug.day${i}.snow`, 0, true); setState(`0_userdata.0.Flug.day${i}.cloudcover`, 0, true); setState(`0_userdata.0.Flug.day${i}.uvindex`, 0, true); setState(`0_userdata.0.Flug.day${i}.sunrise`, '', true); setState(`0_userdata.0.Flug.day${i}.sunset`, '', true); setState(`0_userdata.0.Flug.day${i}.icon`, '', true); setState(`0_userdata.0.Flug.day${i}.date`, '', true); } } }); Die Daten sehen dann so aus... [image: 1702022189912-bild1.jpg] Als Adapter braucht man den iCal und man muss im Javascript axios als dep hinzufügen.
  • onvif Fehlermeldung

    1
    0 Stimmen
    1 Beiträge
    130 Aufrufe
    Niemand hat geantwortet
  • Server Cannot start inMem-objects on port 9001:

    70
    0 Stimmen
    70 Beiträge
    7k Aufrufe
    Thomas BraunT
    @alex-smarthome Setz den alexander noch in die Gruppen adm und iobroker sudo usermod -a -G adm,iobroker alexander
  • Ical kann die Lokale *.ics nicht lesen ??

    Verschoben
    8
    2
    0 Stimmen
    8 Beiträge
    319 Aufrufe
    G
    @thomas-braun Danke jetzt funzt das einlesen
  • IoT Adaper - Rollo Funktion für Alexa

    5
    0 Stimmen
    5 Beiträge
    482 Aufrufe
    von.cartmanV
    @heliosfan Aber KNX hat damit nicht zu tun. Ich lege meine DP in IoT Adapter und die sollten von Alexa als Rollo erkannt werden, was nicht der Fall ist.
  • Herkunft "State "mqtt.0.tele.345picX.STATE" unbekannt

    5
    1
    0 Stimmen
    5 Beiträge
    380 Aufrufe
    T
    @thomkast Du kannst dir per Script, das from ins log schreiben lassen.
  • Server Cannot start inMem-objects on port 9001

    429
    0 Stimmen
    429 Beiträge
    106k Aufrufe
    Thomas BraunT
    @alex-smarthome sagte in Server Cannot start inMem-objects on port 9001: im root sagt er Ja, du sollst ja auch nicht als root herumhampeln.
  • Vis Freigabe - Gast-Wlan

    3
    0 Stimmen
    3 Beiträge
    302 Aufrufe
    YodaY
    @codierknecht stimmt ja auch, nur möchte ich halt gern meine erstellt vis meinem Nachbarn zur Verfügung stellen ohne das er Zugang zu meinem Netzwerk hat. Falls da jemand eine Idee hat gern....
  • mit viessmannapi Anwesenheit steuern?

    1
    0 Stimmen
    1 Beiträge
    156 Aufrufe
    Niemand hat geantwortet
  • Datenpunkt, Rolle button, ist das boolean?

    11
    1
    0 Stimmen
    11 Beiträge
    1k Aufrufe
    J
    @ticaki danke
  • Eurotronic Comet WiFi

    8
    0 Stimmen
    8 Beiträge
    3k Aufrufe
    J
    @admina Ich habe dir in deinem Thread dazu eine Frage gestellt, sehe aber, dass du dort nicht mehr aktiv bist. Liest du hier noch mit? Joska
  • History Adapter - exportieren / migrieren nach InfluxDB

    influxdb history exportieren migrieren
    52
    0 Stimmen
    52 Beiträge
    8k Aufrufe
    apollon77A
    @wde Ja, weil scheinbar noch keiner Zeit hatte sich das anzusehen ... Bitte Geduld haben. Wenn du es jetzt geclosed hast machs bitte wieder auf. Closed issues heissen für mich das es erledigt ist.
  • Modbus Adapter, Problem mit Registerauslesen

    modbus adapter holding register mennekes
    4
    0 Stimmen
    4 Beiträge
    178 Aufrufe
    HomoranH
    @ba1ter sagte in Modbus Adapter, Problem mit Registerauslesen: Ich habe einfach den Haken bei mehrere Geräte-IDs zulassen eingefügt und anschließend die Slave-ID von der Adresse 122 auf 2 gesetzt da hätte niemand ohne Infos drauf kommen können
  • Unifi Voucher in Vis anzeigen [gelöst]

    unifi vis
    42
    0 Stimmen
    42 Beiträge
    5k Aufrufe
    FlexerF
    Hallo und guten Morgen, ich habe gerade versucht manuell über den Datenpunkt, nicht über das Script, einen Voucher zu erstellen. Bekomme folgenden Fehler. Hat jemand eine Idee? unifi.0 2023-12-06 09:45:50.853 error Error site default (data): {"meta":{"rc":"error","msg":"api.err.InvalidArgs"},"data":[]} unifi.0 2023-12-06 09:45:50.854 error [createUnifiVouchers site default] error: Request failed with status code 400, stack: AxiosError: Request failed with status code 400 at settle (/opt/iobroker/node_modules/node-unifi/node_modules/axios/lib/core/settle.js:19:12) at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/node-unifi/node_modules/axios/lib/adapters/http.js:570:11) at IncomingMessage.emit (node:events:525:35) at IncomingMessage.emit (node:domain:489:12) at endReadableNT (node:internal/streams/readable:1359:12) at processTicksAndRejections (node:internal/process/task_queues:82:21)
  • shelly plug s 2 gen.

    Verschoben
    9
    0 Stimmen
    9 Beiträge
    697 Aufrufe
    da_WoodyD
    @dukynukem na gerne doch! :) wären nur alle problemchen so einfach gelöst... [image: 1701801189044-pardon.gif]
  • Problem mit Modbus Adapter

    17
    1
    0 Stimmen
    17 Beiträge
    1k Aufrufe
    G
    @homoran Nein, das ist der Wechselrichter. Aber ich habe das Problem gefunden. So was Bescheuertes aber auch. In der Konfiguration des Wechselrichters hat sich was verstellt: [image: 1701790374858-c00f36b5-085d-43d3-b853-bfb912318f48-2fa4a712-27cc-41ac-b482-ad9cf7c2d035_4_5005_c.jpeg] Dort steht Dynamische IP und dazu die falsche statische IP, ausgegraut. Wie die da hin gekommen ist - ich weiß es nicht. Möglicherweise hat der Elektriker was verstellt, als er letztens dran rumgeschraubt hat. Ich hab noch mal zwischen dynamischer und statischer IP gewechselt, dann dynamische IP neu gespeichert und schon geht es wieder. Aaaaaarggghhhh!!!! Sorry Leute dass ich euch Zeit gestohlen hab, es hatte nichts mit dem Adapter zu tun und mit ioBroker schon gar nicht... Auf so einen Fehler in der Konfigurationsoberfläche muss man erst mal kommen. Da sucht man sich dumm und dusselig... :-) Danke an alle, die ihre Zeit geopfert und mir geholfen haben...

557

Online

32.8k

Benutzer

82.8k

Themen

1.3m

Beiträge