[Gelöst] Bitte mal das Brett vor meinem Kopf entfernen

Begonnen von Motivierte linke Hände, 27 Oktober 2022, 09:46:09

Vorheriges Thema - Nächstes Thema

Motivierte linke Hände

Ich verstehe nicht, warum ((0 > 0.001) || (0 < 0.001)) hier "wahr" ist:

sub historyCheck ($$) {
  my ($device, $reading) = @_;
  my $newVal = ReadingsNum($device, $reading, 0);
  my $lastVal = ReadingsNum('Datenhalde', 'lastValue_'.$device.'_'.$reading, 0);
  my $newDiff = $newVal - $lastVal;
  my $lastDiff = ReadingsNum('Datenhalde', 'lastDiff_'.$device.'_'.$reading, 0);
  my $diffDifference = $lastDiff - $newDiff;

  if (($diffDifference > 0.001) || ($diffDifference < 0.001)) {
    fhem('setreading Datenhalde lastDiff_'.$device.'_'.$reading.' '.$newDiff);
    Log 1, ("historyCheck($device): Geänderte Abweichung: jetzt $newDiff, vorher $lastDiff, Differenz $diffDifference");
  }
}


Logausgabe:
2022.10.27 09:15:17 1: historyCheck(myMeter): Geänderte Abweichung: jetzt 0, vorher 0, Differenz 0
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

rabehd

((0 > 0.001) || (0 < 0.001))

0 > 0.001 -> nein
oder
0 < 0.001 -> ja
Ergebnis ja/wahr
Auch funktionierende Lösungen kann man hinterfragen.

Motivierte linke Hände

Danke. Gemeint war natürlich

(($diffDifference > 0.001) || ($diffDifference < -0.001))

Das Leben kann so einfach sein, wenn andere beim Denken helfen.
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

Nobbynews

Zitat von: Motivierte linke Hände am 27 Oktober 2022, 10:16:09
(($diffDifference > 0.001) || ($diffDifference < -0.001))

Wie wäre es denn mit((abs($diffDifference) > 0.001)

Motivierte linke Hände

Auch das wäre definitiv besser als mein erster Ansatz!  ::)
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.