Autor Thema: Temperaturscanner "Quick and Dirty"  (Gelesen 1655 mal)

Offline ghostrider

  • New Member
  • *
  • Beiträge: 10
Antw:Temperaturscanner "Quick and Dirty"
« Antwort #15 am: Gestern um 11:49:15 »
define was_weiss_ich at +*00:15:00 {Tscan('MAX_0adb5b')}
habe ich jetzt umgesetzt:

define TempScanBuero at +*00:15:00 {Tscan('MAX_0adb5b')}

Wollte es anschließen über
TempScanBuero execNow testen

passiert aber nicht´s zumindest weiß ich nicht wo man es finden soll

Online Wzut

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 3878
Antw:Temperaturscanner "Quick and Dirty"
« Antwort #16 am: Gestern um 12:47:30 »
vermutlich bei
return if ($IST ne $IST+0); # die desiredTemperature liegt nicht zwischen 5 ... 30 Grad , vllt on / off ?

denn wenn desiredTemperatur 20.0 ist ergibt $IST+0 = 20 und für  einen Stringvergleich ist 20.0 nunmal ungleich 20
bei 19.5 bzw allen .5 Temperaturen passt das. Ergo erstmal die ganze Zeile rauswerfen.
Das gibt dann aber Mecker bei on/off , daher dann doch mit ReadingsNum arbeiten und den Wert checken :

my $IST  = ReadingsNum($device, 'desiredTemperature', '0');
return if ($IST < 5);
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Offline ghostrider

  • New Member
  • *
  • Beiträge: 10
Antw:Temperaturscanner "Quick and Dirty"
« Antwort #17 am: Heute um 07:00:51 »
HI,

also die 99_myUtils.pm. sieht so aus.

Ich habe nur Temperaturen zwischen 15 und 21 Grad je nach Thermostat
Speziell bei dem


##############################################
# $Id: myUtilsTemplate.pm 21509 2020-03-25 11:20:51Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.


1;
sub Tscan {

    my $device = shift;
    my $hash   = $defs{$device} // return; # das Device gibt es gar nicht

    return if (($hash->{devtype} < 1) || ($hash->{devtype} > 2)); # das Device ist kein MAX HT
 
    my $IST  = ReadingsVal($device, 'desiredTemperature', '0'); # kein ReadingsNum verwenden !
    return if ($IST ne $IST+0); # die desiredTemperature liegt nicht zwischen 5 ... 30 Grad , vllt on / off ?

    my $SOLL = $hash->{'TScanZ'} // $IST; # beim ersten Aufruf einen gültigen Wert vorgeben

    if ($hash->{'TScanS'}) {
$hash->{'TScanS'} = 0;

if ($IST <= $SOLL) {
    $SOLL = $IST + .5;
    $hash->{'TScanZ'} = $SOLL;
    return CommandSet(undef, "$device desiredTemperature $SOLL");
        }
        else { $hash->{'TScanZ'} = $IST; }
    }
    else {
$hash->{'TScanS'} = 1;

if ($IST >= $SOLL) {
    $SOLL = $IST - .5;
    $hash->{'TScanZ'} =  $SOLL;
    return CommandSet(undef, "$device desiredTemperature $SOLL");
}
else { $hash->{'TScanZ'} = $IST; }
    }
    return;
}


RSSI

-33.5

2020-10-29 06:00:31
TimeInformationHour

4

2020-01-05 14:45:14
battery

ok

2020-10-29 06:00:31
batteryState

ok

2020-10-29 06:00:31
boostDuration

25

2020-01-05 15:53:25
boostValveposition

80

2020-01-05 15:53:25
comfortTemperature

21.0

2020-01-05 15:53:25
decalcification

Sat 12:00

2020-01-05 15:53:25
desiredTemperature

21.0

2020-10-29 06:00:31
deviation

-5.2

2020-10-29 06:00:31
ecoTemperature

17.0

2020-01-05 15:53:25
firmware

1.8

2020-01-05 15:53:25
gateway

1

2020-10-29 06:00:31
groupid

0

2020-01-05 15:53:25
lastTimeSync

2020-10-29 04:36:58

2020-10-29 04:36:58
lastcmd

desiredTemperature auto/boost

2020-10-27 13:23:57
maxValveSetting

100

2020-01-05 15:53:25
maximumTemperature

on

2020-01-05 15:53:25
measurementOffset

0.0

2020-01-05 15:53:25
minimumTemperature

off

2020-01-05 15:53:25
mode

auto

2020-10-29 06:00:31
msgcnt

84

2020-10-29 04:36:58
panel

unlocked

2020-10-29 06:00:31
peerIDs

000000

2020-10-29 06:00:31
peerList

Broadcast

2020-10-29 06:00:31
rferror

0

2020-10-29 06:00:31
state

21.0&deg;C

2020-10-29 06:00:31
temperature

15.8

2020-10-29 06:00:31
testresult

255

2020-01-05 15:53:25
valveOffset

0

2020-01-05 15:53:25
valveposition

89

2020-10-29 06:00:31
weekprofile-0-Sat-temp

14.0 °C / 14.0 °C

2020-10-26 22:32:31
weekprofile-0-Sat-time

00:00-22:00 / 22:00-24:00

2020-10-26 22:32:31
weekprofile-1-Sun-temp

14.0 °C / 14.0 °C

2020-10-26 22:32:31
weekprofile-1-Sun-time

00:00-22:00 / 22:00-24:00

2020-10-26 22:32:31
weekprofile-2-Mon-temp

14.0 °C / 21.0 °C / 14.0 °C

2020-10-26 22:32:31
weekprofile-2-Mon-time

00:00-06:00 / 06:00-14:00 / 14:00-24:00

2020-10-26 22:32:31
weekprofile-3-Tue-temp

14.0 °C / 21.0 °C / 14.0 °C

2020-10-26 22:32:31
weekprofile-3-Tue-time

00:00-06:00 / 06:00-14:00 / 14:00-24:00

2020-10-26 22:32:31
weekprofile-4-Wed-temp

14.0 °C / 21.0 °C / 14.0 °C

2020-10-26 22:32:31
weekprofile-4-Wed-time

00:00-06:00 / 06:00-14:00 / 14:00-24:00

2020-10-26 22:32:31
weekprofile-5-Thu-temp

14.0 °C / 21.0 °C / 14.0 °C

2020-10-26 22:32:31
weekprofile-5-Thu-time

00:00-06:00 / 06:00-14:00 / 14:00-24:00

2020-10-26 22:32:31
weekprofile-6-Fri-temp

14.0 °C / 21.0 °C / 14.0 °C

2020-10-26 22:32:31
weekprofile-6-Fri-time

00:00-06:00 / 06:00-12:00 / 12:00-24:00

2020-10-26 22:32:31
windowOpenDuration

15

2020-01-05 15:53:25
windowOpenTemperature

12.0
« Letzte Änderung: Heute um 07:06:24 von Wzut »

Online Wzut

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 3878
Antw:Temperaturscanner "Quick and Dirty"
« Antwort #18 am: Heute um 07:10:33 »
1. tu uns allen bitte den Gefallen und verwende code Tags und nicht quote = Zitat . Ich war mal so frei dein Posting zu editieren damit es lesbar ist.

2. die einsamme 1; vor der sub Tscan gehört da nicht hin sondern ganz ans Ende

3. Lies doch bitte nochmal was ich  gestern um um 12:47:30 geschrieben habe, mit dem $IST+0 wird es nicht gehen

4. mit dem zweiten Block kann niemand etwas anfangen , bitte immer ein list vom Device posten.
« Letzte Änderung: Heute um 07:12:35 von Wzut »
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher