Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Hilfe bei Script zum auslesen von ebus Daten

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    656

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Hilfe bei Script zum auslesen von ebus Daten

Geplant Angeheftet Gesperrt Verschoben JavaScript
1 Beiträge 1 Kommentatoren 432 Aufrufe 1 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Steffen SauerS Offline
    Steffen SauerS Offline
    Steffen Sauer
    schrieb am zuletzt editiert von
    #1

    Hallo.
    Ich Probiere ach gerade mit Skripten aus dem Forum zum auslesen der ebus Daten rum.

    / =============================================================================
    // Auslesen von Einzelwerten vom eBusd
    // =============================================================================
    var root = 'eBus'; // root of state inside 'javascript.0'
    var host = 'RPi2-2'; // set to your host running ebusd
    var port = 8888; // default ebusd port
    var logging = false; // "true" oder "false" wenn nicht gewünscht
    var net = require('net'); //
    var conn = false;
    // =============================================================================
    var element = 'FlowTemp';
    // ebusctl read -f FlowTemp
    // 51.19;ok
    var req = 'read -f ' + element;
    var pfad = 'eBus.Temperatur.'+ element; // Pfad innerhalb der Instanz

    // =============================================================================
    // Datenpunkte anlegen
    // =============================================================================
    createState(pfad, 0, {name: "Vorlauftemperatur" ,rolle: 'value.temperature' ,type: 'string',unit: '°C'});
    
    // ----------------------------------------------------------  Start
    if (logging) log('1\. Start trying eBus abfrage');
    var client = new net.Socket();
    client.connect(port, host, function() {
    if (logging) log('2\. Connected to ebusd on ' + host + ':' + port);
    conn = true;
    client.write(req + '\n');
    if (logging) log('3\. TX-Befehl: "' + req + '" wird gesendet');
    });
    
    // =============================================================================
    // Funktion Daten abfragen
    // =============================================================================
    function parse(data) {
    var arr = data.toString().split(/\r?;/);            // wie viele Werte werden durch ";" getrennt
    if (logging) log("Menge  : " + arr.length);
    var fields = data.toString().split('\;');           // hier wird auf den = getriggert
    if (logging) log('Felder : ' + fields);
    if(fields.length > 1) {                         // wenn mehrere Felder gefunden wurden
    if (logging) log('WertVor : ' + fields[0]);
    var WertVor =fields[0];
    if (logging) log("WertNach: " + fields[1]);
    fields[0] = fields[0].replace(' ','_');
    if (logging) log("Feld 1 : " + fields[0]);
    if (logging) log("Feld 2 : " + fields[1]);
    setState(pfad, WertVor);                            // Werte setzen
    }
    }
    
    // =============================================================================
    // Daten abfragen
    // =============================================================================
    var databuf = '';
    client.on('data', function(data) {
    var prev = 0, next;
    var datastr = data.toString();
    if (logging) log("4\. RX-Daten : " + datastr);
    while ((next = datastr.indexOf('\n\n', prev)) > -1) {
    databuf += datastr.substring(prev, next);
    parse(databuf);
    databuf = '';
    prev = next + 1;
    }
    databuf += datastr.substring(prev);
    client.write('quit\n');
    });
    
    // =============================================================================
    // ? Ende
    // =============================================================================
    client.on('close', function() {
    conn = false;
    log('Connection to ebusd closed');
    });
    
    // =============================================================================
    // Funktion aufrufen
    // =============================================================================
    function getData() {
    client.connect(port, host, function() {
    if (logging) log('Connected to ebusd on ' + host + ':' + port);
    client.write(req + '\n');
    if (logging) log('TX-Befehl: "' + req + '" wird gesendet');
    });
    }
    
    schedule('*/1 * * * *', getData);
    

    Leider bisher ohne erfolg. Der entsprechende Beitrag ist auch schon ein wenig in die Jahre gekommen, Pfads dort keiner mehr antwortet. 🙈

    Die Daten als solche greife ich per MQTT ab. Das hier veröffentlichte Skript zur Einzelabfrage erstellt die Verzeichnisstruktur, holt den Wert ab aber bekommt ihn nicht gespeichert.

    18:10:05.727 info javascript.0 (4914) Start javascript script.js.Heizung.eBus.Einzelwert_test
    18:10:05.764 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: 1. Start trying eBus abfrage
    18:10:05.788 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: registered 0 subscriptions and 1 schedule
    18:10:05.793 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: 2. Connected to ebusd on iobroker3:8888
    18:10:05.795 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: 3. TX-Befehl: "read -f Hc1FlowTemp" wird gesendet
    18:10:06.584 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: 4. RX-Daten : 23
    18:10:06.586 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: Menge : 1
    18:10:06.587 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: Felder : 23
    18:10:06.619 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: 4. RX-Daten : connection closed
    18:10:06.620 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: Menge : 1
    18:10:06.622 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: Felder : connection closed
    18:10:06.637 info javascript.0 (4914) script.js.Heizung.eBus.Einzelwert_test: Connection to ebusd closed
    18:10:08.680 info javascript.0 (4914) Stop script script.js.Heizung.eBus.Einzelwert_test

    Unter Objekten steht dann immer 0 als Vorlauftemperatur.
    Weiß jemand wo der Fehler liegt?

    1 Antwort Letzte Antwort
    0

    Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

    Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

    Mit deinem Input könnte dieser Beitrag noch besser werden 💗

    Registrieren Anmelden
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen


    Support us

    ioBroker
    Community Adapters
    Donate

    530

    Online

    32.7k

    Benutzer

    82.6k

    Themen

    1.3m

    Beiträge
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
    ioBroker Community 2014-2025
    logo
    • Anmelden

    • Du hast noch kein Konto? Registrieren

    • Anmelden oder registrieren, um zu suchen
    • Erster Beitrag
      Letzter Beitrag
    0
    • Home
    • Aktuell
    • Tags
    • Ungelesen 0
    • Kategorien
    • Unreplied
    • Beliebt
    • GitHub
    • Docu
    • Hilfe