Skip to content

Praktische Anwendungen (Showcase)

Zeigt eure umgesetzten Projekte
898 Themen 33.5k Beiträge

NEWS

  • inventwo VIS-2 Screenshots

    vis-2 vis-inventwo vis2 visualisierung
    5
    19
    1 Stimmen
    5 Beiträge
    562 Aufrufe
    skvarelS
    @jey-cee .. das klappt leider nicht. Sie sind dann trotzdem untereinander, nur halt ohne Leerzeile EDIT: In der Vorschau untereinander, in der Live dann nebeneinander. Danke !!
  • Growatt MIN4600 TL-XH mit ständigen Fehlermeldungen im Log

    1
    3
    0 Stimmen
    1 Beiträge
    96 Aufrufe
    Niemand hat geantwortet
  • Siedle Klingel / Türöffner mit ESP8266 und MQTT

    Verschoben
    235
    4
    0 Stimmen
    235 Beiträge
    124k Aufrufe
    P
    @daniel1337 Dass da ein Bus mit dran hängt, wurde schon gesagt. Wenn da was einstreut (Frequenz, Spitzen durch das Relais, etc.), eine zu niederohmige Last hinterhängt, oder gar was kurzschließt / überlastet, kann das ganz schön teuer werden. Wenn es passende Adapter / Schnittstellen vom Hersteller gibt, dann nimmt man diese, oder lässt es besser. Eigene Schaltungen besser selbst mit Strom versorgen.
  • ePaper Statusdisplay Hausflur

    62
    2
    12 Stimmen
    62 Beiträge
    21k Aufrufe
    leovandavartL
    Halle an alle die hier drin schon fleißig geschreiben haben ich möchte mich auch an ein projekt wagen nur hab ich leider keine ahnung wie/was/wo ich da programieren muss, Technisch/handwerklich hab ich das verständis grob soll es in etwa wie auf dem bild aussehen [image: 1757435000827-wsdgwgmjr5l9bh9kvm04.png] bild wurde über Ki erstellt Wetter heute und 3 Tage ( Regenwahrscheinlichkeit wäre toll ) Tankpreise E10/E5 von 3 Tankstellen Kalender von 2 Personen (ein Kalender wäre von Google Kalender und der andere Apple Kalender) eine Person mit schwarzen und eine mit roten Einträgen
  • [Javascript+Blockly] Markise automatisiert nach Sonnenstand

    5
    2
    1 Stimmen
    5 Beiträge
    590 Aufrufe
    L
    @delphinis Dies ist der Motor, den ich nachgerüstet habe: https://www.amazon.de/dp/B00IN3NS96/ref=pe_27091401_487024491_TE_item Als Schalter / Aktor setzte ich den Homematic HmIP-BROLL ein (an der CCU3).
  • Warmwasser mit PV-Ü, Heizstab, Shelly und ioB

    4
    3
    0 Stimmen
    4 Beiträge
    470 Aufrufe
    R
    @paul53 funktioniert, Danke! Habe es nur leicht abgewandelt. "Stufe" enthält die Anzahl der aktiven Heizstäbe. Einmal täglich rotiert die Reihenfolge. Den Aufwand, das über die jeweilige Laufzeit exakt auszugleichen spare ich mir. Das lohnt im Vergleich wohl nicht wirklich. Die Zeit investiere ich lieber in andere Baustellen.
  • Vorstellung meiner VIS

    vis
    339
    19
    11 Stimmen
    339 Beiträge
    98k Aufrufe
    M
    @sigi234 danke Dir - ich probiere es mal aus
  • Shelly Pro 3EM saldierender Stromzähler in Blockly

    30
    2
    1 Stimmen
    30 Beiträge
    7k Aufrufe
    BertDerKleineB
    @paul53 Hallo, cih bin gerade über diesen Thread hier gestolpert, weil ich auch eine Herausforderung mit meinem Shelly Pro 3 EM habe. Diese ist verwandt, aber anders als das bisher hier diskutierte: Mein Shelly sitzt nämlich nicht dort, wo der offizielle Zählerwerkelt, sondern er ist bewusst so eingebaut, dass er nur die hausinternen Verbraucher zählt, d.h. er ignoriert und kennt nicht die Leistung, die vom Dach kommt, sondern die längste Zeit hat er rein den Verbrauch im Haus gemessen. Nebenbei: Es gibt einen IR-Lesekopf-Zähler auf dem Zähler des Netzbetreibers, wo ich Einspeise- und Bezugszählerstände ablese und der auch die aktuelle Leistung in Summe (unter Berücksichtigung PV) kennt. Bisher klappte das wunderbar. Seitdem ich haber am Hausnetz einen Hyomiles Speicher habe, "spinnt" der Shelly Verbrauchszählerstand (zu hoch), den ich per mQTT aus dem DP "TotalActiveEnergy" ziehe. Das ganze hat also Null mit den PV-Sachen zu tun und würde genauso doof laufen ganz ohne PV. Es tritt auf, weil der Speicher (den ich ja einfach aus dem Netz aufladen kann) irgendwann beim Entladen "negative" Leistungen auf einer Phase erzeugt. Der Shelly hantiert seltsam mit TotalActiveEnergy und TotalActiveReturnEnergy. Auch wenn ich es nicht ganz blicke, scheint die Problemursache hier skizziert zu sein: https://community.simon42.com/t/shellypro3em-balkonkraftwerk-ins-energiedashboard/33080/4 Hat jemand sowas schon mal gelöst für iobroker oder eine Idee, wie man es lösen könnte?
  • [Javascript] Midas (Aquatemp) Poolheizung

    359
    1
    3 Stimmen
    359 Beiträge
    83k Aufrufe
    D
    @oxident Ich werde es testen und hier berichten!
  • [Howto] Steuerung Fairland Pool-Wärmepumpe mit Tuya-Adapter

    6
    5
    0 Stimmen
    6 Beiträge
    2k Aufrufe
    M
    @magix sagte in [Howto] Steuerung Fairland Pool-Wärmepumpe mit Tuya-Adapter: Hi, ich habe jetzt auch mal versucht meine Pool Wärmepumpe aus der Tuya App über den Adapter einzubinden, funktioniert auch alles soweit und die Werte kommen auch alle an. Jedoch kann ich keinen Datenpunkt schreiben und damit das Gerät nicht steuern. Sobald ich einen Datenpunkt beschreibe wird der ein paar Sekunden später von der Cloud zurückgesetzt auf den Ursprungszustand. Jemand ein Tip? Danke magix Also bei meiner Poolsana InverPremium habe ich neben wahnsinnig vielen Datenpunkten unter anderem diese Datenpunkte: [image: 1752090197548-dc657b42-b17a-4efe-bcf4-74143a3856d8-image.png] mit Datenpunkt 1 kann ich ein- bzw. ausschalten, mit 101 stelle ich die gewünschte zieltemperatur fürs heizen, mit 102 fürs kühlen ein. mit 117 wähle ich ob sie Smart, Powerful oder Silent laufen soll und mit 2 wähle kann ich auch verschiedene Betriebsmodi wählen. 17 dient bei mir zum auslesen des Status der WP. Ich habe einfach mit der SmartLife App einstellungen getroffen und dann bei jenen Datenpunkten, wo ich dachte, dass diese passen könnten, dann diese kontrolliert ob sie geändert wurden. Sobald ich das wusste, hab ich in iobroker den Datenpunkt geändert und in der App kontrolliert ob die Änderung erfolgt ist. Achja dann gibt es noch den Datenpunkt tuya.0.bf996f6xxxxxx61edv.noLocalConnection den habe ich auf false gesetzt. Damit geht der Adapter direkt über WLAN ohne die Cloud. die Poolsana habe ich aber nicht über die Tuya App sondern über die Smart Life App eingebunden. Muss man im Tuja Adapter dann auch entsprechend bei der Instanz einstellen.
  • 16 Stimmen
    220 Beiträge
    55k Aufrufe
    K
    @homoran Die Meßstellenbetreiber und die Digitalisierung .... Gibt es "schon" einen Zugang zum Portal? Sind dort die Meßwerte des iMSys abrufbar? Bei mir gibt es im Portal nur die Bezugsdaten und mit TRuDI nur die Einspeisedaten. Also ohne TRuDi nur ein Teil der Daten verfügbar. Und dazwischen gab es mal eine Woche Ausfall. Da fehlen Meßwerte und ich hatte auch keinen TRuDI Zugriff auf den Zähler.
  • [HowTo] InfluxDB 2.1 auf Debian 11 (proxmox CT) installieren

    131
    3
    2 Stimmen
    131 Beiträge
    37k Aufrufe
    T
    @thomas-braun danke
  • ShellyPlus H&T - erste Erfahrungen

    h&t shelly
    27
    3
    1 Stimmen
    27 Beiträge
    8k Aufrufe
    J
    Hallo, ich bin auch an einer Lösung interessiert, mich nervt der Fehler im Log auch. Zumal die Daten ja geschrieben werden.
  • Automatsche Dosieranlage low budget

    50
    5
    9 Stimmen
    50 Beiträge
    8k Aufrufe
    FlexerF
    Hallo an alle, meine Dosieranlage habe ich jetzt auf Github hochgeladen. Hier der Link https://github.com/FlexerJR/Automatische-Dosieranlage/blob/main/README.md Wenn jemand ein ähnliches Setup hat ist er gerne eingeladen es zu testen. Viele Grüße
  • DEYE SUN-12K-SG04LP3 Wechselrichter mit ModBUS auslesen

    Verschoben
    27
    7
    3 Stimmen
    27 Beiträge
    22k Aufrufe
    HomoranH
    @hagiman2000 was willst du denn jetzt? Modbus oder Adapter? https://forum.iobroker.net/post/1278786
  • ESERA 1 Wire Controller

    1
    0 Stimmen
    1 Beiträge
    173 Aufrufe
    Niemand hat geantwortet
  • Tasmota MQTT Werte erhalten

    11
    8
    0 Stimmen
    11 Beiträge
    3k Aufrufe
    G
    @tasuanetrukiat Kannst du das evtl. als Export zur Verfügung stellen? Ich bekomme es einfach nicht nachgebaut.
  • Modbus als Slave

    4
    6
    2 Stimmen
    4 Beiträge
    511 Aufrufe
    M
    @peterfido Alles klar, besten Dank.
  • [How-To] BMW HomeKit Integration via ioBroker

    12
    15
    1 Stimmen
    12 Beiträge
    2k Aufrufe
    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 Stimmen
    5 Beiträge
    492 Aufrufe
    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); } }); }

626

Online

32.6k

Benutzer

82.2k

Themen

1.3m

Beiträge