FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: House am 02 Februar 2014, 21:34:02

Titel: fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: House am 02 Februar 2014, 21:34:02
Moin,

ist es möglich die measured-temp vom fht80b zum schalten einer Steckdose(FS20) zu benutzen?
Wenn ja wie?

Ich hatte mir das so vorgestellt wenn 20° erreicht sind soll die Steckdose(FS20)sich einschalten und wenn sie darunter fällt soll sie wieder ausgehen.
Meine Hardware

Fhem5.5
Fhz1000PC
Fht80b
FS 20 Steckdose

Gruß House
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: Joachim am 02 Februar 2014, 22:17:34
Lieber FHEM-Neueinsteiger,

Du hast Dich für ein hochkomplexes, unheimlich flexibles Programm für Deine Hausautomation entschieden.
Aufgrund seiner Flexiblität ist dieses Programm nicht einfach zu verstehen.
Man muss dazu eine ganze Menge lernen. Damit Du Dir nicht alles aus dem Forum heraussuchen musst,
habe ich mal einige Links für Dich zusammengestellt:

http://fhem.de/Heimautomatisierung-mit-fhem.pdf
http://forum.fhem.de/index.php/topic,16311.0.html
http://forum.fhem.de/index.php/topic,13092.0.html
http://fhem.de/commandref.html
http://www.fhemwiki.de/wiki/Hauptseite
http://forum.fhem.de/index.php?action=search

Ich weiß, das ist unheimlich viel Lesestoff, und es schwirrt einem irgendwann der Kopf.
Manch einer lässt sich dann dazu verleiten, eine Abkürzung zu nehmen, und stellt seine Frage im Forum.

Dieses Vorgehen hilft aber nicht wirklich.
Und zwar aus mehreren Gründen:
- Meistens wurden diese Fragen in irgendeiner Form schon gestellt, und Du kannst Dir sicherlich vorstellen,
  daß die sogenannten alten Hasen nicht wirklich Lust haben, Fragen x-mal zu beantworten
- Vorgefertigte Lösungen sind nur auf den ersten Blick einfacher, da Du dabei nicht wirklich Lernst, wie Du ein Problem
  mit FHEM selbst lösen kannst
- Du bekommst Antworten die nicht Deiner Erwartungshaltung ensprechen
- uvm.

Die sogenannten alten Hasen helfen gerne, wenn es um wirkliche Probleme geht, aber es bringt keinen Spass, wenn man die relevanten
Informationen scheibenweise aus Dir herausziehen muss.
Du mochtest von uns Hilfe haben, bitte gib und die Nötigen Informationen, am besten in dem Du Dir eine Signatur anlegst.
Versuche bitte nicht, diese Informationen zu Filtern, weil Du der Meinung bist, daßeinige dieser Informationen unnötig sind.

Wenn du etwas aus einem Log, oder einer Configdatei mitpostest, setze es bitte in code-Tags, daß ist die Raute oben im Antwortfeld,
alternativ kannst Du auch hier den Text eingeben verwenden.

Mit diesen Text will ich Dich weder ärgern, zurechtweisen, disziplinieren oder sonst etwas, aber habe Verständniss,
daß die alten Hasen hier freiwillig helfen, und man muss sie beiLane halten, damit sie auch weiterhin helfen.

Wenn Dein Problem dann gelöst ist, setze Deinen Beitrag auf gelöst, Das funktioniert am einfachsten indem Du in Deinem ersten Beitrag die Überschrift bearbeitest.
Außerden hilfst Du natürlich Anfängern, die nach Dir kommen, indem Du in Deinem letzten Beitrag die Lösung nocheinmal zusammenfasst, und ggf. einen Wiki-Artikel dazu schreibst.

Jetzt zu Deiner Frage:
Natürlich ist das möglich.
ZitatWenn ja wie?

siehe oben.

Gruß Joachim
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: House am 02 Februar 2014, 23:19:48
define Luft at FHT_3321 measured-temp: 22.0 set Schalter1 on

Wrong timespec FHT_3321: either HH:MM:SS or {perlcode}

Bin ich da auf dem richtigen weg?
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: Puschel74 am 03 Februar 2014, 05:57:09
Hallo,

in knapp einer Stunde alle Links von Joachim durchgearbeitet - Hut ab.

ZitatWrong timespec FHT_3321: either HH:MM:SS or {perlcode}
Diese Meldung heisst übersetzt (als frei übersetzt, ich bin kein Englisch-Guru  ;D ):
Falsche Zeitangabe FHT_3321: erwartet wird etwas in der Richtung HH:MM:SS oder {perlcode}

Da ich bei dir aber keine Zeitangabe sehe, nichtmal annähernd, wird sich deine Frage
ZitatBin ich da auf dem richtigen weg?
hoffentlich erübrigt haben?

Wenn noch Probleme bestehen dann bitte genau formulieren woran du scheiterst, eine etwaige Fehlermeldung aus dem LogFile posten und natürlich deinen Code  ;)

http://fhem.de/commandref.html#notify (http://fhem.de/commandref.html#notify)
Joachim war schon so freundlich und hat dir die commandref verlinkt - ich verlink dir aus der commandref mal notify.

Grüße

Edith: @Joachim - genialer Text  ;D
Vor allem der Abschnitt mit - die alten Hasen bei Laune halten -  8)
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: betateilchen am 03 Februar 2014, 08:52:01
define Luft at FHT_3321 measured-temp: 22.0 set Schalter1 on

Du hast da etwas ziemlich frei übersetzt. Die at-Definition dient dazu zu einem speziellen Uhr-Zeitpunkt etwas auszuführen.

Was Du aber möchtest, ist eine Ausführung wegen eines bestimmten Ereignisses. Dazu brauchst Du nicht "at" sondern "notify".

Also, erster Teil...

define Luft notify FHT_3321.measured-temp:.* {mache irgendwas}

Das bedeutet, dass Du immer dann, wenn ein Temperaturwert gemeldet wird, etwas tun willst.

Nun mußt Du noch festlegen, bei welcher Bedingung etwas passieren soll.
Dein Kriterium ist der Temperaturwert 20°C.

if (ReadingsVal("FHT_3321","measured-temp","19") >= 20) {schalte die Steckdose ein} else {schalte die Steckdose aus}

Jetzt mußt Du nur noch den ersten Teil mit dem zweiten Teil verheiraten:

define Luft notify FHT_3321.measured-temp:.* { if (ReadingsVal("FHT_3321","measured-temp",19) >= 20) {fhem("set Schalter1 on")} else {fhem("set Schalter1 off")} }

Fertsch.
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: Waldmensch am 03 Februar 2014, 10:44:25
Tschuldigung wenn ich mich von der Seite einmische. Nur als Verständnisfrage - bei dem Beispiel wird dann bei jeder Temperaturmessung ein Schaltvorgang ausgelöst oder ist fhem von allein so "intelligent" und vermeidet eine erneutes senden von ON oder OFF wenn der Status schon gesetzt ist? Oder sollte man in die Bedingung noch den aktuellen Status ON/OFF abfragen um unnütze Telegramme zu vermeiden?
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: betateilchen am 03 Februar 2014, 10:51:46
Das hast Du richtig erkannt. Man kann (und sollte) noch die Prüfung einbauen, in welchem Zustand der Schalter überhaupt ist, um unnötigen Funkverkehr zu vermeiden.

Mir ging es aber darum, das Grundverständnis zu schaffen, wie man eine Steckdose anhand eines Temperaturwertes schalten kann. Und da hätte die zusätzliche Prüfung eher zur Verwirrung beigetragen. Das wiederholte Schalten tut ja nicht weh, es verursacht eben nur Funklast.

define Luft notify FHT_3321.measured-temp:.* { if (ReadingsVal("FHT_3321","measured-temp",19) >= 20) { fhem("set Schalter1 on") if (Value("Schalter1") eq 'off') } else { fhem("set Schalter1 off") if (Value("Schalter1") eq 'on') } }



Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: Waldmensch am 03 Februar 2014, 13:12:49
Klasse! Danke für die Erklärung :)
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: Thorsten Pferdekaemper am 03 Februar 2014, 13:26:12
...und vielleicht sollte man auch noch an "Hysterese" denken.
SCNR.
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: House am 03 Februar 2014, 21:34:57
moin,

Heimat sieht das kompliziert aus, aber anhand des Bsp. verstehe ich jetzt nun ein bissel mehr und es funktioniert auch :)
Alleine hätte ich das niemals  hinbekommen.

Ihr habt ja auch alle mal angefangen.
Erstmal besten dank 
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: betateilchen am 03 Februar 2014, 21:40:48
Zitat von: House am 03 Februar 2014, 21:34:57Heimat sieht das kompliziert aus

sieht nur so aus :)
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: House am 03 Februar 2014, 21:53:07
das glaube ich nicht, eher hexerei....
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: betateilchen am 03 Februar 2014, 22:06:44
nein, Du musst nur genau so simpel denken, wie fhem verstehen kann, was Du ausdrücken willst.
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: Heli_CP am 03 November 2015, 19:48:25
Danke vorerst für eure guten Beiträge und Link´s.

Ich verwende FHEM seit c.a. 2 Jahren für die komplette Hauautomation. Nach kurzem Frust kam die Begeisterung die jetzt allerdings wieder in Frust umschlug.
Ich versuche seit einigen Tagen bei einem FHT80b die Temperatur auszulesen und eine FS20-ST4 zu schalten. Habe das Ganze mit Perl und FHEM und mit reinen FHEM versucht. Im Logfile  ist das Schalten bei unter oder ober Temperatur des FS20-ST4 korrekt jedoch die Funksteckdose schaltet nicht.  Habe eine Testumgebung mit einer FHZ1300PC errichtet und die Funkschaltsteckdose befindet sich 2 Meter von dieser entfernt. Habe als allerletzten Rettungsanker auch den Code von User ,,betateilchen" versucht. Im Log steht geschalten jedoch der FS20 bleibt aus oder eben ein. :'( :'(

Auffallend ist das nach einem Neustart von Perl und fhem der FS20-ST4 immer schaltet. Auch im Browser funktioniert der FS20 ohne Probleme und at anweisungen funktionieren immer.

Hat jemand eine Idee wo ich ansetzen soll.
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: JoWiemann am 03 November 2015, 20:05:41
Zitat von: Heli_CP am 03 November 2015, 19:48:25
Hat jemand eine Idee wo ich ansetzen soll.

Mit der Beschreibung des fht80b im Wiki: http://www.fhemwiki.de/wiki/FHT80b

Grüße Jörg
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: Heli_CP am 03 November 2015, 20:27:20
Danke für die rasche Antwort.

Glaube mir die Doku habe ich schon x mal gelesen. Die measured-temp lese ich korrekt aus. Sowohl im Event monitor als auch im Log findet die Schaltung statt, nur der FS20 tut nix. Nur nach einem Neustart von Perl funtzt es 1 - 2 mal!!
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: JoWiemann am 03 November 2015, 20:48:42
Dann poste doch mal Deine Definitionen. Danke Dir.

Ach ja, die fht80b sind nicht sehr zuverlässig mit dem Senden der Informationen, die schlafen schon mal ein und müssen dann geweckt werden. Dazu gibt es etliche Hinweise im Forum und im Wiki.

Grüße Jörg
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: Heli_CP am 03 November 2015, 21:26:48
Hi Jo,

Danke das Du mir weiter hilfst. Wie gesagt letzter stand ist der Code von "betateilchen" qasi ohne Funktion.

fhem.cfg
define RR.Gartenhaus FHT 4146
attr RR.Gartenhaus retrycount 1
attr RR.Gartenhaus room Heizung
define FileLog_RR.Gartenhaus FileLog ./log/RR.Gartenhaus-%Y.log RR.Gartenhaus
attr FileLog_RR.Gartenhaus logtype fht:Temp/Act,text
attr FileLog_RR.Gartenhaus room Heizung
define SVG_RR.Gartenhaus SVG FileLog_RR.Gartenhaus:fht:CURRENT
attr SVG_RR.Gartenhaus label "RR.Gartenhaus Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr SVG_RR.Gartenhaus room Plots

define Test notify RR.Gartenhaus.measured-temp:.* { if (ReadingsVal("RR.Gartenhaus","measured-temp",21) <= 22) { fhem("set Pelletheizung on") if (Value("Pelletheizung") eq 'off') } else { fhem("set Pelletheizung off") if (Value("Pelletheizung") eq 'on') } }

define Pelletheizung FS20 14324121 1123
attr Pelletheizung devStateIcon .*:Update
attr Pelletheizung icon Heizung_Hauptschalter.on
attr Pelletheizung room Heizung
attr Pelletheizung eventMap /on-for-timer 2:Ein/ /on-for-timer 10:Aus/
attr Pelletheizung webCmd Ein:Aus

Logfile
2015.11.03 20:28:07 3: FS20 set Pelletheizung on 

Nix tut sich am FS20-ST4

Ich hoffe das ich dir genug info geschickt habe.

Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: JoWiemann am 03 November 2015, 21:40:04
Hallo,

eine Rückfrage. Schaltet die FS20 überhaupt über Fhem? Also über das Device Pelletheizung.

Grüße Jörg

PS: Schaltest Du wirklich eine Pelletheizung mit einem Aktor ohne Rückmeldung?

Ist das Attribut: attr Pelletheizung eventMap /on-for-timer 2:Ein/ /on-for-timer 10:Aus/ korrekt oder sollte es heißen:
attr Pelletheizung eventMap /on-for-timer 2:Ein/ /off-for-timer 10:Aus/

Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: Heli_CP am 03 November 2015, 22:04:18
Hi Jo,

Ja schaltet aus FHEM ohne Probleme.

Das attr Pelletheizung eventMap /on-for-timer 2:Ein/ /on-for-timer 10:Aus/ hat die funktion das der Pelletofen über ein Relais zum einschalten 2 sec Strom benotigt und zum ausschalten 10 sec. Ist ein kleiner Pelletofen und mit at schalte ich auf diesem Weg um 5 Uhr morgens ein. Auch mit andfhem schalte ich von der Ferne ein und aus. Funktioniert seit 2 Jahren ohne Probleme. Meine überlegung war das er sich automatisch ein und ausschaltet.
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: JoWiemann am 03 November 2015, 22:19:43
OK, danke für die Info. Wenn ich den Wiki-Eintrag richtig lese, dann gibt es das reading <measured-temp> gar nicht, sondern das reading state mit dem Inhalt "measured-temp: nn.n".

Mach doch mal bitte ein  - list RR.Gartenhaus - in der Fhem Kommandozeile und poste das Ergebnis.

Grüße Jörg
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: Heli_CP am 04 November 2015, 05:34:03
Hallo Jo,

