Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. foxthefox

    NEWS

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    F
    • Profile
    • Following 0
    • Followers 7
    • Topics 19
    • Posts 1200
    • Best 72
    • Groups 4

    foxthefox

    @foxthefox

    Developer

    80
    Reputation
    358
    Profile views
    1200
    Posts
    7
    Followers
    0
    Following
    Joined Last Online

    foxthefox Follow
    Developer Pro Starter Most Active

    Best posts made by foxthefox

    • RE: HabPanel Widgets

      Hallo,

      übrigens ist jetzt auch charts und timeline in habpanel verfügbar.

      Hat mich am WE ganz schön Zeit gekostet, aber nun ist es mit Version 0.3x verfügbar.

      Damit ist habpanel definitiv aufgewertet.

      1926_bildschirmfoto_2019-01-27_um_12.45.35.png

      Gruß

      Klaus

      posted in ioBroker Allgemein
      F
      foxthefox
    • RE: ecoflow-connector-Script zur dynamischen Leistungsanpassung

      @waly_de
      Ich habe mich an der Verbesserung der Dekodierung der ankommenden Telegramme gemacht.
      Dazu habe ich mir in node-red die MQTT Telegramme in base64 kodiert loggen lassen.
      Dieser output verträgt sich auch mit der https://protobuf-decoder.netlify.app um die Struktur anzuschauen.

      Aus den unterschiedlich langen Telegrammen habe ich dann ein Message-Objekt erstellt. key=Länge, value=Array aus den Telegrammen.

      Die Proto-Definition hat ihre Basis aus
      link

      Nunmehr kann man auf "HeaderMessage", "InverterMessage", "PowerMessage" und "EnergyMessage" den übergebenen Puffer prüfen.
      Die Energiewerte sind derzeitig noch unklar und deswegen als bytes definiert.

      const protobuf = require('protobufjs');
      
      const protoSource = `
      syntax = "proto3";
      
      message inverter_heartbeat {
          optional uint32 invErrCode = 1;
          optional uint32 invWarnCode = 3;
          optional uint32 pv1ErrCode = 2;
          optional uint32 pv1WarnCode = 4;
          optional uint32 pv2ErrCode = 5;
          optional uint32 pv2WarningCode = 6;
          optional uint32 batErrCode = 7;
          optional uint32 batWarningCode = 8;
          optional uint32 llcErrCode = 9;
          optional uint32 llcWarningCode = 10;
          optional uint32 pv1Status = 11;
          optional uint32 pv2Status = 12;
          optional uint32 batStatus = 13;
          optional uint32 llcStatus = 14;
          optional uint32 invStatus = 15;
          optional int32 pv1InputVolt = 16;
          optional int32 pv1OpVolt = 17;
          optional int32 pv1InputCur = 18;
          optional int32 pv1InputWatts = 19;
          optional int32 pv1Temp = 20;
          optional int32 pv2InputVolt = 21;
          optional int32 pv2OpVolt = 22;
          optional int32 pv2InputCur = 23;
          optional int32 pv2InputWatts = 24;
          optional int32 pv2Temp = 25;
          optional int32 batInputVolt = 26;
          optional int32 batOpVolt = 27;
          optional int32 batInputCur = 28;
          optional int32 batInputWatts = 29;
          optional int32 batTemp = 30;
          optional uint32 batSoc = 31;
          optional int32 llcInputVolt = 32;
          optional int32 llcOpVolt = 33;
          optional int32 llcTemp = 34;
          optional int32 invInputVolt = 35;
          optional int32 invOpVolt = 36;
          optional int32 invOutputCur = 37;
          optional int32 invOutputWatts = 38;
          optional int32 invTemp = 39;
          optional int32 invFreq = 40;
          optional int32 invDcCur = 41;
          optional int32 bpType = 42;
          optional int32 invRelayStatus = 43;
          optional int32 pv1RelayStatus = 44;
          optional int32 pv2RelayStatus = 45;
          optional uint32 installCountry = 46;
          optional uint32 installTown = 47;
          optional uint32 permanentWatts = 48;
          optional uint32 dynamicWatts = 49;
          optional uint32 supplyPriority = 50;
          optional uint32 lowerLimit = 51;
          optional uint32 upperLimit = 52;
          optional uint32 invOnOff = 53;
          optional uint32 wirelessErrCode = 54;
          optional uint32 wirelessWarnCode = 55;
          optional uint32 invBrightness = 56;
          optional uint32 heartbeatFrequency = 57;
          optional uint32 ratedPower = 58;
      }
      
      message permanent_watts_pack
      {
          optional uint32 permanent_watts = 1;
      }
      
      message supply_priority_pack
      {
          optional uint32 supply_priority = 1;
      }
      
      message bat_lower_pack
      {
          optional int32 lower_limit = 1;
      }
      
      message bat_upper_pack
      {
          optional int32 upper_limit = 1;
      }
      
      message brightness_pack
      {
          optional int32 brightness = 1;
      }
      
      message PowerItem
      {
          optional uint32 timestamp = 1;
          optional sint32 timezone = 2;
          optional uint32 inv_to_grid_power = 3;
          optional uint32 inv_to_plug_power = 4;
          optional int32 battery_power = 5;
          optional uint32 pv1_output_power = 6;
          optional uint32 pv2_output_power = 7;
      }
      
      message PowerPack
      {
          optional uint32 sys_seq = 1;
          repeated PowerItem sys_power_stream = 2;
      }
      
      //war ein Versuch
      message EnergyValue
      { 
          optional sint32 test1 = 1;
          optional uint32 test2 = 2;
          optional fixed64 test3 = 3;
          //optional sint32 test4 = 4;
          //optional uint32 test5 = 5;
      }
      
      message EnergyItem
      {
      	optional uint32 timestamp = 1;
          optional int32 item = 2;
          optional bytes watt = 3; // passt noch nicht
      }
      
      message EnergyPack
      {
          optional uint32 sys_seq = 1;
          repeated EnergyItem sys_energy_stream = 2;
      }
      
      message PowerAckPack
      {
          optional uint32 sys_seq = 1;
      }
      
      message node_massage
      {
          optional string sn = 1;
          optional bytes mac = 2;
      }
      
      message mesh_child_node_info
      {
          optional uint32 topology_type = 1;
          optional uint32 mesh_protocol = 2;
          optional uint32 max_sub_device_num = 3;
          optional bytes parent_mac_id = 4;
          optional bytes mesh_id = 5;
          repeated node_massage sub_device_list = 6;
      }
      
      message Header
      {
          optional int32 src = 2;
          optional int32 dest = 3;
          optional int32 d_src= 4;
          optional int32 d_dest = 5;
          optional int32 enc_type = 6;
          optional int32 check_type = 7;
          optional int32 cmd_func = 8;
          optional int32 cmd_id = 9;
          optional int32 data_len = 10;
          optional int32 need_ack = 11;
          optional int32 is_ack = 12;
          optional int32 seq = 14;
          optional int32 product_id = 15;
          optional int32 version = 16;
          optional int32 payload_ver = 17;
          optional int32 time_snap = 18;
          optional int32 is_rw_cmd = 19;
          optional int32 is_queue = 20;
          optional int32 ack_type= 21;
          optional string code = 22;
          optional string from = 23;
          optional string module_sn = 24;
          optional string device_sn = 25;
      }
      
      message HeaderMessage {
      	optional Header header = 1;
      }
      
      message InverterMessage {
      	optional inverter_heartbeat inverter = 1;
          optional Header header = 2;
      }
      
      message PowerMessageProto {
      	optional PowerPack powerpack  = 1;
          optional int32 src = 2;
          optional int32 dest = 3;
          optional int32 d_src= 4;
          optional int32 d_dest = 5;
          optional int32 enc_type = 6;
          optional int32 check_type = 7;
          optional int32 cmd_func = 8;
          optional int32 cmd_id = 9;
          optional int32 data_len = 10;
          optional int32 need_ack = 11;
          optional int32 is_ack = 12;
          optional int32 seq = 14;
          optional int32 product_id = 15;
          optional int32 version = 16;
          optional int32 payload_ver = 17;
          optional int32 time_snap = 18;
          optional int32 is_rw_cmd = 19;
          optional int32 is_queue = 20;
          optional int32 ack_type= 21;
          optional string code = 22;
          optional string from = 23;
          optional string module_sn = 24;
          optional string device_sn = 25;
      }
      
      message PowerMessage {
          PowerMessageProto item = 1;
      }
      
      message EnergyMessageProto {
      	optional EnergyPack energypack  = 1;
          optional int32 src = 2;
          optional int32 dest = 3;
          optional int32 d_src= 4;
          optional int32 d_dest = 5;
          optional int32 enc_type = 6;
          optional int32 check_type = 7;
          optional int32 cmd_func = 8;
          optional int32 cmd_id = 9;
          optional int32 data_len = 10;
          optional int32 need_ack = 11;
          optional int32 is_ack = 12;
          optional int32 seq = 14;
          optional int32 product_id = 15;
          optional int32 version = 16;
          optional int32 payload_ver = 17;
          optional int32 time_snap = 18;
          optional int32 is_rw_cmd = 19;
          optional int32 is_queue = 20;
          optional int32 ack_type= 21;
          optional string code = 22;
          optional string from = 23;
          optional string module_sn = 24;
          optional string device_sn = 25;
      }
      
      message EnergyMessage{
      	optional EnergyMessageProto item = 1;
      }
      
      message Send_Header_Msg
      {
          optional Header msg = 1;
      }
      
      message SendMsgHart
      {
          optional int32 link_id = 1;
          optional int32 src = 2;
          optional int32 dest = 3;
          optional int32 d_src = 4;
          optional int32 d_dest = 5;
          optional int32 enc_type = 6;
          optional int32 check_type = 7;
          optional int32 cmd_func = 8;
          optional int32 cmd_id = 9;
          optional int32 data_len = 10;
          optional int32 need_ack = 11;
          optional int32 is_ack = 12;
          optional int32 ack_type = 13;
          optional int32 seq = 14;
          optional int32 time_snap = 15;
          optional int32 is_rw_cmd = 16;
          optional int32 is_queue = 17;
          optional int32 product_id = 18;
          optional int32 version = 19;
      }
      `;
      
      messages = {
      	'252': ['deine Message mit 252er Länge']
      };
      
      function decodeMsg(hexString, msgtype) {
      	const root = protobuf.parse(protoSource).root;
      	const PowerMessage = root.lookupType(msgtype);
      	const message = PowerMessage.decode(Buffer.from(hexString, 'hex'));
      	const object = PowerMessage.toObject(message, { defaults: false });
      	return object;
      }
      
      function parsemsg(message) {
      	Object.entries(message).forEach(([ key, value ]) => {
      		console.log('msg length: ', key);
      		var len = value.length;
      		for (var i = 0; i < len; i++) {
      			var buf = new Buffer.from(value[i], 'base64'); //wandelt die Texte aus dem Messagearray in buffer um
      			try {
      				let msgobj = decodeMsg(buf, 'HeaderMessage');
      				let packetType = msgobj.header.cmdId;
      				console.log('packetType: ', packetType);
      				if (packetType == 136) {
      					try {
      						let msgobj136 = decodeMsg(buf, 'PowerMessage');
      						console.log(JSON.stringify(msgobj136));
      					} catch (error) {
      						console.log('id 136 error at: ', error);
      					}
      				} else if (packetType == 32) {
      					try {
      						let msgobj32 = decodeMsg(buf, 'EnergyMessage');
      						console.log(JSON.stringify(msgobj32));
      					} catch (error) {
      						console.log('id 32 error at: ', error);
      					}
      				} else if (packetType == 1) {
      					try {
      						let msgobj1 = decodeMsg(buf, 'InverterMessage');
      						console.log(JSON.stringify(msgobj1));
      					} catch (error) {
      						console.log('id 1 error at: ', error);
      					}
      				} else {
      					console.log('unknown packetType', packetType);
      				}
      			} catch (error) {
      				console.log('error at: ', i, error);
      			}
      		}
      	});
      }
      
      parsemsg(messages);
      

      Ich denke das kann für eine weitere Auswertung der Daten ganz hilfreich sein.

      Gruß
      Klaus

      posted in JavaScript
      F
      foxthefox
    • RE: Fritzbox DECT Adapter

      @haselchen
      Im Forum lese ich nur sporadisch mit, wenn ein Issue auf github erstellt wird, dann bekomme ich das eher mit.

      info glob state -> habe ich auf debug gelegt, kommt also nicht mehr
      Der Fehler mit 'count' kommt von der ausgesteckten Steckdose, da antwortet die FB anders und das wird in 2.5.3 behoben sein.
      Ich versuche heute noch die 2.5.3 auf github zu veröffentlichen.

      Mit der Version 2.5 habe ich die Statistiken die die FB macht nun in IOB verfügbar, plus noch das Aufaddieren der Werte.

      Gruß
      Klaus

      posted in ioBroker Allgemein
      F
      foxthefox
    • [Neuer Adapter] ioBroker.statistics

      Hallo,

      habe soeben den Statistik Adapter auf ppm veröffentlicht.

      Einen ersten Ansatz für die Doku ist auch Bestandteil davon:

      https://github.com/foxthefox/ioBroker.s … owto_de.md

      Der Adapter wird über die Einstellung der Objekte/States vorgenommen, also in gleicher weise wie für history/sql/influxdb parametriert.

      Wozu dient der Adapter:

      • Schaltspielzählung, Zählen von 1/true Rückmeldungen (nicht von Kommandos)

      • Betriebszeitzählung

      • Umwandlung von Impulsen von Zählern in physikalische Größe und daraus Verbräuche

      • Bestimmung von Verbräuchen in Zeiträumen aus fortlaufenden Zählerständen

      • Gruppierung von Verbräuchen und Berechnung der Kosten

      • Tages min/max/Durschschnitt

      • Abspeicherung der Werte in Datenpunkte für Tag/Woche/Monat/Quartal/Jahr

      Die Datenpunkte .save… werden erst am Ende des jeweiligen Zeitraumes geschrieben.

      Die Datenpunkte .temp... zeigen das bisher im Zeitraum aufgelaufene an.

      Bin auf Feedback gespannt.

      Gruß

      Klaus

      PS. Ich werde noch iobroker.repository updaten, damit es dann auch gleich bei den Adaptern in der Oberfläche auftaucht.

      posted in Tester
      F
      foxthefox
    • RE: Fritzbox DECT Adapter

      @shadowhunter23 sagte in Fritzbox DECT Adapter:

      grün.

      Hätte ich nochmal erwähnen können, daß beim update auf jsonUI der Algorithmus für die Verschlüsselung anders ist und deswegen braucht es die Neueingabe des Passworts.

      Der Adapter hat keine Überwachung für die Kommunikation, nur die Verbindung zu Host und Lebenszeichen.

      posted in ioBroker Allgemein
      F
      foxthefox
    • RE: Neuer Adapter ecoflow-mqtt

      @ponti92

      Ich komm voran, wenngleich die Hitze nicht förderlich ist.
      Evtl. Kommt die Version am nächsten WE raus.

      posted in Tester
      F
      foxthefox
    • RE: Neuer Adapter ecoflow-mqtt

      @klausn sagte in Neuer Adapter ecoflow-mqtt:

      @foxthefox

      Zu #1: ich denke, dass der Parameter deswegen nicht mitgeschickt wird, weil sein aktueller Wert 0 ist. Könnte man im Adapter für nicht mitgeschickte Parameter den Ausgabewert auf 0 setzen?

      Denkbar wäre eine solche Vorgehensweise, aber ohne Kenntnisse wie die Geräte wirklich funktionieren, würde ich das nicht so implementieren.
      Eine mögliche Erklärung, warum die Daten unvollständig sind, wäre es immerhin.

      posted in Tester
      F
      foxthefox
    • RE: Jeelink - Keine Daten im Log (selbst gelöst)

      @homoran
      Die ID ist halt nicht eindeutig und fix und man empfängt alles was um einen drum rum ist. Deswegen im log die Lage beobachten und dann an einem Gerät die Batterie wechseln und das neue ist die ID für die Konfiguration.
      Sehe es also eher problematisch.
      Leider schicken die Geräte auch keine Typkennung mit, sonst könnte man alles reinkonfigurieren was empfangen wird. Zuordnung müsste man dennoch herstellen.

      posted in Hardware
      F
      foxthefox
    • Neuer Adapter: Yamaha MusicCast

      Hi All,

      wie schon in einem anderen Thread angekündigt, bin ich dabei einen Adapter für Yamaha MusicCast zu schreiben.

      Über

      npm install iobroker.musiccast
      

      sollte immer eine funktionierende Version installierbar sein.

      Mit

      npm install https://github.com/foxthefox/ioBroker.musiccast/tarball/master --production
      

      ist die aktuellste Version aus github installierbar (muß aber nicht zwingend lauffähig sein :roll: )

      Mittlerweile habe ich auch die Search Funktion in der admin-Page eingebaut.

      Hier sollte das gerät gefunden werde, da die Suche nur einen Wert ausgibt, sollte man bei mehreren Geräten mehrmals suchen, bis alle Geräte gefunden sind.

      Danach ist abzspeichern und der Adapter startet automatisch.
      1926_musiccast.png

      Die README.md enthält die derzeitig implementierten Datenpunkte, bzw. Funktionen.

      Bisher ist "main" und "netusb" enthalten.

      Wenn es zu Fehlern kommen sollte, so wäre es sehr hilfreich wenn der Fehler mit eingeschaltetem DEBUG nachgestellt wird.

      Ich habe bisher erfolgreich mit WX-030 und YSP-1600 testen können.

      Ausblick:

      • Input Auswahl und Equalizer.

      • update auf aktuellen State, Station, Titel etc.

      • Mclink kommt auf jeden Fall rein, da dies für mein Setup wichtig ist.

      Gruß

      Klaus

      posted in ioBroker Allgemein
      F
      foxthefox
    • RE: [Neuer Adapter] ioBroker.statistics

      Hallo,

      auch wenn es evtl. nicht so aussah, ich arbeite weiter an der Verbesserung meiner Adapter.

      Der Statistics Adapter ist in der Version 0.2.1 essentiell verbessert:

      • Rundung der Werte
      • min/max Bestimmung nicht nur täglich, sondern auch Woche/Monat/Quartal/Jahr
      • Problem mit dayMin=0 behoben
      • Betriebszeitzählung erfolgt jetzt mit jedem Signal was abonniert ist, egal ob es sich um einen echten Signalwechsel handelt oder nur die gleiche Info nochmal gekommen ist. Die Zeiten werden entsprechend aufaddiert. Die Zustände .last01/.last10 zeigen somit nicht mehr die letzten echten Signalwechsel an.
      • Betriebszeitzählung erfolgt täglich 2sec vor Mitternacht mit einem Trigger auf das aktuelle Signal. Somit wird sichergestellt, daß bei längeren gleichbleibenden Zuständen auch die Werte tagesbezogen ermittelt werden.
      • Fehlermeldung für message ist eliminiert

      Falls es Probleme/Fehler gibt, dann hier posten oder noch besser in GitHub ein Issue aufmachen.

      Ansonsten bin ich auf Rückmeldungen von euch gespannt.

      Gruß
      Klaus

      posted in Tester
      F
      foxthefox

    Latest posts made by foxthefox

    • RE: Neuer Adapter ecoflow-mqtt

      @hossi

      Guthaben war wohl autokorrektur und sollte github sein.

      Das sollte jetzt nicht passieren, daß der Adapter nicht mehr startet.
      bzw. da sich etwas verhakelt.

      Dank deines Screenshots, habe ich den Fehler gefunden, da ist mir eine } durch das Einfügen verlustig gegangen.
      Sorry.
      Habs auf github korrigiert.

      posted in Tester
      F
      foxthefox
    • RE: Neuer Adapter ecoflow-mqtt

      @hossi
      OK, es bleibt bei null, weil der Datenpunkt ja nicht Teil des Telegramms ist. Und da ich noch einen Fehler hatte, wurde die 0 nicht gesetzt.
      Habe das andere Telegramm gefunden, was die updates zyklisch enthält, habe dort auch die "0" eingebaut.

      Beides ist jetzt auf github hochgeladen. Einfach nochmal drüberinstallieren. Datenpunkte musst du nicht löschen.

      posted in Tester
      F
      foxthefox
    • RE: Neuer Adapter ecoflow-mqtt

      @hossi
      Danke für die Rückmeldung.
      Lerr oder (null) ist nicht die gewünschte 0.
      Da muß ich noch etwas machen.
      Ich glaube es gab auch noch ein weiteres Telegramm, welches auch die Datenpunkte beschreibt (mir ist da so).
      Allerdings beim Neustart, hätte es auch schon 0 haben sollen.

      posted in Tester
      F
      foxthefox
    • RE: Neuer Adapter ecoflow-mqtt

      @hossi

      habe eine 1.4.7 auf github vorbereitet (expert mode, custom install, pfad: https://github.com/foxthefox/ioBroker.ecoflow-mqtt/tree/1.4.7).
      für poweroceanplus wird mpptPwr/sysGridPwr/bpPwr auf 0 gesetzt, wenn nicht vorhanden. Im debug mode kommt dann auch eine Meldung dazu im log.

      Den Datenpunkt bpTargetSoc habe ich auf 101 gesetzt.
      Die anderen Datenpunkte bpPwr, mpptPwr waren schon auf 20kW.

      Hier ist es notwendig den Adapter zu stoppen, die Datenpunkte löschen, Adapter starten.
      Dann werden sie mit neuen Bereichen angelegt.

      Bitte berichten, ob es funzt.

      posted in Tester
      F
      foxthefox
    • RE: Neuer Adapter ecoflow-mqtt

      @klausn
      Das mit den Auslassungen im Telegramm ist kein großer Akt.
      Wenn es wirklich so ist, dann baue ich das am WE mal dazu.

      posted in Tester
      F
      foxthefox
    • RE: Neuer Adapter ecoflow-mqtt

      @hossi
      Danke für die Rückmeldung.
      Die Wertebereiche sind leider nicht von EcoFlow (da gibt es keine Doku), sie sind von mir. Ich versuche da mit einem educated guess etwas abzuschätzen, gelingt aber nicht immer😎
      Wenn so etwas auftritt, bitte immer melden und evtl. auch eine Abschätzung was sinnvoller wäre.
      Manchmal sind die Datenblattangaben auch nur Richtwerte und praktisch geht auch mehr.

      posted in Tester
      F
      foxthefox
    • RE: Neuer Adapter ecoflow-mqtt

      @sandmanyz
      Richtig, es sieht danach aus, das die Werte nicht übertragen werden. Bzw. das Telegramme, welches dies anfordert und die Antworttelegramme davon, sind noch nicht identifiziert oder mitgeloggt.
      Da die App ja wahrscheinlich etwas anzeigt, müsste dazu auch Kommunikation zu finden sein. Oder die cloud berechnet es.

      posted in Tester
      F
      foxthefox
    • RE: Neuer Adapter ecoflow-mqtt

      @sandmanyz sagte in Neuer Adapter ecoflow-mqtt:

      In der EcoFlow App sehe ich für meinen Stream Inverter die Statistik. Also den Ertrag nach Tag, Woche, Monat und Jahr. Dafür scheint es jedoch keinene Datenpunkte zu geben. Unter "energy" hätte ich sie erwartet aber dort gibt es keine Werte (sehe nur: (null Wh)).

      Ist das ggf. nicht implementiert bzw. ist das auf dem Plan dies zu implementieren?

      Adapter Version: 1.4.6

      Hattest du den Objektbaum vom ersten Versuch mit Powerstream gelöscht?
      Am besten trotzdem mal alles unterhalb BK… löschen.
      Die energy Struktur ist wahrscheinlich noch ein Überbleibsel von Powerstream
      Bis jetzt gab es noch keine Anzeichen, dass die stream auch energy Werte übertragen.

      posted in Tester
      F
      foxthefox
    • RE: Neuer Adapter ecoflow-mqtt

      @hossi
      Danke.
      Sehr gut zu wissen, dann muß ich nur noch herausfinden, warum bei @KlausN die 2te und 3te Batterie nicht richtig übernommen wird.

      posted in Tester
      F
      foxthefox
    • RE: Neuer Adapter ecoflow-mqtt

      @hossi

      einen DONATE button habe ich nicht.
      Als Dank reicht mir ein Star im git repo 😊

      Ja, die Doku ist ggf. etwas spärlich und leider erstmal nur in Englisch, aber es gibt auch bebilderte Anweisungen.
      Ansonsten einfach hier fragen.

      Das mit <20 scheint an den Telegrammen zu liegen, die scheinbar den Wert nicht mehr mitsenden, wenn es <20 ist.
      Da kann man erstmal nicht viel machen. Wie oben schon geschrieben, bestünde theoretisch die Möglichkeit den Wert künstlich auf 0 zu setzen, aber ob das Fehlen im Telegramm dies immer als Maßnahme zulässt, weiß ich nicht.

      Du könntest es im Log selbst nachvollziehen.
      Debug Modus einschalten, msgUpdate und msgSet/get ein Häckchen und bei debug device zwischen der Seriennummer und den Zusatzbatterien.
      https://github.com/foxthefox/ioBroker.ecoflow-mqtt/blob/main/doc/en/IOB_HA/logging.md

      Im log tauschen dann solche Dinge auf:

      ... [update] msg#0 => JTS1_ENERGY_STREAM_REPORT {"sysLoadPwr":10600,"sysGridPwr":110,"mpptPwr":500,"bpPwr":-9990,"bpSoc":22}
      

      die Werte einfach mal beobachten, bzw. die Vollständigkeit anschauen. Höchstwahrscheinlich wird dann mppPwr mal fehlen, wenn es zu dunkel ist.

      Ansonsten interessiert mich, ob bei dir die Batteriezustände "statusReportBattery" auch mit Werten befüllt sind.

      posted in Tester
      F
      foxthefox
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo