ReadingsVal für Heizungsabfrage

Begonnen von Wuffi_steel, 13 Januar 2017, 08:58:18

Vorheriges Thema - Nächstes Thema

Wuffi_steel

Hallo ich habe einen kleinen Hänger. Nein notify macht nicht das was ich will.

Ich will das mein notify erst dann den Dummy ändert wenn ich die Temperatur erreicht habe und wenn sie darüber hinaus geht wieder nichts macht.

GPIO4_DS1820_0008030cb914.* { if(ReadingsVal("GPIO4_DS1820_0008030cb914","temperature","40") < 50) { fhem("set HeizungDummy ok") } else { fhem("set HeizungDummy zukalt") }}

HeizungDummy:zukalt { fhem("set teleBot message Achtung, Bitte Nachheizen: ".ReadingsVal("GPIO4_DS1820_0008030cb914","temperature","")."°C!") }

oder soll ich das lieber in 99_myUtils.pm einbauen?
Danke

DeeSPe

Zitat von: Wuffi_steel am 13 Januar 2017, 08:58:18
Hallo ich habe einen kleinen Hänger. Nein notify macht nicht das was ich will.

Ich will das mein notify erst dann den Dummy ändert wenn ich die Temperatur erreicht habe und wenn sie darüber hinaus geht wieder nichts macht.

GPIO4_DS1820_0008030cb914.* { if(ReadingsVal("GPIO4_DS1820_0008030cb914","temperature","40") < 50) { fhem("set HeizungDummy ok") } else { fhem("set HeizungDummy zukalt") }}

HeizungDummy:zukalt { fhem("set teleBot message Achtung, Bitte Nachheizen: ".ReadingsVal("GPIO4_DS1820_0008030cb914","temperature","")."°C!") }

oder soll ich das lieber in 99_myUtils.pm einbauen?
Danke

Mach das doch ohne dummy über ein userReadings:
attr GPIO4_DS1820_0008030cb914 userReadings tempcheck:temperature.* {ReadingsVal($NAME,"temperature","40")<50?"ok":"zukalt"}

define n_tempcheck GPIO4_DS1820_0008030cb914:tempcheck:zukalt.* { fhem "set teleBot message Achtung, Bitte Nachheizen: ".ReadingsVal($NAME,"temperature","")."°C!" }

Aber müsste die Temperatur nicht größer sein als (>) 50 um ok zu sein?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Wuffi_steel

ZitatAber müsste die Temperatur nicht größer sein als (>) 50 um ok zu sein?

Ja schon aber wenn ich 90Grad habe muss ich ja nicht nachheizen.
Soll ja nur ne erinnerung sein bevor das feuer ausgeht.

Danke Hab ich mal eingebaut versuche ich heute abend mal.  ;)

Wuffi_steel

Zitatattr GPIO4_DS1820_0008030cb914 userReadings tempcheck:temperature.* {ReadingsVal($NAME,"temperature","40")<50?"ok":"zukalt"}

attr GPIO4_DS1820_0008030cb914 userReadings tempcheck:temperature.* {ReadingsVal($NAME,"temperature","40")>50?"ok":"zukalt"}

Triggert er immer auch wenn ich aktuell bei 22Grad bin.
Sollte aber erst bei 40grad anfangen.

DeeSPe

Zitat von: Wuffi_steel am 13 Januar 2017, 11:15:41
attr GPIO4_DS1820_0008030cb914 userReadings tempcheck:temperature.* {ReadingsVal($NAME,"temperature","40")>50?"ok":"zukalt"}

Triggert er immer auch wenn ich aktuell bei 22Grad bin.
Sollte aber erst bei 40grad anfangen.

Sorry, mein Fehler.
Wenn man größer oder kleiner vergleichen will, sollte man auch mit Zahlen arbeiten!

attr GPIO4_DS1820_0008030cb914 userReadings tempcheck:temperature.* {ReadingsNum($NAME,"temperature",40)>50?"ok":"zukalt"}

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Wuffi_steel

Danke für die Hilfe
Aber ich bekomme das nicht zum laufen. :(

tempcheck:temperature.* {ReadingsNum($NAME,"temperature",40)>50?"ok":"zukalt"}
GPIO4_DS1820_0008030cb914 temperature: 21.25
GPIO4_DS1820_0008030cb914 tempcheck: zukalt


tempcheck:temperature.* {ReadingsNum($NAME,"temperature",40)<50?"ok":"zukalt"}
GPIO4_DS1820_0008030cb914 temperature: 21.25
GPIO4_DS1820_0008030cb914 tempcheck: ok


Soll aber bei 21Grad ihm egal sein ob es zu warm oder zu kalt ist.
Und erst regieren wenn die temeratur über 40Grad ansteigt,
Und über 50Grad ihm wieder egal sein.


DeeSPe

Zitat von: Wuffi_steel am 13 Januar 2017, 12:38:36
Danke für die Hilfe
Aber ich bekomme das nicht zum laufen. :(

tempcheck:temperature.* {ReadingsNum($NAME,"temperature",40)>50?"ok":"zukalt"}
GPIO4_DS1820_0008030cb914 temperature: 21.25
GPIO4_DS1820_0008030cb914 tempcheck: zukalt


tempcheck:temperature.* {ReadingsNum($NAME,"temperature",40)<50?"ok":"zukalt"}
GPIO4_DS1820_0008030cb914 temperature: 21.25
GPIO4_DS1820_0008030cb914 tempcheck: ok


Soll aber bei 21Grad ihm egal sein ob es zu warm oder zu kalt ist.
Und erst regieren wenn die temeratur über 40Grad ansteigt,
Und über 50Grad ihm wieder egal sein.

Du schreibst in Rätseln!

Was heißt "soll ihm egal sein"?
Wie viel Zustände brauchst Du nun? Das sieht mir nach 3 Zuständen aus (ok,zukalt,zuwarm).

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Wuffi_steel

Sorry

Ich wenn ich nicht Heize hat der Ofen von 20-30 Grad Raumtemperatur. Und der wert ist dann ok.

Wenn ich jedoch Heize Steigt die Hitze bis ca 90-100 Grad und fällt dann wieder ab.
Dann Soll er mich erinnern das bei ca 50 Grad, ich Brennholz nachlegen muss.

Wenn ich dann den Offen ausgehen lass sinkt die Temperatur wieder unter 40 Grad, das Heißt ich müsste ihn neu anfeuern oder ich lasse ihn auskühlen.

Unterm strich soll nur eine Warnung raus wen die Temperatur zwischen ca. 40 und 50 Grad Liegt.

DeeSPe

Der letzte Satz hätte gereicht! ;)

attr GPIO4_DS1820_0008030cb914 userReadings tempcheck:temperature.* {ReadingsNum($NAME,"temperature",40)>=40 && ReadingsNum($NAME,"temperature",40)<=50?"warnung":"ok"}
define n_tempcheck GPIO4_DS1820_0008030cb914:tempcheck:warnung.* { fhem "set teleBot message Achtung, Bitte Nachheizen: ".ReadingsNum($NAME,"temperature",10)."°C!" }

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

dieda

Ich klinke mich mal ein, da ich mit ReadingsVal diese Woche auch so meine Probleme hatte und nun die Lösung über Attribute sehe....

Dein Gedanke das ohne Dummy zu machen kam mir auch. Aber über Attribute, dass kannte ich noch nicht. Ich habe ein Notfiy, welches um eine gewisse Uhrzeit eine Nachricht per Telebot schickt. Das funktioniert auch zuverlässig.

Jetzt überlege ich, wie ich dieses Notify in einem gewissen Zeitraum von 6:30 bis 7:30 alle 5 Minuten generieren kann, das ganze... als Ticker-Text auf meinen gerade verwendeten Bildschirm oder meine Squeezebox.
Dieses sieht so aus
Zitat*06:10:00 {if(($wday == 1) ||($wday == 2) || ($wday == 3) || ($wday == 4)|| ($wday == 5)) {my $Dur=ReadingsVal(" Verkehr.blabla", "duration_in_traffic_hr", "25");{fhem("set teleBot msg die Fahrzeit zur Arbeit dauert $Dur Minuten") } }}
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

Wuffi_steel

@DeeSPe
Danke Klappt wunderbar.

Nur Mein Fhem logt das mehrmals, also bekomme ich Spam Nachrichten :)

2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 temperature: 61.625
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 tempcheck: ok
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 temperature: 61.625
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 tempcheck: ok
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 T: 61.625
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 tempcheck: ok
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 tempcheck: ok
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 tempcheck: ok
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 T: 61.625
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 tempcheck: ok


Soll ich da mit verbose oder disabledForIntervals arbeiten?
Danke

DeeSPe

Zitat von: Wuffi_steel am 10 Februar 2017, 17:21:19
@DeeSPe
Danke Klappt wunderbar.

Nur Mein Fhem logt das mehrmals, also bekomme ich Spam Nachrichten :)

2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 temperature: 61.625
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 tempcheck: ok
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 temperature: 61.625
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 tempcheck: ok
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 T: 61.625
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 tempcheck: ok
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 tempcheck: ok
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 tempcheck: ok
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 T: 61.625
2017-02-10 17:12:27 dummy GPIO4_DS1820_0008030cb914 tempcheck: ok


Soll ich da mit verbose oder disabledForIntervals arbeiten?
Danke

Kannst Du gerne probieren, wird aber nichts bringen. 8)
Einfach "event-on-change-reading" entsprechend setzen. ;)

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Wuffi_steel

ZitatEinfach "event-on-change-reading" entsprechend setzen. ;)
Habe ich nach dem Post eh gleich so gemacht  :o

Kann es sein das mein Notify nicht mehr triggert?
Durch Update oder ??
GPIO4_DS1820_0008030cb914:tempcheck:warnung.* { fhem "set teleBot message Achtung, Bitte Nachheizen: ".ReadingsNum($NAME,"temperature",10)."°C!" }

DeeSPe

Zitat von: Wuffi_steel am 11 Februar 2017, 10:44:53
Kann es sein das mein Notify nicht mehr triggert?

Das ist ein rhetorische Frage oder?
Das kann nur Du selbst beantworten!

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Wuffi_steel

Zitat von: DeeSPe am 11 Februar 2017, 11:25:06
Das ist ein rhetorische Frage oder?
Das kann nur Du selbst beantworten!

Gruß
Dan

Antwort: Mein Notify triggert nicht mehr :)