FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Wuffi_steel am 13 Januar 2017, 08:58:18

Titel: ReadingsVal für Heizungsabfrage
Beitrag 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
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: DeeSPe am 13 Januar 2017, 09:49:17
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
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: Wuffi_steel am 13 Januar 2017, 10:27:50
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.  ;)
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: Wuffi_steel am 13 Januar 2017, 11:15:41
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.
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: DeeSPe am 13 Januar 2017, 11:26:43
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
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag 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.

Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: DeeSPe am 13 Januar 2017, 14:18:36
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
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: Wuffi_steel am 13 Januar 2017, 17:31:21
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.
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: DeeSPe am 13 Januar 2017, 17:38:46
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
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: dieda am 13 Januar 2017, 20:50:38
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") } }}
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag 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
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: DeeSPe am 10 Februar 2017, 17:27:13
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
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: Wuffi_steel am 11 Februar 2017, 10:44:53
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!" }
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: DeeSPe am 11 Februar 2017, 11:25:06
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
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: Wuffi_steel am 11 Februar 2017, 11:59:56
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 :)
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: DeeSPe am 11 Februar 2017, 13:55:31
Und wie soll Dir ohne weitere Informationen jetzt jemand helfen??

Gruß
Dan
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: Wuffi_steel am 11 Februar 2017, 16:03:13
Ich weiß nicht ob das von einen Update kommt oder mein Fehler ist.

Hatte bisher immer dein Notify
GPIO4_DS1820_0008030cb914:tempcheck:warnung.* { fhem "set teleBot message Achtung, Bitte Nachheizen: ".ReadingsNum($NAME,"temperature",10)."°C!" }
Im log steht
2017-02-11 15:53:38 dummy GPIO4_DS1820_0008030cb914 tempcheck: warnung
Aber ich bekomme keine Nachricht.
Wenn ich das notify per Hand ansteuere funktioniert es. Zb.:
test:on.* { fhem "set teleBot message Achtung, Bitte Nachheizen: ".ReadingsNum($NAME,"temperature",10)."°C!" }

Meine versuche sind bisher wirkungslos:
GPIO4_DS1820_0008030cb914:.* { if (Value("tempcheck") eq "warnung") { fhem "set teleBot message Achtung, Bitte Nachheizen: ".ReadingsNum($NAME,"temperature",10)."°C!" } }
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: Wuffi_steel am 11 Februar 2017, 17:13:45
Habe es so gelöst.
GPIO4_DS1820_0008030cb914:tempcheck:.* { if(ReadingsVal("GPIO4_DS1820_0008030cb914","tempcheck","") eq "warnung") { fhem "set teleBot message Achtung, Bitte Nachheizen: ".ReadingsNum($NAME,"temperature",10)."°C!" } }

Kann ich das so lassen?
Danke
Titel: Antw:ReadingsVal für Heizungsabfrage
Beitrag von: DeeSPe am 11 Februar 2017, 22:28:05
Zitat von: Wuffi_steel am 11 Februar 2017, 17:13:45
Kann ich das so lassen?
Danke

Klar, wenn es funktioniert!

Gruß
Dan