FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: terrymaxx am 10 Dezember 2016, 02:20:33

Titel: Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: terrymaxx am 10 Dezember 2016, 02:20:33
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?
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag 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
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: Dietmar63 am 10 Dezember 2016, 07:47:42
Du musst die Funktion Heating_Control_SetTemp () oder Heating_Control_SetAllTemps() zusätzlich aufrufen
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: terrymaxx am 10 Dezember 2016, 11:50:41
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...
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: terrymaxx am 10 Dezember 2016, 11:57:15
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
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag 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.
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: CoolTux am 10 Dezember 2016, 12:04:10
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.
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: terrymaxx am 10 Dezember 2016, 12:46:12
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
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: terrymaxx am 10 Dezember 2016, 12:54:00
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
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: Dietmar63 am 10 Dezember 2016, 13:18:01
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.


Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: terrymaxx am 10 Dezember 2016, 13:49:09
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
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag 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])
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: Prof. Dr. Peter Henning am 10 Dezember 2016, 16:23:03
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
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: Dietmar63 am 10 Dezember 2016, 20:11:01
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
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: terrymaxx am 13 Dezember 2016, 00:48:28
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!
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: Dietmar63 am 19 Dezember 2016, 20:20:11
Durch die Diskussion über schalten vergangener Definitionen bin ich auf eine neue Idee gebracht worden Heizungen/Thermostate einfacher und universeller  zu erkennen.

Die Änderung läuft bei mir und ich checke in Kürze ein.

Für ZWAVE benötige ich nur das auszuführende Kommando.
Es scheint mehrere Möglichkeiten zu geben :
setpointHeating ...
Bitte Möglichkeiten posten

Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: Kopterframe am 30 Dezember 2016, 12:36:09
Hallo,
zu nächst möchte ich mich bei euch für die super Arbeit die hier geleistet wird bedanken.
Ich habe mal eine Verständnis Frage?
Habe mir laut Wiki das Modul HC an meine MAX Thermostate angepasst.
Wenn ich die Automatik ausschalte werden alle Ventile auf 11°C gesetzt, das geht auch.
Wer, oder was schaltet die Temperatur, die im HC Wochenprogramm hinterlegt ist wieder ein und schreibt die Temperatur in die Ventile?
Das geht bei mir nur mit Neustart von FHEM
Vielen Dank Heiko
define HCKUE Heating_Control MAX_009084 12345|05:45|22 12345|06:30|10 12345|15:00|21 12345|22:30|10 67|08:00|21 6|23:30|10 7|22:30|10 (ReadingsVal("HCAutomatik", "state", "") eq "on")
attr HCKUE alias Küche
attr HCKUE group Heizplan
attr HCKUE room Heizung

define HCAutomatik dummy
attr HCAutomatik alias Heizungsautomatik
attr HCAutomatik devStateIcon on:general_an off:general_aus
attr HCAutomatik group Automatik
attr HCAutomatik icon sani_heating_automatic
attr HCAutomatik room Heizung
attr HCAutomatik sortby 1
attr HCAutomatik webCmd on:off

define Heizungsventile structure Heizungen MAX_0109dd MAX_009084 MAX_00a695 MAX_00ffa7 fbahahttp:11959_0019808
attr Heizungsventile room Heizung

define HeatingControl.Aktivator DOIF ([HCAutomatik] eq "on") (set Therme.HCS.01 on) DOELSE (set MAX_.* desiredTemperature 11.0,set Heizungsventile desiredTemperature 11.0,set Therme.HCS.01 off)
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: Deckoffizier am 30 Dezember 2016, 13:30:31
Hallo,

mal ein Schuss ins Blaue, beim letzten DOIF attr do always nicht gesetzt ?

Gruß Hans-Jürgen
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: Dietmar63 am 30 Dezember 2016, 14:48:06
Ggf Heating_Control_SetAllTemps () und switchinthepast nutzen.
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: Kopterframe am 30 Dezember 2016, 17:03:36
Vielen Dank für den Denkanstoß.
Leider bin ich noch nicht so in der Materie um alles zu verstehen. Sorry
Habe switchinthepast auf 1 gesetzt (was genau passiert da)?
Heating_Control_SetAllTemps (Was genau ist da gemeint)?
beim letzten DOIF attr do always nicht gesetzt?
Schlagt mich bitte nicht.
Danke Heiko
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: Dietmar63 am 30 Dezember 2016, 17:31:47
ZitatHabe switchinthepast auf 1 gesetzt (was genau passiert da)?
mit dieser Option erzwingst du, dass zum Start eines WDT oder HC die letzte Schaltung in der Vergangenheit gesetzt wird(eher Heizung, sofern das Gerät nicht automatisch als Heizung erkannt wird).
ZitatHeating_Control_SetAllTemps (Was genau ist da gemeint)?
Wenn man mit dummys oder sonstigen Dingen HCs oder WDTs steuern/disablen/enablen will, bekommt HC davon nichts mit. Mit dem Aufruf der Perlroutine Heating_Control_SetAllTemps() kann man im Zusammenarbeit mit dem Attribut switchinthepast oder der automatischen Erkennung eines Geräts als Heizung, die aktuell gültigen Werte setzen lassen.
Zitatbeim letzten DOIF attr do always nicht gesetzt?
da bin ich raus. Was ist DOIF?
Titel: Antw:Heating_Control Dummy An/Abwesenheit Temperatur Reading
Beitrag von: Kopterframe am 31 Dezember 2016, 12:23:09
Hallo Dietmar.
Vielen Dank für deine Hilfe, mit Perl hatte ich noch nichts zu tun.
Habe vor vielen Jahren mal mit Assembler 8051 8bit zu tun gehabt.
Wäre es zu viel verlangt? Wenn du mir einen Code bereitstellst.
Vielen Dank Heiko
Ich wünsche dir und deiner Familie einen guten Rutsch und ein gesundes neues Jahr