[Gelöst] Heating Control mit Comet Dect funktioniert nicht

Begonnen von DerBaer, 23 November 2016, 11:27:37

Vorheriges Thema - Nächstes Thema

srohringer

Hi Der Baer,

ich habe nun ebenfalls 6 dieser Thermostate, ich hätte echt gerne die selbe Darstellung wie du, kannst du mir eventuell weiterhelfen, wie ich das so darstellen kann wie du ?

Aktuell sieht das bei mir so aus wie im angehängten Screenshot, jedoch komme ich irgendwie mit der Konfiguration nicht so ganz klar, ich spreche die Thermostate einzeln an in der FHEM konfig. Wie ist denn dein Code aufgebaut ?

Danke dir,

Viele Grüße



Zitat von: DerBaer am 06 Dezember 2016, 17:58:03
Ich habs jetzt mal soweit hinbekommen das Ist und Soll nebeneinander stehen, aber der Slider is halt dann weg...
In meinem Fall macht das aber nix, da ich mit readingsGroup einen Übersichtsraum gemacht hab in dem ich via pulldown auch die Tamperatur einstellen kann.


DerBaer

Zitat von: srohringer am 07 Dezember 2016, 18:55:41
Hi Der Baer,

ich habe nun ebenfalls 6 dieser Thermostate, ich hätte echt gerne die selbe Darstellung wie du, kannst du mir eventuell weiterhelfen, wie ich das so darstellen kann wie du ?

Aktuell sieht das bei mir so aus wie im angehängten Screenshot, jedoch komme ich irgendwie mit der Konfiguration nicht so ganz klar, ich spreche die Thermostate einzeln an in der FHEM konfig. Wie ist denn dein Code aufgebaut ?

Danke dir,

Viele Grüße

Also im Prinzip brauchst du nur den von mir vorher geposteten Code nehmen und deine Geräte eintragen, für jedes Gerät brauchst du aber eine einzelne Zeile. Jede weitere Information die du angezeigt haben willst musst du in der ersten Zeile mit angeben:

define heatingInfo readingsGroup <%sani_heating>,<Soll>,<Soll neu>,<Ist>,<Verbunden>,<weitereInfo>,<weitereInfo>



die Zeile für das Gerät sieht dann so aus:

FBDECT_fb1_10971_0266728:desired-temp,<sollsetz>,temperature,present,weitereInfoName,weitereInfoName

wobei du FBDECT_fb1_10971_0266728 mit deinen Geräten austauscht.

Die unteren Größer/Kleinerzeiche musst du dann auch um die jeweiligen Informationen erweitern, sie dienen als Abstandshalter zu jeder info.

Wenn du den Code einfügst und er nicht gleich funktioniert musst du sicher stellen das die Leerzeichen zu anfang jeder Zeile richtig gesetzt sind. Viele Programmiersprachen benötigen das als "Marker". Es kommt leider öfter vor das beim kopieren das ein oder andere Leerzeichen wegfällt, bzw hinzukommt.  :-\
D.h., die erste Zeile im Code bekommt keine Leerzeile, weil sie eh der Angfang vom Code ist, alle anderen Zeilen benötigen ein Leerzeichen am Anfang.

MichaelRuth

Super hat geklappt ! Nur es wird kein Sollwert ins Thermostat übernommen😪

DerBaer

#19
Zitat von: MichaelRuth am 07 Dezember 2016, 22:10:49
Super hat geklappt ! Nur es wird kein Sollwert ins Thermostat übernommen😪

Warte bisschen, das wird nicht sofort übernommen, das hängt mit der Reaktionszeit der Thermostate zusammen, is leider bisschen nervig ::)

srohringer

hi DerBaer,

danke dir - eine Frage vorweg, wie hast du die Thermostate in FHEM eingebunden?

Bei mir werden die auch nicht als Thermostate erkannt und die Readings kommen auch nicht an...

bei mir sieht der code so aus:

####Schlafzimmer######################################################################
define Schlafzimmer dummy
attr Schlafzimmer event-on-change-reading state
attr Schlafzimmer genericDeviceType thermostat
attr Schlafzimmer group FBDECT
attr Schlafzimmer icon hc_wht_regler
attr Schlafzimmer room Heizung,
attr Schlafzimmer setList state:slider,8,0.5,28
attr Schlafzimmer webCmd state
attr Schlafzimmer widgetOverride state:knob,min:8,max:28,step:0.5,linecap:round,angleOffset:-125,angleArc:250
define SchlafzimmerNotify notify Schlafzimmer.* {\
use FritzBoxUtils;;\
my $sid   = FB_doCheckPW("fritz.box", "USERNAME", "PASSWORD");;\
my $temp  = ReadingsVal("Schlafzimmer", "state", "");;\
my $temp2 = int($temp)*2;;\
GetFileFromURL("http://fritz.box/webservices/homeautoswitch.lua?sid=$sid&ain=109710197792&switchcmd=sethkrtsoll&param=$temp2");;\
}
define FBDECT_Fritzbox_17 FBDECT Fritzbox:17 switch
attr FBDECT_Fritzbox_17 IODev Fritzbox
attr FBDECT_Fritzbox_17 alias Schlafzimmer
attr FBDECT_Fritzbox_17 event-min-interval temperature:120
####Schlafzimmer#############################################ENDE#####################

Zitat von: DerBaer am 07 Dezember 2016, 22:01:42
Also im Prinzip brauchst du nur den von mir vorher geposteten Code nehmen und deine Geräte eintragen, für jedes Gerät brauchst du aber eine einzelne Zeile. Jede weitere Information die du angezeigt haben willst musst du in der ersten Zeile mit angeben:

define heatingInfo readingsGroup <%sani_heating>,<Soll>,<Soll neu>,<Ist>,<Verbunden>,<weitereInfo>,<weitereInfo>



die Zeile für das Gerät sieht dann so aus:

FBDECT_fb1_10971_0266728:desired-temp,<sollsetz>,temperature,present,weitereInfoName,weitereInfoName

wobei du FBDECT_fb1_10971_0266728 mit deinen Geräten austauscht.

Die unteren Größer/Kleinerzeiche musst du dann auch um die jeweiligen Informationen erweitern, sie dienen als Abstandshalter zu jeder info.

Wenn du den Code einfügst und er nicht gleich funktioniert musst du sicher stellen das die Leerzeichen zu anfang jeder Zeile richtig gesetzt sind. Viele Programmiersprachen benötigen das als "Marker". Es kommt leider öfter vor das beim kopieren das ein oder andere Leerzeichen wegfällt, bzw hinzukommt.  :-\
D.h., die erste Zeile im Code bekommt keine Leerzeile, weil sie eh der Angfang vom Code ist, alle anderen Zeilen benötigen ein Leerzeichen am Anfang.

DerBaer

#21
Ha ok das is mist, bei mir wurden die mit autocreate von alleine eingerichtet.

Ansonsten evtl mal Thermostate samt FritzBox Geräten löschen und nochmal mit aktiviertem TR-064...

Bei mir läuft das alles über FritzBox, dafür muss aber der TR-064 Port aktiv sein.

ZitatTR-064: Modul FRITZBOX für Zugriff auf einem externen Server einrichten

Für den Fernzugriff über TR-064 auf eine oder mehrere Fritzboxen und/oder einen FRITZ!WLAN Repeater sind die folgenden Schritte nötig (für jedes Gerät):

Fritzbox definieren:
define FritzBox FRITZBOX
Wenn die Fritzbox nicht unter http://fritz.box erreichbar ist, IP im define setzen:
define FritzBox FRITZBOX 192.168.168.168
192.168.168.168 dabei natürlich durch die passende IP ersetzen... Alternativ kann statt der IP auch der Hostname eingegeben werden.

Wenn (und nur wenn) das Login auf der Benutzeroberfläche der FritzBox mit User und Passwort (und nicht nur per Passwort) geschieht, den User konfigurieren:
attr FritzBox boxUser Benutzername
In der Fritzbox muss dann auch "Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort" ausgewählt sein.

Passwort konfigurieren:
set FritzBox password Passwort - legt das zugehörige Passwort fest (nur einmal --> gehört nicht in die cfg-Datei)
Manuelle TR-064 Kommandos erlauben (Das Auslesen der Readings per TR-064 funktioniert auch ohne dieses Attribut.):
attr FritzBox allowTR064Command 1

Ohne das letzte attr liest er die Thermostate auch nicht automatisch aus.

terrymaxx

#22
Hallo, habe das gleiche Problem, bin am verzweifeln.... mit dem zusätzlichen Befehl {fhem("set $NAME desired-temp $EVENT");} schaltet das Thermostat, aber nur wenn ich die Automatik raus lösche, aber wie funktioniert beides?

So zumindest nicht:
Heizung_Arbeitszimmer 12345|04:00|21 12345|22:30|18 60|08:00|21 60|22:00|16 (ReadingsVal("HCAutomatik_Arbeitszimmer", "state", "") eq "on")("set $NAME desired-temp $EVENT")

