Skip to content

Praktische Anwendungen (Showcase)

Zeigt eure umgesetzten Projekte
899 Topics 33.6k Posts

NEWS

  • [How-To] BMW HomeKit Integration via ioBroker

    12
    15
    1 Votes
    12 Posts
    2k Views
    K
    @houbi danke für die Rückmeldung. Bin es gerade am aufbauen, was hast du noch optimiert?
  • OpenEpaperLink - Script für Tastenabfrage

    5
    5
    1 Votes
    5 Posts
    512 Views
    B
    Hier ein geändertes Skript für die, die mehrere APs haben. // // ############################################# // // Dieses Script ermöglicht die Buttonabfrage. // // In dem Script wird die Socket-Verbindung von Beowolf verwendet (https://forum.iobroker.net/topic/66380/e-ink-display-openepaperlink-displayanzeige-mit-batterie/809?_=1747419968864) // // Ein erweitertes Skript von Eisbaeeer ist hier (https://forum.iobroker.net/topic/81101/openepaperlink-script-für-tastenabfrage ) // // Die Button-States werden unter dem konfigurierten basePathPrefix erzeugt. // // ############################################# // ############################################# // // Konfigurierbare Variablen - Hier die Anpassungen vornehmen! // const rootPath = '0_userdata.0'; // Bei Bedarf anpassen const controlRoot = 'EPaperControl'; // Oberordner für Steuerung const buttonRoot = 'Buttons'; // Unterordner für Buttons const accesspoints = [ { location: 'Erdgeschoss', ip: '192.168.49.185' }, // Accesspoint IP Adresse { location: 'Obergeschoss', ip: '192.168.49.186' }, // Accesspoint IP Adresse { location: 'Dachgeschoss', ip: '192.168.49.187' }, // Accesspoint IP Adresse { location: 'Hühnerhaus', ip: '192.168.49.139' } // Accesspoint IP Adresse ]; // // ENDE Anpassungen! Ab hier nichts mehr ändern! // ############################################# // // Automatisch generierte Pfade für jeden Accesspoint accesspoints.forEach(ap => { ap.name = `${ap.location}-AP`; ap.controlState = `${rootPath}.${controlRoot}.${ap.location}.Start`; ap.buttonPathPrefix = `${rootPath}.${controlRoot}.${ap.location}.${buttonRoot}`; }); const WebSocket = require('ws'); let wsConnections = {}; let pingIntervals = {}; let scriptStatus = {}; // Initialisierung der Steuerobjekte accesspoints.forEach(ap => { scriptStatus[ap.name] = false; setObject(ap.controlState, { type: 'state', common: { name: `Start/Stop ${ap.name}`, type: 'boolean', role: 'switch', read: true, write: true, def: false }, native: {} }); on({ id: ap.controlState, change: 'ne' }, (obj) => { if (obj.state.val === true) { scriptStatus[ap.name] = true; connectWebSocket(ap.name, ap.ip); } else { scriptStatus[ap.name] = false; disconnectWebSocket(ap.name); } }); getState(ap.controlState, (err, state) => { if (!err && state && state.val === true) { scriptStatus[ap.name] = true; connectWebSocket(ap.name, ap.ip); } }); }); function connectWebSocket(name, ip) { if (wsConnections[name]) return; const url = `ws://${ip}/ws`; const ws = new WebSocket(url); wsConnections[name] = ws; ws.on('open', () => { console.log(`WebSocket ${name} verbunden (${ip})`); pingIntervals[name] = setInterval(() => { if (ws.readyState === WebSocket.OPEN) { ws.ping(); } }, 10000); }); ws.on('message', (data) => { try { const parsed = JSON.parse(data); handleData(name, parsed); } catch { // Parsing-Fehler ignorieren } }); ws.on('close', () => { clearInterval(pingIntervals[name]); delete wsConnections[name]; if (scriptStatus[name]) { setTimeout(() => connectWebSocket(name, ip), 5000); } }); ws.on('error', () => { // Fehler ignorieren }); } function disconnectWebSocket(name) { if (wsConnections[name]) { wsConnections[name].close(); clearInterval(pingIntervals[name]); delete wsConnections[name]; delete pingIntervals[name]; } } function handleData(apName, parsedData) { const ap = accesspoints.find(a => a.name === apName); if (!ap || !scriptStatus[ap.name]) return; if (!parsedData.tags || !Array.isArray(parsedData.tags) || parsedData.tags.length === 0) return; parsedData.tags.forEach(tag => { if (!tag.mac) return; const macClean = tag.mac.replace(/:/g, ''); const basePath = `${ap.buttonPathPrefix}.${macClean}`; ensureChannelExists(basePath, tag.alias || tag.name || 'Unbenannt', () => { if ('wakeupReason' in tag) { const statePath = `${basePath}.wakeupReason`; updateStateIfChanged(statePath, tag.wakeupReason); } }); }); } function ensureChannelExists(id, name, callback) { getObject(id, (err, obj) => { if (!obj) { setObject(id, { type: 'channel', common: { name: name }, native: {} }, callback); } else { callback(); } }); } function updateStateIfChanged(id, value) { if (value === null || value === undefined) return; const isPrimitive = val => ['string', 'number', 'boolean'].includes(typeof val); let storedValue = value; let valueType = typeof value; if (!isPrimitive(value)) { try { storedValue = JSON.stringify(value); valueType = 'string'; } catch { return; } } getState(id, (err, state) => { if (err || !state) { setObject(id, { type: 'state', common: { name: id.split('.').pop(), type: valueType, role: 'value', read: true, write: false }, native: {} }, () => setState(id, storedValue, true)); } else if (state.val !== storedValue) { setState(id, storedValue, true); } }); }
  • Füllstandsmessung per Pegelsonde.

    Moved
    604
    0 Votes
    604 Posts
    217k Views
    W
    @bahnuhr Danke im Beitrag von @saeft_2003 oben, auf den ich antwortete, steht auch generic (0). Vielleicht ist das aber tatsächlich nicht mehr richtig...
  • Ecowitt Wetterstation/Froggit<->Foshkplugin MQTT->Iobroker

    13
    7
    0 Votes
    13 Posts
    8k Views
    K
    @saxbav Kannst Du mal die Adaptereinstellungen von dem Posten? möchte meine EcoWitt Sensoren anzeigen lassen. das Foshplugin scheint mir von der Installation sehr kompliziert zu sein und als adapter kann ich es nicht finden.
  • Shelly 3em Pro anderer Verbindungsweg?

    11
    0 Votes
    11 Posts
    2k Views
    HomoranH
    @ralle lieferst du hier eine Anleitung für ein interessantes Objekt? Wenn nicht ist Showcase die falsche Kategorie. Ob die Funktionalität eines Shelly zu iobroker allgemein gehört kommt auf die weitere Entwicklung des Threads an.
  • This topic is deleted!

    0
    0 Votes
    0 Posts
    68 Views
    No one has replied
  • [Javascript] Adapter-Instanzen überwachen

    34
    3
    0 Votes
    34 Posts
    6k Views
    K
    @acgua Das Skript hat bei mir über ein Jahr funktioniert, seit ein paar Wochen erhalte ich jedoch einen Fehler. javascript.0 2025-03-28 23:00:54.158 error script.js.Instanz_überprüfen.Instanz_Watcher: TypeError: CRON_PARSER.parseExpression is not a function at AdapterInstance.getPreviousCronRun (script.js.Instanz_überprüfen.Instanz_Watcher:578:42) at AdapterInstance.asyncIsInstanceFunctioning (script.js.Instanz_überprüfen.Instanz_Watcher:506:57) at AdapterInstance.asyncUpdateInfoVariables (script.js.Instanz_überprüfen.Instanz_Watcher:357:34) at AdapterInstance._initAdapterInstance_StateUpdatesAsync (script.js.Instanz_überprüfen.Instanz_Watcher:299:17) Kann mir ggfs. jemand helfen, woran das liegen kann? "Cron-Parser" ist bei der Javascript-Instanz vorhanden. [image: 1743199279476-2bac40b1-4828-4831-81ce-ef92da3a6336-image.png]
  • Anzeige von Bahn / Öffi / Zugverbindungen in Jarvis

    1
    2
    0 Votes
    1 Posts
    189 Views
    No one has replied
  • Growatt Noah 2000 - Nulleinspeisung

    growatt noah nulleinspeisung
    77
    0 Votes
    77 Posts
    29k Views
    R
    @maba17 Mail müsste angekommen sein. Grüße!
  • [Anleitung] Enphase Solar in ioBroker

    Moved enphase solar homebridge
    18
    2 Votes
    18 Posts
    5k Views
    Steffe.S.S
    @Ahnungsbefreit leider hat die Steuerung des Speichers nicht funktioniert. Auch ein Nachfragen bei EnphaseTeam wurde mit: " die aktive Steuerung des Speichers durch den Nutzer ist zur Zeit nicht vorgesehen" beantwortet. Zur Zeit teste ich ein Bisschen mit dem KI - Profil herum und versuche das Entladen des Speichers zu einer definierten Zeit zu unterbinden. In dieser Zeit darf dann das Auto mit Volllast der Wallbox geladen werden (Tigger ist hier die Entladeleistung der Batterie, wenn 0 W = Laden erlaubt) Gruss Steffen
  • Bitte an Knuddel

    2
    -1 Votes
    2 Posts
    410 Views
    Samson71S
    @relu77 Ist das hier dein Ernst? In der Überschrift schreibst Du "Knuddel", im Text schreibst Du "Kuddel", aber den User (den Du vermutlich meinst) triggerst Du gar nicht? Schonmal über eine direkte Chat-Nachricht nachgedacht?
  • [Projekt] Integr. Cubinote - Alexa Sprache drucken - Listen

    65
    1 Votes
    65 Posts
    11k Views
    G
    Moin, ich habe schon einen anderen thread eröffnet und auch den Support von Cubinote angeschrieben, alles vergeblich. Mich würde interessieren, ob diese Lösung bei euch noch funktioniert. Mein Cubinote blinkt dauerhaft grün, eine Verbindung mir den Servern der Fa. Cubinote ist nicht mehr möglich. Evtl. existiert diese Firma gar nicht mehr. Wie sind eure Erfahrungen?
  • [How-To] Goodwe Wechselrichter und Modbus TCP

    goodwe modbus tcp tcpip
    144
    3
    1 Votes
    144 Posts
    68k Views
    M
    @sandmanyz hier meine Einstellung [image: 1741933630941-7be1c752-8345-4997-853a-870175d2b880-image.png] Zu den Verbindungsparameter kann ich jetzt nichts sagen, weil ich nicht weis mit welchem Gerät du abfrägst.
  • [Projekt] Deye SUN10k mit Modbus an IOB

    5
    10
    0 Votes
    5 Posts
    772 Views
    fuzzy1955F
    @homoran sagte in Projekt: Deye SUN10k mit Modbus an IOB: gibt es in vis2 kein iframe widget mehr? Wow! Bei dir lerne ich ja was Gscheites :blush: [image: 1741897224604-clipboard02.jpg] Ich bin doch noch ein ziemlicher Newbie :confounded:
  • Heizungsregelung mit IOBroker

    30
    0 Votes
    30 Posts
    5k Views
    G
    @paul53 Soooooo...guten Morgen an Alle "Interessierten" !!! Ein kleines Update zum Projekt Heizung : Wir lagen alle richtig, die Hydraulik stimmte vorne und hinten nicht...dadurch die übermenge an Pelletverbrauch, mit dem Hersteller und einem Heizungsfuzzi ist die Verrohrung umgebaut worden so...wie der Hersteller vom Kombi Speicher es vorsieht. Man glaubt es kaum aber sie haben es tatasächlich geschafft, auch die Temp Fühler falsch zu setzten !!! ;) ....Unglaublich aber wahr...da klemmten doch tatsächlich 2 Fühler direkt nebeneinander....noch nie gesehen sowas... Von den Positionen am Puffer ganz zu schweigen... ....der Heizungsfuzzi war "erschüttert"...wie man sowas bauen konnte.... gut ist nun alles geändert....mit Zeit und Nerven... jetzt Phase 2 : der Hersteller hat die Hauseigene Regelung so angepaßt, das die Heizung nun läuft..so wie sie soll ...und nicht wie vorher...immer auf Volllast .. von den Auswertungen der Hersteller Steuerung...bin ich schonmal positiv gestimmt, das es in die richtige Richtung geht....seit heute laufen nun auch 2 Shellys mit mit Temp Fühlern...um genauere Daten, zum Verhalten der Anlage zu bekommen ( hatte ich schonmal, habs abgebaut, als die Umbauaktion kam ).... Ich halte Euch auf dem laufenden... Gruß MIcha
  • Steuerbarer Monitor

    3d druck linux server serverrack touchscreen vis
    10
    9
    3 Votes
    10 Posts
    1k Views
    BananaJoeB
    @drurob sagte in Steuerbarer Monitor: @bananajoe Oh ha.... als ich das zweite Bild aufgemacht habe hab ich direkt Gänsepelle bekommen. Nicht das ich solch Bilder in Kundenschränken nicht gewohnt wäre, aber hier ist sehr viel "historisch gewachsen" Das IST schon die aufgeräumte Version ... hinten im Schrank ist auch eine Steckdosenleiste. Aber der Schrank ist nur noch von vorne zugänglich, vergiss es, hinten komme ich nur noch sehr schwer ran, gerade im oberen Bereich. Ist halt leider nur ein 600mm breiter Schrank, da ist bei 19" Einbauten links und rechts davon einfach kein Platz mehr. Wobei etwas umgeräumt ist er gerade schon, der kleine ITX mit dem roten Lüfter ist ausgetauscht, die eine CyberPower USV ist ersetzt durch 2x APCs und die Festplattengehäuse dafür oben gewandert. Ja, die Patchkabel noch wieder schön an die Seite ... Aber dank Beschriftung (und Doku) findet sich alle schnell wieder, 9 von 10 Kabel sind im Moment beschriftet (Strom und Netzwerkkabel) 2 x 24 + 1 x 16 = 64 Netzwerkports, verteilt auf 3 Netzwerkswitche ( 1 x 28 Port, 1x 24 Port + 1x8 Port PoE), dazu 3 Server und diverses anderes im Schrank sind halt eine Menge Kabel. Und ich habe schon die flachen genommen ... Schöner werden könnten die PoE Unterswitche - an den PoE Ports hängen PoE-Powered Switche die wiederum andere Geräte mit PoE versorgen. Das ist von der Energie her sparsamer als der große 24 Port PoE (zumindest bei meinen Modellen)
  • Qnap NAS von Iobroker aus herunterfahren

    11
    2
    2 Votes
    11 Posts
    1k Views
    N
    @j_paul eine Umstellung auf admin ist nicht möglich.
  • Zigbee2mqtt und Ikea Styrbar schaltbar machen.

    5
    0 Votes
    5 Posts
    850 Views
    AsgothianA
    @mico Die Funktion nach der Du suchst ist ein 'Binding'. Auch das lässt sich in Zigbee2mqtt.io einrichten. Du musst die Fernbedienung an die Leuchte 'binden'. Die Anleitung dafür ist hier (leider nur auf englisch). Da ich Z2M nicht nutze kann ich das nicht mal eben beschreiben. A.
  • [Tutorial] VIS Fritzbox Status & Up/Downloadanzeige

    Moved
    504
    13
    7 Votes
    504 Posts
    148k Views
    L
    @jey-cee einmalig oder mehrfach? RPI Neu gestartet und schon arbeiten die CRONE-Jobs richtig :disappointed:
  • [How-to] Hue Dimmer-Schalter: alle Tastendrücke einfach auswerten

    Moved
    22
    4
    0 Votes
    22 Posts
    8k Views
    AphofisA
    @extbingh Ich stehe vor dem selben Problem Ich möchte auch mit einem hue Dimmer Switch Schalten Da soll aus 1002 dann True werden bei Short Release Und bei 1003 dann false werden bzw. noch besser wäre 1 Klick true noch mal Klick false aber wie man das realisiert weiß ich nicht Dazu muss aber der datenpunkt vom Switch ausgewertet werden. Ich hatte das bis jetzt in norde-red getestet und bis jetzt noch nicht erfolgreich gewesen. Hintergrund ich habe mehrere mehrfach Lichtschalter die ich mit Tuya Touch Lichtschaltern am laufen habe. Problem ist, Lichtschalter schaltet über Kabel das deckenlicht ein und parallel über node-red schaltet der Lichtschalter dann noch andere Lampen (hue, Tuya) dazu Wenn man nun den Lichtschalter zu schnell hintereinander klickt drehen die Lampen durch und ich habe Disko. Die Schaltungen beinhalten auch noch einen Hue bewegungsmelder der den Tuya Lichtschalter schaltet und nach 3 min. Wieder ausschaltet. Wenn Lichtschalter benutz wird bleibt Licht für 30 min. An. Wenn mein staubsaug Roboter fährt sich die bewegungsmelder deaktiviert. Nur wie man die buttonevent 1002,1003 etc. nun auswertet um daraus mit nur zb dem ersten Button dazu bringt ein Klick True zweiter Klick false weiß ich nicht Hatte dann versucht Shelly i4 gen3 dazu zu nutzen nur komme ich da auch nicht weiter. Da der Shelly keinen datenpunkt hat den man schalten kann auch wenn im Shelly direkt Sektionen für an und aus erstellt sind

580

Online

32.7k

Users

82.5k

Topics

1.3m

Posts