Neueste Beiträge

#21
ESP Familie / Aw: ESP32-C6 - Hat schon jeman...
Letzter Beitrag von TomLee - 12 Juni 2025, 13:04:28
Den Zigbee_Occupancy_Sensor.ino Sketch hab mir leicht angepasst:

#ifndef ZIGBEE_MODE_ZCZR
#error "Zigbee router mode is not selected in Tools->Zigbee mode"
#endif

#include "Zigbee.h"

/* Zigbee occupancy sensor configuration */
#define OCCUPANCY_SENSOR_ENDPOINT_NUMBER 10
uint8_t button = BOOT_PIN;
uint8_t sensor_pin = 4;  // GPIO4
ZigbeeOccupancySensor zbOccupancySensor = ZigbeeOccupancySensor(OCCUPANCY_SENSOR_ENDPOINT_NUMBER);

void setup() {
  Serial.begin(115200);

  // Init Button + Sensor
  pinMode(button, INPUT_PULLUP);     // BOOT-Taste mit internem Pullup
  pinMode(sensor_pin, INPUT_PULLUP); // GPIO4 mit internem Pullup

  // Geräteinformationen
  zbOccupancySensor.setManufacturerAndModel("ESP32-C6", "DIY-LD2410B");
  // determine powersource
  zbOccupancySensor.setPowerSource(ZB_POWER_SOURCE_MAINS);

  // Endpoint registrieren
  Zigbee.addEndpoint(&zbOccupancySensor);

  Serial.println("Starte Zigbee im Router-Modus...");
  if (!Zigbee.begin(ZIGBEE_ROUTER)) {
    Serial.println("Zigbee konnte nicht gestartet werden!");
    ESP.restart();
  }

  // Netzwerk 180 Sekunden nach Boot offen lassen
  Zigbee.setRebootOpenNetwork(180);

  Serial.println("Warte auf Netzwerkverbindung...");
  while (!Zigbee.connected()) {
    Serial.print(".");
    delay(100);
  }
  Serial.println("\nVerbunden als Router.");
}

void loop() {
  static bool occupancy = false;

  // GPIO4 → LOW = Bewegung, HIGH = keine Bewegung
  if (digitalRead(sensor_pin) == LOW && !occupancy) {
    zbOccupancySensor.setOccupancy(true);
    zbOccupancySensor.report();
    Serial.println("Bewegung erkannt → occupancy = true");
    occupancy = true;
  } else if (digitalRead(sensor_pin) == HIGH && occupancy) {
    zbOccupancySensor.setOccupancy(false);
    zbOccupancySensor.report();
    Serial.println("Keine Bewegung → occupancy = false");
    occupancy = false;
  }

  // Factory Reset bei langem Tastendruck
  if (digitalRead(button) == LOW) {
    delay(100);  // Entprellung
    int startTime = millis();
    while (digitalRead(button) == LOW) {
      delay(50);
      if ((millis() - startTime) > 3000) {
        Serial.println("Factory Reset in 1 Sekunde...");
        delay(1000);
        Zigbee.factoryReset();
      }
    }
  }

  delay(100);
}

(Optionale) Konverter-Datei:
import * as m from 'zigbee-herdsman-converters/lib/modernExtend';

export default {
    zigbeeModel: ['DIY-LD2410B'],
    model: 'DIY-LD2410B',
    vendor: 'ESP32-C6',
    description: 'Automatically definition',
    extend: [m.occupancy()],
    meta: {},
};

Im seriellen Monitor sehe ich das die Ereignisse nur einmal gesendet werden:
Bewegung erkannt → occupancy = true
Keine Bewegung → occupancy = false

in z2m ist im Debug-Log nur folgendes zu sehen:
[2025-06-12 12:47:31] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0x543204fffe3d996c', payload '{"linkquality":183,"occupancy":true}'
[2025-06-12 12:47:31] z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0x543204fffe3d996c', payload '{"linkquality":207,"occupancy":false}'

in FHEM kommen die Ereignisse aber immer doppelt an:
12:47:31.867 zigbee_pi zigbee2mqtt/bridge/logging {"level":"info","message":"z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0x543204fffe3d996c', payload '{\"linkquality\":183,\"occupancy\":true}'"}
12:47:31.892 zigbee_pi zigbee2mqtt/0x543204fffe3d996c {"linkquality":183,"occupancy":true}
12:47:31.932 zigbee_pi zigbee2mqtt/0x543204fffe3d996c {"linkquality":183,"occupancy":true}
12:47:31.970 zigbee_pi zigbee2mqtt/bridge/logging {"level":"info","message":"z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/0x543204fffe3d996c', payload '{\"linkquality\":207,\"occupancy\":false}'"}
12:47:31.989 zigbee_pi zigbee2mqtt/0x543204fffe3d996c {"linkquality":207,"occupancy":false}
12:47:32.016 zigbee_pi zigbee2mqtt/0x543204fffe3d996c {"linkquality":207,"occupancy":false}

Ist in dem Thema irgendwer soweit drin das er mir sagen kann warum die Events in FHEM doppelt ankommen?
Mein Gedanke war das z2m da was falsch interpretiert, darum hab ich eine Konverter-Datei erstellt. Damit wird das Device auch supported, aber es bleibt beim gleichen Verhalten mit den doppelten Events.
#22
DOIF / Aw: DOIF im Status "disabled" ...
Letzter Beitrag von passibe - 12 Juni 2025, 11:59:31
Also ich habe auch DOIFs, die ich über einen Taster temporär ein-/ausschalte und nutze dafür ausschließlich set <NAEME> disable bzw. set <NAME> initialize (teilweise auch gefolgt von checkall).
Hatte damit noch nie Probleme.

Es wäre mir auch neu, dass sich, jedenfalls für diesen Anwendungsbereich, der Effekt von disable (set statt attr) unterscheidet.
#23
DOIF / Aw: DOIF im Status "disabled" ...
Letzter Beitrag von tomcat.x - 12 Juni 2025, 11:47:51
Wie genau das Verhalten des DOIF in beiden Fällen ist, kann ich Dir nicht sagen. Von der Nutzung gibt es noch einen Unterschied, das Attribut überlebt einen Neustart nur nach einem save. Daher nutze ich das höchstens für Sachen wie Sommer-/Winterumstellung, nicht für ständige Änderungen. Aber für Deinen Test könnte es vielleicht eine Hilfe sein, um zu sehen, ob das etwas am Verhalten ändert.
#24
Solaranlagen / Aw: Modul für Ecoflow-Komponen...
Letzter Beitrag von macfly - 12 Juni 2025, 10:47:17
Zitat von: Neolux am 10 Juni 2025, 16:12:05
Zitat von: macfly am 10 Juni 2025, 15:37:29zweiter Eindruck: ein bisschen fischig sind einige Daten, hier mal meine Vermutungen:
data_mppt.inAmp ist 325, müsste 3,25 sein
data_mppt.inVol ist 875, müsste 87,5 sein
data_mppt.inWatts ist 3050, müsste 305,0 sein  (ist gerade wolkig)
data_mppt.outAmp ist 585, müsste 5,85 ein
data_mppt.outVol ist 508, müsste 50,8 sein
data_mppt.outWatts ist 2978, müsste 297,8 sein

Dann hab ich das mal angepasst.  ;D

Ich verstehe es aber nicht ganz...

Aus der Doku:
Zitatdata_mppt.inVol long "PV input voltage (mV)"
data_mppt.inAmp long "PV input current (mA)"
data_mppt.inWatts int "PV input power (W)"
data_mppt.outVol long "PV output voltage (mV)"
data_mppt.outAmp long "PV output current (mA)"
data_mppt.outWatts int "PV output power (W)"

data_mppt.inAmp sind demnach 325 mA, also 0,325 A?!
und
data_mppt.inVol sind demnach 875 mV, also 0,875 V?!

Naja, nehme ich dann mal so hin, hab ich ja mit dem PowerStream nicht anders erlebt. :)


Spannend wären dann noch mal folgende Werte:
data_mppt.dcdc12vVol
data_mppt.dcdc12vAmp
data_mppt.dcdc12vWatts
data_mppt.carOutVol
data_mppt.carOutAmp
data_mppt.carOutWatts

Diese Werte habe ich nicht, aber folgende:

data_ems.paraVolMax 50118 50.118   
data_ems.paraVolMin 49528 49.528
data_ems.chgVol 52225 52.225
data_bmsMaster.amp 13301 13.301
data_bmsMaster.maxCellVol 3345 33.45
data_bmsMaster.minCellVol 3339 33.39
data_bmsMaster.vol 50251 50.251
data_ems.chgVol 52257 52.257
data_inv.cfgAcOutVoltage 230000 230.000

und für den Powerstream Wechselrichter:

data_20_1.bmsReqChgVol 541830 54.1830
data_20_1.bmsReqChgAmp 650000 6.50000
data_20_1.llcOpVolt 4106 41.06

(erste Zahl: Anzeige, zweite Zahl: meine Erwartung.
#25
DOIF / Aw: DOIF im Status "disabled" ...
Letzter Beitrag von TubeHead - 12 Juni 2025, 10:43:20
Ok, von dem Attribut habe ich bis dato noch nichts gehört. Muss ich mich mal schlaulesen...

EDIT:
Habe was Interessantes dazu unter https://forum.fhem.de/index.php?topic=117088.0 gefunden. Habe ich noch nicht so ganz verstanden, aber immerhin mal was drüber gelesen  ;D

Nun stellt sich mir halt die Frage, was in meinem Fall besser geeignet ist, um per Tastendruck die Ausführung des DOIF zu verhindern. Wenn ich das richtig verstanden habe, sorgt ein "set blablub disable" zwar dafür, dass das DOIF keine Befehle mehr ausführt, wohl aber "intern" noch aktiv ist und die ggf. gesetzten Timer weiterlaufen.
Dem Gegenüber führt das gesetzte Attribut "disable" dazu, dass das DOIF selbst quasi aus dem Framework herausgenommen/unsichtbar ist und auch alle Timer nichts mehr machen...

Habe ich das richtig verstanden?


#26
DOIF / Aw: DOIF im Status "disabled" ...
Letzter Beitrag von tomcat.x - 12 Juni 2025, 10:31:48
Vielleicht ist das Attribut "disable" gemeint. Ich sehe, dass ich das in manchen meiner DOIFs drin habe. Zwar gerade auf 0 gesetzt, aber dass es vorhanden ist bedeutet, dass ich das schon mal auf 1 gesetzt hatte. Hatte vermutlich einen Grund. Aber ich könnte auch nicht sagen, dass das war, weil mit set ... diable noch was aktiv war.
#27
SVG / Plots / logProxy / Aw: merkwürdiger Plot
Letzter Beitrag von eisman - 12 Juni 2025, 10:20:59
hi,

die FB als NTP habe ich auch schon Raus genommen, der NTP-Sever(FB, da IP eingetragen)
ist bei allen Geräten jetzt de.pool.ntp.org (nicht als IP) und es aktuell ein ESP32,
hier gibt es keine Möglichkeit etwas anderes einzutragen.

was mir aber aufgefallen ist, es gibt doch mehr log-Files, in denen man etwas
findet (in dem Fall nämlich nichts) zwischen 05:07 bis 05:10. 3 Minuten in dem das
Netzwerk komplett steht. Nur Warum trägt ein Device etwas falsches ins log.

ESP_51
2025-06-12_05:08:45 TC_0807 measured-temp: 49.8
2025-06-12_05:08:45 TC_0808 measured-temp: 43.3
2025-06-12_03:08:55 PH_0801 status: wasser
2025-06-12_03:08:55 TC_0802 measured-temp: 58.4
2025-06-12_03:08:55 TC_0801 measured-temp: 59.6
2025-06-12_03:08:55 TC_0803 measured-temp: 42.6
2025-06-12_05:09:18 PH_0801 status: wasser
2025-06-12_05:09:18 TC_0804 measured-temp: 39.4

TC_0101
2025-06-12_05:07:21 TC_0101 lueftenMoeglich: ja
2025-06-12_05:07:41 TC_0101 actuator: 0
2025-06-12_05:07:41 TC_0101 lueftenMoeglich: ja
2025-06-12_05:10:20 TC_0101 humidity: 53
2025-06-12_05:10:20 TC_0101 measured-temp: 24.4
2025-06-12_05:10:20 TC_0101 T: 24.4 H: 53

VD_0101
2025-06-12_05:07:41 VD_0101 operState: onTarget
2025-06-12_05:07:41 VD_0101 0
2025-06-12_05:10:40 VD_0101 ValveDesired: 0
2025-06-12_05:10:40 VD_0101 set_0

also der EAP773, hat zwar das gebracht was er sollte, nur mit dem Netzwerkproblem hat er nichts zu tun.

und wenn ich mir unter diesen Bedingungen, das Problem anschaue,

Anbieter XXX ==> keine Probleme, schnelles Netzwerk (Normales DSL)
Wechsel von XXX zum Anbieter YYY
Anbieter YYY ==> sporadische Netzwerk Probleme (DS-Lite)

Wechsel der Netzwerk Infrastruktur zu Omada... wegen ständiger Netzwerkproblemen
immer mal wieder kleine ausfälle.

Einführung NAT abschaltbar bei Omada, seit dem diese Plot Probleme.
ich werde das doppelte NAT wieder einschalten und beobachten.

Einzige was ich noch nicht so auf die reihe bekomme, sind die 2 Stunden bei einem ESP device
bei einem Lan Ausfall keine log Einträge wäre ja verständlich ...


1. keine verbindung zum NTP-sever (angeblich fritzbox (die IP gibt es nur einmal))
was macht nun der ntpd? wie ist er konfiguriert? ja laut FHEM wiki
gibt es vielleicht auch noch eine hardwareclock? (bei VM oder RPI, normal nein = auch nein)

2. keine verbindung zum DNS-server (fritzbox?) Doch zum Omada, da FB nicht im eigenen netz läuft (aber alles über IP)
3. keine verbindung zum internet (ist möglich, siehe oben)
4. ...


gruss
 
 
#28
Heizungssteuerung/Raumklima / Aw: JUDO Steuerung
Letzter Beitrag von Guybrush - 12 Juni 2025, 10:04:03
Zitat von: klausg am 12 Juni 2025, 09:39:19Hast du eine Idee was diese Readings bedeuten:
operatingMode      0               2025-06-12 09:37:04
warningCode        256             2025-06-12 09:34:04


Leider nein. Die api gibt nichts her und im Netz ist da nichts zu finden. Wenn ich eine i-dos hätte könnte ich das selbst umsetzen.

Funktioniert jetzt sonst soweit alles bei dir?
#29
1Wire / Aw: ESERA HUB - Fehlermeldung ...
Letzter Beitrag von Beta-User - 12 Juni 2025, 09:40:30
Vermutlich (tm) ist es einem disable-Esera-Dinges in FHEM egal, wenn der Typ falsch ist...

Eventuell kannst das ja mal an den zuständigen Maintainer adressieren? 
#30
Heizungssteuerung/Raumklima / Aw: JUDO Steuerung
Letzter Beitrag von klausg - 12 Juni 2025, 09:39:19
operatingHours sind jetzt perfekt!

operatingHours     8d 18h 27m      2025-06-12 09:33:01

Hast du eine Idee was diese Readings bedeuten:
operatingMode      0               2025-06-12 09:37:04
warningCode        256             2025-06-12 09:34:04