Internals:
   CODE       4146
   DEF        4146
   FHZ1300PC_MSGCNT 1071
   FHZ1300PC_RAWMSG 810c047b0909a00141467e00675c
   FHZ1300PC_TIME 2015-11-04 05:23:43
   IODev      FHZ1300PC
   LASTInputDev FHZ1300PC
   MSGCNT     1071
   NAME       RR.Gartenhaus
   NR         50
   STATE      measured-temp: 0.7
   TYPE       FHT
   Readings:
     2015-11-04 05:23:43   ack             92
     2015-11-04 05:23:41   actuator        96%
     2015-11-04 05:23:42   battery         ok
     2015-11-03 23:02:09   desired-temp    13.5
     2015-11-04 05:23:43   end-xmit        92
     2015-11-04 05:23:42   lowtemp         warn
     2015-11-04 05:23:42   measured-temp   0.7
     2015-11-04 05:23:42   state           measured-temp: 0.7
     2015-11-04 05:23:42   temperature     0.7
     2015-11-04 05:23:42   warnings        Temperature too low
     2015-11-04 05:23:42   window          closed
     2015-11-04 05:23:42   windowsensor    ok
Attributes:
   IODev      FHZ1300PC
   retrycount 1
   room       Heizung

Danke - Heli
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: JoWiemann am 04 November 2015, 13:49:33
Hallo Heli,

Ok, measured-temp ist als Reading vorhanden. In Deinem Def habe ich noch einen Fehler entdeckt (bisher übersehen). Du hast für Pelletheizung das Attribut: webCmd Ein:Aus gesetzt. Damit ist der Rückgabewert für Value("Pelletheizung") auf Ein/Aus. Somit müsste das Def im Notify wie folgt hinterlegt werden:

define Test notify RR.Gartenhaus.measured-temp:.* { if (ReadingsVal("RR.Gartenhaus","measured-temp",21) <= 22) { fhem("set Pelletheizung on") if (Value("Pelletheizung") eq 'Aus') } else { fhem("set Pelletheizung off") if (Value("Pelletheizung") eq 'Ein') } }

Grüße Jörg
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: Heli_CP am 04 November 2015, 19:12:25
Hi Jörg,

das wars leider auch nicht. Habe das ganze mit einem FS20 SU mit webcmd on:of probiert. Nagel neu, andere Adresse. Hat einmal eingeschalten und danach nicht mehr aus obwohl im Logfile FS20 set Schalter off steht. Im Event monitor sehe ich das die measured-temp ankommt und das notify auslöst. Der FS20 SU tut genau wie der ST4 nix >:( >:( >:( >:(

Habe einfach keine Erklärung. 

Bist zur Zeit mein einziger Strohalm.

Liebe Grüße,
Heli
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: JoWiemann am 04 November 2015, 19:23:33
Hallo Heli,

hast Du vielleicht mehrere IODev in Deinem System, bzw welche IO Devices (CUL, COC, ...) benutzt Du?

Funktioniert das Schalten direkt über Device Pelletheizung immer zuverlässig?

Grüße Jörg
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: Heli_CP am 04 November 2015, 20:03:36
Hallo Jörg,

habe ich nicht. Reine FS 20 umgebung mit einer FHZ1300PC. Alle Geräte inkl. Pelletheizung schalten immer ohne Probleme. Habe zwischenzeitlich das notify auf andere Schalter umgelegt aber immer das selbe. Nach Neustart von FHEM schaltet es 1-2 mal, danach steht der Schalter (aus oder ein). Das öde ist das man 15 min. warten muss bis der FHT80b Werte liefert. Habe das Teil auf dem Palkon bei 9 Grad also kleiner als 20. Wenn das Ding schaltet trage ich den FS80 in das Wohnzimmer bei 23 Grad und derSchalter sollt schalten was er lt. Log auch tut.

Das Ding bringt mich zur Verzweiflung!!!!

Liebe Grüße - Heli 
Titel: Antw:fht80b ausgelesene temperatur zum schalten einer steckdose
Beitrag von: Heli_CP am 06 November 2015, 15:43:06
Hi Jörg,

Normale Schaltvorgänge funktionieren bei mir nicht zufriedenstellend. Schalte nun den FS20 mit at und klappt super.

Danke für deine Hilfe.

Liebe Grüße,
Heli