Skip to content

Einsteigerfragen

nur für Fragen von Einsteigern / Newbies / Noobs

4.0k Themen 51.6k Beiträge

NEWS

Unterkategorien


  • Was kann es Einsteigern leichter machen?

    37 306
    37 Themen
    306 Beiträge
    B
    Danke an alle. Das war genau das, was ich suchte. MfG' Bernd
  • Grundfragen zur Installation von ioBroker

    640 11k
    640 Themen
    11k Beiträge
    paul53P
    @wak Unter "0_userdata.0" erstellt man nur eigene Datenpunkte, idealerweise mit der gleichen ID-Struktur wie unter "alias.0".
  • Grundfragen bei Anbindung von SmartHome Geräten

    1k 12k
    1k Themen
    12k Beiträge
    B
    moin, rs485/lan auf beiden seiten und das ganze mit dlan dann verbinden ?!?
  • Grundfragen zur Erstellung von automatischen Abläufen

    205 3k
    205 Themen
    3k Beiträge
    H
    @Asgothian Freut mich das du dir nachts über meine Probleme gedanken machst. So sieht es jetzt final aus und ja es passt jetzt alles. [image: 1768896384370-ad44aab5-3095-4743-a6b7-b350889f7da1-image.png] Ich kann die gruppen gegenseitig ein / ausschalten. Egal ob am Lichtschalter, mit der Visualisierung oder mit Alexa ;) Hier beispielhafterweise nochmal ein Script. Passend zu meinen obersten Scripten habe ich jetzt noch Zigbee Gruppen angelegt . Somit sind die Scripte wesentlich schlanker geworden. [image: 1768896228890-cfb3e59e-bc65-448e-be3b-d6a49e14f4b5-image.png]
  • Bewässerung mit Schleife

    9
    0 Stimmen
    9 Beiträge
    401 Aufrufe
    A
    @paul53 said in Bewässerung mit Schleife: Ich bevorzuge auch die Version mit den Timeouts in einer Funktion. Prima! Nochmals vielen Dank!
  • Playlist von Festplatte

    51
    0 Stimmen
    51 Beiträge
    6k Aufrufe
    Andre LiebgottA
    @icebear Installation HEOS-Adapter installieren und starten (https://github.com/withstu/ioBroker.heos) HTML-State "0_userdata.0.heos.browse_result_html" als Zeichenkette anlegen (alternativ eigener State, dann in der Konfiguration anpassen) dieses Script im Admin unter Skripte als neues Script hinzufügen. dieses Script starten in der ioBroker-vis ein basic-string(unescaped)-Widget in einem View einfügen, den HTML-State zuweisen View ausführen [image: 1752773658722-datapuunkt.jpg] ------------------- KONFIGURATION ------------------- */ // Ziel-State, in welchem das interpretierte HTML abgelegt wird. Der State muss vorher manuell angelegt worden sein const STATE_BROWSE_RESULT_HTML = '0_userdata.0.heos.browse_result_html'; // play-Befehle werden immer via broadcast an alle Player gesendet, ist dieses nicht gewünscht, so können in dem hier // anzugegebenen State die PIDs der Player angegeben werden, welche die play-Befehle erhalten sollen. Lässt sich // z.B. gut mit dem Widget jqui-container-HTML-View "Setze Objekt-ID" nutzen. // Im State sind die Player-PIDs durch , getrennt angebbar, der State muss vorher manuell angelegt worden sein const STATE_BROWSE_RESULT_PLAYERS = '0_userdata.0.heos.browse_result_player'; // Font und Rahmen-Basisfarbe, bei dunklem Hintergrund durch '255,255,255' ersetzen const HEOS_FONT_COLOR = '0,0,0'; // wenn es sich bei der HEOS Instanz nicht um die 0. handelt, bitte anpassen const HEOS_INSTANCE = '0'; // sollen die Navigationsergebnisse beim Starten des Scripts bereits untersucht werden? const BUILD_HTML_AT_SCRIPTSTART = true; ------------------- Script ------------------- */ const STATE_BROWSE_RESULT = `heos.${HEOS_INSTANCE}.sources.browse_result`; const STATE_COMMAND = `heos.${HEOS_INSTANCE}.command`; const STATE_PLAYERS = `heos.${HEOS_INSTANCE}.players`; function buildHTML( data ) { // sind players angegeben, so wird das globale command-State durch die Player-command-States ersetzt und // "player/" wird aus dem command selbst entfernt function buildOnClick(cmd,cmdState,players,doPatch) { let cmds = [cmdState]; let onClick = ''; // wenn nur ein player angesprochen werden soll, dann command-state auf den des players setzen // und command anpassen 'player\' entfernen if (doPatch && players!='') { cmds = players.split(','); for (let j=0; j<cmds.length; j++ ) cmds[j] = `${STATE_PLAYERS}.${cmds[j]}.command`; cmd = cmd.substr(cmd.indexOf('/',cmd)+1,9999); } for (let j=0; j<cmds.length; j++ ) onClick += `servConn.setState('${cmds[j]}','${cmd}');`; return onClick; } let html = "Sorry, no data!" if(data){ let command = getState(STATE_COMMAND).val; let playerIDs = ''; if (existsState(STATE_BROWSE_RESULT_PLAYERS)) playerIDs = getState(STATE_BROWSE_RESULT_PLAYERS).val; // Playernamen ermitteln let playerNames = 'Alle'; if (playerIDs!='') { let players = playerIDs.split(','); playerNames = ''; for (let i=0; i<players.length; i++) { if (existsState(`${STATE_PLAYERS}.${players[i]}.name`)) playerNames += (playerNames==''?'':', ') + getState(`${STATE_PLAYERS}.${players[i]}.name`).val; } } // subtitle soll Anzahl enthalten let subtitle = ''; if (data.parameter.count) subtitle += `${data.parameter.count} Einträge`; else if (data.payload) subtitle += `${data.payload.length} Einträge`; if (data.parameter.range) subtitle += ` (${data.parameter.range.replace(',','-')})`; if (subtitle!='') subtitle = `<div class="heos-head-subtext">${subtitle}</div>`; // globale Funktionen wie Übersicht/Back/... in der Kopfzeile darstellen let controls={'load_next':{'sym':'&rsaquo;', 'onClick':'' }, 'load_prev':{'sym':'&lsaquo;', 'onClick':'' }, 'play_all': {'sym':'&blacktriangleright;', 'onClick':'' }, 'back': {'sym':'&blacktriangle;', 'onClick':'' }, 'sources': {'sym':'&equals;', 'onClick':'' }, 'getHTML': function(key) { return `<div class="heos-head-btn ${controls[key].onClick!=''?'heos-clickable':''}" ${controls[key].onClick}> ${controls[key].sym} </div>`; } }; for (let i = 0; i < data.payload.length; i++) { let payload = data.payload[i]; if (payload.type=="control" && controls.hasOwnProperty(payload.name)) { let onClick = ''; for (let key in payload.commands) onClick = buildOnClick(payload.commands[key],STATE_COMMAND,playerIDs,key=='play'); controls[payload.name].onClick = `onClick="${onClick}"`; } } // Zeilen des Listview aufbauen let rowsHTML=''; for (let i = 0; i < data.payload.length; i++) { let payload = data.payload[i]; if (payload.type!="control") { for (let key in payload.commands) { let sym = ''; let onClick = buildOnClick(payload.commands[key],STATE_COMMAND,playerIDs,key=='play'); switch (key) { case 'play': sym = '&blacktriangleright;'; break; case 'browse': break; } rowsHTML += `<div class="heos-row" onClick="${onClick}"> <div class="heos-img">${payload.image_url!=''?`<img class="heos-img-fit" src="${payload.image_url}" width="auto" height="100%" alt="">`:'<div class="heos-img-empty"></div>'}</div> <div class="heos-text">${payload.name}</div> <div class="heos-btn">${sym}</div> </div>`; } } } html = ` <style type="text/css"> :root {--heos-font-color:rgba(${HEOS_FONT_COLOR},.9); --heos-border-color:rgba(${HEOS_FONT_COLOR},.05); } .heos-root { position:absolute; height:100%; width:100%; color:var(--heos-font-color); } .heos-head { height:96px; border-bottom:4px solid var(--heos-border-color); } .heos-head-players { font-size:0.7em; opacity:0.66; text-align:right; } .heos-head-img { width:72px; flex:none; height:72px; overflow:hidden; } .heos-head-title { width:100%; overflow:hidden; display:flex; align-items:flex-start; } .heos-head-text {text-align:left;padding-top:0.25em;padding-left:4px;font-size:1.1em;} .heos-head-subtext { font-size:0.66em; opacity:0.66; } .heos-head-btns {width:108px; flex:none; display:flex; flex-wrap:wrap; margin-left:auto;} .heos-head-btns-row {width:100%; display:flex;} .heos-head-btn {width:36px; height:36px; opacity:.2;text-align:center;font-size:2em; } .heos-body { overflow-y:auto; height:calc(100% - 72px); } .heos-img { width:64px; height:100%; overflow:hidden; } .heos-img-fit { width:100%; height:100%; object-fit:contain; } .heos-img-empty:after { content:'\\266A'; font-size:2.5em; opacity:0.2; display:flex; justify-content:center;} .heos-row { width:100%;height:56px;border-bottom:1px solid var(--heos-border-color);padding-top:4px;padding-bottom:4px; display:flex; align-items: center;} .heos-text {width:calc(100% - 112px);text-align:left;padding-left:4px;white-space: nowrap;overflow:hidden;} .heos-btn {width:48px;border-radius: 2px;text-align:center;font-size:2em; border-left:1px solid var(--heos-border-color); } .heos-clickable {opacity:1; } .heos-row:hover, .heos-clickable:hover {background-blend-mode:multiply;background-image: linear-gradient(var(--heos-border-color),var(--heos-border-color)) !important; } [class*="_heos-"] {outline:1px solid rgba(255,0,0,.2); outline-offset:-1px;} </style> <div class="heos-root"> <div class="heos-head"> <div class="heos-head-title"> <div class="heos-head-img">${data.image_url!=''?`<img class="heos-img-fit" src="${data.image_url}" alt="">`:'<div class="heos-img-empty"></div>'}</div> <div class="heos-head-text"> <div style="height:56px; overflow:hidden;"> ${data.name == "sources"?"HEOS Quellen-Übersicht":data.name} </div> ${subtitle} </div> <div class="heos-head-btns"> <div class="heos-head-btns-row"><div class="heos-head-btn"></div>${controls.getHTML('sources')+controls.getHTML('back')}</div> <div class="heos-head-btns-row">${controls.getHTML('load_prev')+controls.getHTML('play_all')+controls.getHTML('load_next')}</div> </div> </div> <div class="heos-head-players">Player: ${playerNames}</div> </div> <div class="heos-body"> ${rowsHTML} </div> </div>`; } setState(STATE_BROWSE_RESULT_HTML, html); }; // browse_result Überwachung on({id: STATE_BROWSE_RESULT, change: 'any'}, function (obj) { let data = JSON.parse(obj.state.val); if(data) buildHTML(data); }); on({id: STATE_BROWSE_RESULT_PLAYERS, change: 'any'}, function (obj) { let data = JSON.parse(getState(STATE_BROWSE_RESULT).val); if(data) buildHTML(data); }); // Sriptstart if (BUILD_HTML_AT_SCRIPTSTART) buildHTML( JSON.parse(getState(STATE_BROWSE_RESULT).val) ); [image: 1752773526043-fehlermeldung.jpg]
  • Modbus Finder 7M.38.8.400.0212 auslesen

    87
    4
    0 Stimmen
    87 Beiträge
    12k Aufrufe
    HomoranH
    @matis sagte in Modbus Finder 7M.38.8.400.0212 auslesen: Ich hab vier Zähler an einem Konverter in einem modbus frei nach: "meiner ist größer" :joy: ich hab aber 6, und 3 kommen demnächst noch dazu! ja, mit mehreren Zugriffen hast du recht, wobei das auch nicht ohne ist. ich hab die Waveshare (USB) an einem aktiven USB HUB, die Geräte per serial/by-id/ und hab den auch schon einfach umgesteckt, und alles lief wieder. Die Waveshare haben eindeutige IDs im Gegensatz zu billigen Konvertern [image: 1739130696636-20240204_165646.jpg]
  • [gelöst] backup error von influxdb2 remote

    12
    0 Stimmen
    12 Beiträge
    796 Aufrufe
    T
    @marc-berg oh man danke. das war es. da hätte ich selbst drauf kommen können/müssen
  • Wert von Adapter über MQTT setzen

    8
    0 Stimmen
    8 Beiträge
    450 Aufrufe
    A
    @marc-berg said in Wert von Adapter über MQTT setzen: enet/TischEsszimmer/Output Funktioniert - gehe davon aus dass es die Leerzeichen oder das fehlende Topic im Client waren ... Besten Dank :-)
  • Türklingel mit Video gesucht

    4
    0 Stimmen
    4 Beiträge
    385 Aufrufe
    MartinPM
    @andreios Die Datenrate für die Übertragung von Video beißt sich etwas mit der Signalqualität, die man über "Klingeldraht" erreichen kann ... Von Hikvision gibt es "two wire video doorbells" - wenn ich das richtig verstehe reichen die zwei Drähte, um Video und Spannungsversorgung zu gewährleisten. Ob da Klingeldrähte reichen, oder ob es ein definiertes "twisted Pair" sein muss, weiß ich nicht... https://www.amazon.de/-/en/Hikvision-Intercom-Complete-Quality-Control/dp/B0D1XN5ZQP
  • Wassermengenmesser

    22
    0 Stimmen
    22 Beiträge
    2k Aufrufe
    S
    @master67 Dann spendiere dem Nachbar doch noch ein Bier :beer:
  • benutzerdefinierte Einstellungen bei Obj. geht nicht(mehr)

    5
    1
    0 Stimmen
    5 Beiträge
    323 Aufrufe
    R
    @feuersturm Ja, na klar. Auch den Admin-Adapter reinstalliert. Werde das wohl auch mit dem History-Adapter machen UPDATE: History-Adapter neu installiert - alles okay - es geht wieder :-)) Danke - auch für den Tipp mit "iob diag" ( kannte ich noch nicht ). Lg
  • Alexa2-Adapter Problem bei Amazon-Anmeldung

    Ungelöst
    2
    0 Stimmen
    2 Beiträge
    234 Aufrufe
    Samson71S
    @reinhard-boehm sagte in Alexa2-Adapter Problem bei Amazon-Anmeldung: bekomme auch den Code per SMS geschickt. https://github.com/Apollon77/ioBroker.alexa2?tab=readme-ov-file#problem-with-cookie-determination-with-sms-based-2fa-flow
  • Solax adapter bringt keine Werte

    3
    1
    1 Stimmen
    3 Beiträge
    279 Aufrufe
    Thomas BraunT
    @matt77che Schau in's Log rein.
  • Beginner möchte Batterie mit Stromüberschuss laden

    22
    0 Stimmen
    22 Beiträge
    1k Aufrufe
    Thomas BraunT
    @b-freak Auf den Server schaltert man sich per SSH auf. Wie willst du die Kiste genau administrieren? Ein Terminal wie z. B. die Powershell, puTTY usw. ist da meiner Meinung nach unerlässlich.
  • Smart Home nach Stromausfall

    12
    0 Stimmen
    12 Beiträge
    717 Aufrufe
    P
    @arteck Eine USV sollte schon korrekt eingerichtet werden. Dann greifen auch die Regeln. Das automatische Wiedereinschalten sehe ich als Kür statt als Pflicht. Die Datenträger zu schützen als Pflicht. Setzt man eine USV ohne irgendwelche Meldungen an den Server ein, dann verschiebt sich das Problem korrupter Datenträger womöglich nur nach hinten.
  • Frage zum Polling beim Tuya Adapter

    3
    0 Stimmen
    3 Beiträge
    229 Aufrufe
    Thorsten S. 0T
    @thorsten-s-0 Danke.
  • Adapter "WLAN-Symbol" grau/durchgestrichen

    durchgestrichen fehlermeldung grau
    16
    0 Stimmen
    16 Beiträge
    802 Aufrufe
    mcm1957M
    Im LATEST Repository gibts relese 2.6.2. Warum der Maintainer diese noch nicht für STABLE freigegeben hat kann nur er sagen. 2.6.3 ist nur ein temporärer nicht genauer definierter Softwarestand auf Github. Von direkten Installation von GitHub - insbesondere auf produktiven Systemen - wird explizit abgeraten. GitHub Versionen können sich jederzeit (auch kurzfristig) ändern und durchaus auch in sich inkonsistent und fehlerhaft sein. Versionsangaben von GitHub Installationen sind Schall und Rauch da die Versionsnummer zumindest bei Verwendung der standardmäßigen Umgebung erst im Zuge der Releaseerstellung geändert wird. Auf explizite Aufforderung durch den Entwickler kann eine GitHub Installation zur Fehlereingrenzung oder zum Test neuer Funktionalität - unter Inkaufnahme des erhöhten Risikos - natürlich erfolgen. Adapter die nur via GitHub oder npm (also NICHT aus einem der beiden Repositories) installierbar sind sind mit erhöhter Vorsicht zu betrachten. Hier sollte der Entwickler drum ersucht werden eine Aufnahme in die Repositories zu veranlassen indem z.B. ein Issue im Adapterrepository erstellt wird. Und falls es irgendwie unklar ist: ioBroker unterstützt folgende Arten von Installation: aus dem STABLE Repository Das sind Adapter Releases die keine groben Fehler aufweisen (sollten). Natürlich kann es auch dort Fehler geben, die Behebung davon obliegt dem jeweiligen Dev und kann ggF auch dauern. aus dem LATEST Repository Das sind Adapter Releases die neu erstellt wurden und nur rudimentär getestet sind - oft auch als BETA Releases bezeichnet. Releases aus dem LATEST sind primär für unsere zahlreichen freiwilligen Tester gedacht. BETA / LATEST Releases können durchaus Fehler aufweisen - auch wenn ich davon ausgehe dass jeder aintainer dies zu vermeiden versucht. Vom Einsatz auf produktiven Systemen wird abgeraten außer man braucht irgenein neues Feature (z.B. neues Gerät) unbedingt. Hier muss dann jeder Entscheiden was ihm wichtig ist. direkt von GITHUB Von Installationen direkt aus Giuthub wird definitiv abgeraten außer auf Anweisung des Maintainers und für den Fall dass man gemeinsam mit diesem etwas testen will. Details siehe oben. direkt von npm Diese Installation kann erforderlich sein, wenn man eine bestimmte Version installieren möchte / muss. Im Normalfall sollte man direkte npm Installationen ebenso meiden wie direkte GitHub Installationen - ausgenommen um z.B. zu einer bekannten Version downzugraden - obwohl hier wenigstens ein definierter Stand garantiert ist. Adapter die NUR via npm und/oder nur via GitHub installierbar sind sollte man meiden - diese wurden nicht mal einem rudimentären Review unterzogen und sollten mit dem Attribut "vollständig auf eigenes Risiko verwenden" installiert werden. Hier empfiehlt es sich den Developer zu ersuchen eine Aufnahme in die Repos zu veranlassen. Wenn dieser darauf nicht reagiert sollte man von einer eher kurzen und unklaren Lebensdauer des Adapters ausgehen. Support meiner-/unsererseits für solche Adapter ist mit Sicherheit minimalistisch. @mcm1957
  • Growatt SPH Modbus

    10
    1
    0 Stimmen
    10 Beiträge
    888 Aufrufe
    I
    @pingo ich hatte es gelöst und es hat auch ne ganze weile gut funktioniert, aber anscheinend hat growatt was umgestellt, bei mir geht es nicht mehr, eventuell jemand ne lösung?
  • timeout...exceeded / Serververbindung?

    3
    0 Stimmen
    3 Beiträge
    265 Aufrufe
    G
    @ro75 Das hat funktioniert. Frage alle drei Minuten ab und schon ist die Meldung weg. Danke für die Info! Aber seltsam, da man IIRC laut Beschreibung des Servers 10.000 Abfragen täglich durchführen kann. Das wäre ja alle 7 Sekunden wenn ich richtig rechne.
  • Datenbank Supabase? iob alternative zu Electron/Tauri?

    1
    0 Stimmen
    1 Beiträge
    164 Aufrufe
    Niemand hat geantwortet
  • Fronius Gen24 Einspeisezähler ioBroker Modbus Client

    18
    2
    0 Stimmen
    18 Beiträge
    3k Aufrufe
    S
    Hallo zusammen, ich habe es auch nicht hinbekommen mit Fronius zu kommunizieren. Die Verbindung bei Fronius bleibt einfach rot. Ich habe eine GEN24 10kW und einen Huawei 10kW. Der Huawei soll als virtueller Zähler über den Modbusadapter ausgelesen werden und die Daten dem Fronius übermitteln. Könnt ihr mir weiterhelfen? Vielleicht reicht es für den Anfang wenn ihr eure Einstellungen inkl. Register teilt, dann könnte ich es damit versuchen.
  • Modbus: Verbindung zu Codesys-Runtime herstellen

    38
    0 Stimmen
    38 Beiträge
    4k Aufrufe
    M
    Modbus-Test abgeschlossen. Der Adapter taugt für micht nichts. Als Client, wie beschrieben, so lala, als Server hat es nichts gebracht. Ich rate davon ab. Vllt. um einen WR auszulesen brauchbar, aber das war ja nicht das Ziel. Der Quelltext sieht so aus, als ob alles vollständig implementiert ist, aber mehr Zeit verbringe ich damit nicht mehr. MQTT ist mir zu kryptisch per Variablennamen, Funktionsaufrufen etc. Das straight-forward einzubinden ist müßig für komplexere Strukturen. Sicherlich gibt es Frameworks, die über MQTT abstrahieren, aber es ändert den Kern der Sache nicht. Letztlich hat sich OPC UA bewährt, nahezu reibungslos, auch mit NodeRed. (Von dem OPC-Adapter rate ich ab) Die Zertifikate bringen auf allen Teilnehmerseiten zwar ein paar Eigenheiten mit, aber dafür hat man ggü. MQTT auch ein objektorientiertes und transportübergreifendes Protokoll mit allen Finessen. Nur leider deutlich mehr Overhead als Modbus. Influx lässt sich anbinden. Was will man mehr:)
  • TSUN TSOL-MS800

    5
    0 Stimmen
    5 Beiträge
    548 Aufrufe
    MartinPM
    @australien Klingt nett, was da im README bei Github steht: Der Proxy braucht die Hersteller Cloud nicht.... The connection to the TSUN Cloud is optional and can be switched off in the configuration (default is on). Then no more data is sent to the Internet, but no more remote updates of firmware and operating parameters (e.g. rated power, grid parameters) are possible.

335

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge