Heating_Control Dummy An/Abwesenheit Temperatur Reading

Begonnen von terrymaxx, 10 Dezember 2016, 02:20:33

Vorheriges Thema - Nächstes Thema

terrymaxx

Hallo, habe das Forum und das halbe Internet durch und nix dazu gefunden.
Wie verwende ich in ein Reading als Wert in einem set-Befehl???

([HCAutomatik_Arbeitszimmer] eq "off") DOELSE ((set Heizung_Arbeitszimmer desired-temp XXX)



Das Ganze hat den Hintergrund: Benutze Heating_Control zur Heizungsregelung, verschiedene Temperaturen zu verschiedenen Zeiten am Tag.z.B.:
Heizung_Arbeitszimmer 12345|04:00|21 12345|23:58|17.5 60|08:00|21 60|22:00|16 { if (ReadingsVal("HCAutomatik_Arbeitszimmer", "state", "") eq "on")
{ fhem("set $NAME desired-temp $EVENT")
} }

Wenn ich abwesend bin, schalte ich mit einem Dummy/DoIf die Automatik aus und eine Temperaturabsenkung.
([HCAutomatik_Arbeitszimmer] eq "on") DOELSE (set Heizung_Arbeitszimmer desired-temp 16.0)
Wenn ich zurück bin, wird der Dummy mit der Automatik wieder eingeschaltet, wie bekomme ich aber automatisch den aktuellen Wert der HC wieder eingestellt?  Ohne bis zum nächsten normalen Schaltpunkt warten zu müssen?
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

Prof. Dr. Peter Henning

Beim dem "halben Internet" war aber nicht die Anfängerdokumentation zu FHEM dabei...
Bitte den Unterschied zwischen der Skriptsprache von FHEM und Perl beachten, und im eigenen Post beachten, was mit ReadingsVal gemacht wird.

LG

pah

Dietmar63

Du musst die Funktion Heating_Control_SetTemp () oder Heating_Control_SetAllTemps() zusätzlich aufrufen
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

terrymaxx

Zitat von: Prof. Dr. Peter Henning am 10 Dezember 2016, 05:44:39
Beim dem "halben Internet" war aber nicht die Anfängerdokumentation zu FHEM dabei...
Bitte den Unterschied zwischen der Skriptsprache von FHEM und Perl beachten, und im eigenen Post beachten, was mit ReadingsVal gemacht wird.

LG

pah

Danke für die Ausführung: Das ist schlecht, das musst du besser machen. Ja bitte was und wie muss ich es besser machen? Schreibe nicht aus Langweile im Anfänger-Bereich.
Und wo steht, wie ich den Wert eines Readings als set-Wert für ein anderes Gerät benutzen kann? Und damit meine ich nicht on/off sondern eine variable Zahl? Wäre sehr dankbar...
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

terrymaxx

Zitat von: Dietmar63 am 10 Dezember 2016, 07:47:42
Du musst die Funktion Heating_Control_SetTemp () oder Heating_Control_SetAllTemps() zusätzlich aufrufen

Das Thermostat ist ein Comet dect für die Fritzbox,welches über FBAHAHTTP eingebunden ist und on, off und desired-temp unterstützt.
Deswegen möchte ich, wenn ich wieder anwesend bin, die letzte von Heating_Control gesetzte Temperatur (currValue) als desired-temp für das Thermostat setzen.

Internals
DEF   
FBAHAHTTP:10971_0254320 actuator,tempSensor
FBAHAHTTP_MSGCNT
149
FBAHAHTTP_TIME
2016-12-10 11:48:34
IODev
FBAHAHTTP
LASTInputDev
FBAHAHTTP
MSGCNT
149
NAME
Heizung_Arbeitszimmer
NR
142
STATE
desired-temp: 16.0 C
STILLDONETIME
0
TYPE
FBDECT
id
10971_0254320
props
actuator,tempSensor
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

CoolTux


{ fhem "set Heizung ". ReadingsVal("bla","Blu"0) };

Damit wird das Value für den set Befehl mit Hilfe der ReadingsVal Funktion aus einem Reading gelesen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Zitat von: terrymaxx am 10 Dezember 2016, 11:57:15
Das Thermostat ist ein Comet dect für die Fritzbox,welches über FBAHAHTTP eingebunden ist und on, off und desired-temp unterstützt.
Deswegen möchte ich, wenn ich wieder anwesend bin, die letzte von Heating_Control gesetzte Temperatur (currValue) als desired-temp für das Thermostat setzen.

Internals
DEF   
FBAHAHTTP:10971_0254320 actuator,tempSensor
FBAHAHTTP_MSGCNT
149
FBAHAHTTP_TIME
2016-12-10 11:48:34
IODev
FBAHAHTTP
LASTInputDev
FBAHAHTTP
MSGCNT
149
NAME
Heizung_Arbeitszimmer
NR
142
STATE
desired-temp: 16.0 C
STILLDONETIME
0
TYPE
FBDECT
id
10971_0254320
props
actuator,tempSensor

Was soll Dietmar den mit den Daten. Er hat Dir doch schon die richtige Antwort gegeben. Einfach in Deiner Anweaenheitserkennung statt set Heizung 19 die Funktionen aufrufen und die Thermostate stellen sich entsprechend der aktuellen Einstellung der HC ein.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

terrymaxx

Zitat von: CoolTux am 10 Dezember 2016, 12:01:07

{ fhem "set Heizung ". ReadingsVal("bla","Blu"0) };

Damit wird das Value für den set Befehl mit Hilfe der ReadingsVal Funktion aus einem Reading gelesen.

([HCAutomatik_Arbeitszimmer] eq "off")  DOELSE  { fhem "set Heizung_Arbeitszimmer desired-temp". ReadingsVal("HEIZUNGSSTEUERUNG_ARBEITSZIMMER","currValue"0) };

so funktioniert das auch nicht
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

terrymaxx

#8
Zitat von: CoolTux am 10 Dezember 2016, 12:04:10
Was soll Dietmar den mit den Daten. Er hat Dir doch schon die richtige Antwort gegeben. Einfach in Deiner Anweaenheitserkennung statt set Heizung 19 die Funktionen aufrufen und die Thermostate stellen sich entsprechend der aktuellen Einstellung der HC ein.

weil das nicht funktioniert? Dietmar hatte in einem anderen Beitrag wegen Comet Dect und Heating_Control um die Daten gebeten, weil er eine automatische Erkennung ins Modul bauen wollte. läuft hier parallel in Anfängerfragen....
https://forum.fhem.de/index.php/topic,61267.0/all.html#lastPost
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

Dietmar63

FBDECT wird nicht automatisch als Heizung erkannt.
Die Infos die ich im Moment habe reichen nicht aus eine Erkennung zu implementieren

Deshalb musst du mehr zu Fuss machen :

Command selbst angeben {fhem (" Set NAME desiredTemp EVENT") if(... ) }
Switchinthepast angeben

Wenn ein HC enabled wird Setalltemp aufrufen.
Wenn es nicht klappt, verbose 5 einschalten. Ggf Log veröffentlichen.


Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

terrymaxx

Danke Dietmar für deine Mühe, werde heute Abend mal probieren,  das automatische Setzen der normalen Temperaturen funktioniert schon Dank deiner Ausführungen, der Dummy mit dem Abschalten/absenken auch. Nur zurück halt nicht, wie meinst du Switchinthepast?

hätte noch eine NOTLösung als letzte Idee: {if(ReadingsVal('Heizung', 'desired-temp', 0) > 21.0) {fhem("set Heizung desired-temp 21.0")} }
das funktioniert aber nur, wenn man max 2 verschiedene Temperaturen hat, oder es wird zu verschachtelt...

aber eigentlich möchte ich  eine elegante Lösung
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

CoolTux

Das DOIF ist ja auch mehr wie falsch. Bitte mit den Grundlagen eines DOIF vertraut machen. Mein Beispiel war auch nicht für ein DOIF gedacht


([HCAutomatik_Arbeitszimmer] eq "off")  DOELSE (set Heizung_Arbeitszimmer desired-temp [HEIZUNGSSTEUERUNG_ARBEITSZIMMER:currValue])
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Prof. Dr. Peter Henning

#12
ZitatDanke für die Ausführung: Das ist schlecht, das musst du besser machen.

Vielleicht auch den zweiten Teil des Posts lesen

ZitatJa bitte was und wie muss ich es besser machen?

Erstens: Bitte endlich die Anfängerdokumentation lesen.

Zweitens: Die geposteten Beispiele genau lesen. Dass das nicht geschieht, sondern einfach geschlampert wird, ist leicht nachzuweisen: Das gepostete Beispiel
{ fhem "set Heizung ". ReadingsVal("bla","Blu",0) };
enhält ein Leerzeichen nach "Heizung". Dem eigenen Code
fhem "set Heizung_Arbeitszimmer desired-temp". ReadingsVal("HEIZUNGSSTEUERUNG_ARBEITSZIMMER","currValue"0)
fehlt aber ein Leerzeichen nach "desired-temp" und ein Komma vor der Null.

Drittens: Ich schlage vor, die erhaltenen Antworten erst einmal zu durchdenken, statt wild herumzuprobieren. Alle Bestandteile der gesuchten Lösung sind in den Beispielen zu finden.

LG

pah

Dietmar63

Switchinthepast
Ist in der Command ref unter HC erklärt

Heizungen, die HC automatisch erkennt werden beispielsweise bei der Definition sofort auf den aktuellen Wert gestellt.
Für Heizungen, die nicht automatisch erkannt werden kann man das Verhalten mit Switchinthepast erzwingen

Nochmals :
Mit verbose 5(mal nach suchen)  kann man detaillierte Log Meldungen erzeugen, die wirklich weiterhelfen.
Ich meine nicht den output  des Eventmonitors.

Den output dann bitte nicht per Hardcopy (Grafik ) hier einstellen, sondern als Code oder Zitat veröffentlichen.
Nur dann kann ich helfen
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

terrymaxx

Zitat von: CoolTux am 10 Dezember 2016, 13:56:45
Das DOIF ist ja auch mehr wie falsch. Bitte mit den Grundlagen eines DOIF vertraut machen. Mein Beispiel war auch nicht für ein DOIF gedacht


([HCAutomatik_Arbeitszimmer] eq "off")  DOELSE (set Heizung_Arbeitszimmer desired-temp [HEIZUNGSSTEUERUNG_ARBEITSZIMMER:currValue])



Danke, jetzt funktioniert es genau so wie ich es mir vorgestellt habe!
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??