#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);
}
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: {},
};
Bewegung erkannt → occupancy = true
Keine Bewegung → occupancy = false
[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}'
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}
Zitat von: Neolux am 10 Juni 2025, 16:12:05Zitat 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.
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
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
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
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