Was mache ich falsch? Manuell oder über die Atomatik nach Wiki funktioniert es ohne Probleme

.triggerUsed
1
DEF   
FBAHAHTTP:10971_0254320 actuator,tempSensor
FBAHAHTTP_MSGCNT
5
FBAHAHTTP_TIME
2016-12-09 22:38:24
IODev
FBAHAHTTP
LASTInputDev
FBAHAHTTP
MSGCNT
5
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??

DerBaer


terrymaxx

#24
Wie und welchen und mit / ohne Klammern? Bitte etwas genauer erklären, bin noch nicht so fit. Danke für die Mühe

Habe mir danke Wiki selber geholfen:

Heizung_Arbeitszimmer 12345|04:00|21 12345|23:48|26 60|08:00|21 60|22:00|16 { if (ReadingsVal("HCAutomatik_Arbeitszimmer", "state", "") eq "on")
{ fhem("set $NAME desired-temp $EVENT")
} }
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

DerBaer

#25
Du fügst im Prinzip den Code

{fhem("set $NAME desired-temp $EVENT");}

hinter deinem Heizplan ein. Das was in DEF steht.
Aber denk an die Leerzeile dazwischen. 

Sieht dann so aus:

FBDECT_fb1_10971_0158744 12345|04:30|22 12345|06:00|18 12345|16:30|22 12345|22:00|18 7|10:00|22 7|22:00|18 {fhem("set $NAME desired-temp $EVENT";}

Das off/on definierst du woanders

terrymaxx

#26
Zitat von: DerBaer am 09 Dezember 2016, 23:50:01
Du fügst im Prinzip den Code

{fhem("set $NAME desired-temp $EVENT");}

hinter deinem Heizplan ein. Das was in DEF steht.
Aber denk an die Leerzeile dazwischen. 

Sieht dann so aus:

FBDECT_fb1_10971_0158744 12345|04:30|22 12345|06:00|18 12345|16:30|22 12345|22:00|18 7|10:00|22 7|22:00|18 {fhem("set $NAME desired-temp $EVENT";}

ja das hatte ich ja auch verstanden, aber die Automatik ist da dann nicht mit drin.... Der Heizplan soll nur laufen wenn die Automatik an ist (Dummy)(ich zu Hause bin....)
habe meinen letzten Post bearbeitet mit meiner Lösung, die funktioniert anscheinend:

Heizung_Arbeitszimmer 12345|04:00|21 12345|23:48|26 60|08:00|21 60|22:00|16 { if (ReadingsVal("HCAutomatik_Arbeitszimmer", "state", "") eq "on")
{ fhem("set $NAME desired-temp $EVENT")
} }


Dummy:   
([HCAutomatik_Arbeitszimmer] eq "on") DOELSE (set Heizung_Arbeitszimmer desired-temp 16.0,set Telegram message @xxx_xxx Temperatur Heizung Arbeitszimmer abgesenkt!)

Aber kann mir bitte wer erklären, wie der Heizkörper dann wieder die eigentlich eingestellte Temperatur bekommt, wenn die Automatik wieder angestellt wird? momentan ja nur beim nächsten Schaltpunkt von HC???
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

DerBaer

Ja aber das wurde ich generell eher über einen dummy machen.

define act_on_HCAutomatikAn notify HCAutomatik:on {\
    fhem("set HCB enable");;;;\
    fhem("set HCK enable");;;;\
    fhem("set HCS enable");;;;\
    fhem("set FBDECT_fb1_10971_.* desired-temp 22.0");;\
}

terrymaxx

ich glaube, ich stehe auf der Leitung....

wenn ich das Haus verlasse, dann soll auf 16.C abgesenkt werden. Das funktioniert über den Dummy ohne Probleme.
Wenn ich aber wieder nach Hause komme, soll die reguläre Temperatur eingestellt werden, und zwar die laut HC gerade aktuell ist....
also ein Dummy in den die HC Temperatur geschrieben wird? Mir raucht der Kopf...
Anfängerdokumentation gelesen, ok.... Also wenn ich einen 1.Hilfe Schein mache, muss ich dann auch am offenen Herzen operieren können??

DerBaer

#29
Achso... Jetzt verstehe ich was du meinst...
Ne das funktioniert leider so nicht, ich habs auch bisher nicht  so hinbekommen, der setzt die Temperatur leider  immer nur dann wenn das aktuelle Event, also die Zeit die du angegeben hast eintritt.  :(