NEWS
Eine Frage zur Performens bei Datenpunkt Überwachung
-
Hallo zusammen,
Habe ein Skript zur Batterie Status Überwachung geschrieben und es stellt sich mir eine Frage:
Es sind ungefähr 60 Sensoren vorhanden.
Welches ist von der Performents am besten:
Per Schedule zB. alle 60 sek. nachzuschauen oder
peron({id: 'deconz.0.Sensors.3.battery'}, function (obj) {batterie_Status();});
alle Datenpunkte auf Änderungen zu Überwachen?
Danke vorab für Eure Hilfe.
MfG
Wastl -
@langer sagte in Eine Frage zur Performens bei Datenpunkt Überwachung:
Per Schedule zB. alle 60 sek. nachzuschauen
mal ehrlich:
stirbt bei dir die Batterie(n) so schnell, dass alle 60 Sekunden nachgesehen werden muss? -
-
@homoran sagte in Eine Frage zur Performens bei Datenpunkt Überwachung:
stirbt bei dir die Batterie(n) so schnell, dass alle 60 Sekunden nachgesehen werden muss?
Durch das häufige wachrütteln schon...
-
Nop!
Die Zeitangabe war nur als Beispiel, weil ich Sensor Überwachung am Schreiben bin und es Grundsätzlich darum geht ob besser Schedule oder DP-Überwachung.
MfG
Wastl -
Könntest Du mir mal ein Beispiel zeigen, keine Ahnung was oder wie ich das Anwenden kann.
MfG
Wastl -
@langer sagte: Grundsätzlich darum geht ob besser Schedule oder DP-Überwachung.
Batterie-Überwachung ist ein schlechtes Beispiel, da sich die Spannung nur sehr langsam ändert. Will man eine Echtzeit-Überwachung, sind Datenpunkt-Trigger besser geeignet.
-
Das verstehe ich, war aber gerade dabei und habe das als Beispiel genommen.
Es geht um Fenster, Tür, Licht, Bewegung usw.
MfG
Wastl -
@langer sagte: Könntest Du mir mal ein Beispiel zeigen
Wenn alle Batterien in Geräten für Deconz sind und die Datenpunkte alle mit ".battery" enden, kann der RegExp so aussehen:
on(/^deconz\.0\..+\.battery$/, function(dp) {});
-
@langer sagte: Es geht um Fenster, Tür, Licht, Bewegung usw.
Dann Datenpunkt-Trigger verwenden.
-
-
@langer sagte: Also so wie ich es gemacht habe?
Nicht ganz: An die Funktion batterie_Status() werden keine Parameter übergeben. Was soll sie also auswerten? Besser:
on('deconz.0.Sensors.3.battery', batterie_Status);
So wird an batterie_Status(dp) das gesamte Datenpunkt-Objekt übergeben und nur bei Wertänderung getriggert.
-
Ich melde mich nochmal und bitte um Hilfe:
Folgende Datenpunkte möchte ich mit RegExp auf Änderungen Überwachen
'bshb.0.roomClimateControl_hz_1.RoomClimateControl.setpointTemperatureForLevelComfort' 'bshb.0.roomClimateControl_hz_1.RoomClimateControl.setpointTemperatureForLevelEco' 'bshb.0.roomClimateControl_hz_2.RoomClimateControl.setpointTemperatureForLevelComfort' 'bshb.0.roomClimateControl_hz_2.RoomClimateControl.setpointTemperatureForLevelEco' 'bshb.0.roomClimateControl_hz_3.RoomClimateControl.setpointTemperatureForLevelComfort' 'bshb.0.roomClimateControl_hz_3.RoomClimateControl.setpointTemperatureForLevelEco' 'bshb.0.roomClimateControl_hz_4.RoomClimateControl.setpointTemperatureForLevelComfort' 'bshb.0.roomClimateControl_hz_4.RoomClimateControl.setpointTemperatureForLevelEco' 'bshb.0.roomClimateControl_hz_5.RoomClimateControl.setpointTemperatureForLevelComfort' 'bshb.0.roomClimateControl_hz_5.RoomClimateControl.setpointTemperatureForLevelEco' 'bshb.0.roomClimateControl_hz_6.RoomClimateControl.setpointTemperatureForLevelComfort' 'bshb.0.roomClimateControl_hz_6.RoomClimateControl.setpointTemperatureForLevelEco' 'bshb.0.roomClimateControl_hz_7.RoomClimateControl.setpointTemperatureForLevelComfort' 'bshb.0.roomClimateControl_hz_7.RoomClimateControl.setpointTemperatureForLevelEco' 'bshb.0.roomClimateControl_hz_8.RoomClimateControl.setpointTemperatureForLevelComfort' 'bshb.0.roomClimateControl_hz_8.RoomClimateControl.setpointTemperatureForLevelEco' 'bshb.0.roomClimateControl_hz_10.RoomClimateControl.setpointTemperatureForLevelComfort' 'bshb.0.roomClimateControl_hz_10.RoomClimateControl.setpointTemperatureForLevelEco' 'bshb.0.roomClimateControl_hz_14.RoomClimateControl.setpointTemperatureForLevelComfort' 'bshb.0.roomClimateControl_hz_14.RoomClimateControl.setpointTemperatureForLevelEco'
Ist dieser Befehl richtig:
on(/bshb.0.roomClimateControl_hz_*\.\RoomClimateControl\.setpointTemperatureForLevel*$/, function(dp) {});
Vorab vielen Dank
MfG
Wastl -
@langer sagte: Ist dieser Befehl richtig:
Nein, vor den * gehört ein Punkt.
on(/^bshb\.0\.roomClimateControl_hz_.*\.RoomClimateControl\.setpointTemperatureForLevel.*/, function(dp) { // Auswertung von dp });