Rollo abhängig von Temperatur (Sonnenschutz)

Begonnen von karpate, 08 März 2013, 21:10:31

Vorheriges Thema - Nächstes Thema

karpate

Hallo,
ich versuche in Abhängigkeit der Temperatur die vom Raumthermostat SR04P geliefert wird, den Rollo in eine "schattenstellung" zu fahren (50%).
Mit Hilfe der Einsteiger-Guideline habe ich diesen Code aufgebaut.
Bitte um Hilfe bzw. Verbesserungsvorschläge, wie am Besten dieses Anwendung ausgeführt werden kann.


# Sonnenschutz
define SonnenschutzKueche at +*01:00:00
{ if (isday())
{ if (ReadingsVal(,,eg_kue_Temp","state",99) > 24)
{ fhem("set eg_kue_Rollo down 50%") }
}
}
attr SonnenschutzKueche room 999_Status


Danke ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

klaus.schauer

Das Prozentzeichen im Fahrkommando sollte weg.

karpate

Hallo,

danke für den Tipp. Hast natürlich Recht.
Habe noch die Backschlashzeichen hinzugefügt.


# Sonnenschutz
define SonnenschutzKueche at +*01:00:00 \
{ if (isday())\
{ if (ReadingsVal(,,eg_kue_Temp","state",99) > 24) \
{ fhem("set eg_kue_Rollo down 50") } \
} \
}
attr SonnenschutzKueche room 999_Status
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

karpate

Hallo,

es scheint noch nicht richtig zu sein

Im Log finde ich stündlich diesen Eintrag
2013.03.09 11:00:23 3: Unrecognized character \xE2; marked by <-- HERE after adingsVal(<-- HERE near column 36 at (eval 745) line 1.

Gruß ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

MisterEltako

Hi!

Vielleicht gibt der Sensor nicht nur die Temperatur als Zahl zurück?
Versuch doch mal das mit folgenden Ergänzungen zu schauen:

# Sonnenschutz
define SonnenschutzKueche at +*01:00:00 {\
my $Test = ReadingsVal(,,eg_kue_Temp","state",99);;
Log 3, "Gelesene Temperatur: $Test";;\

 if (isday()){\
   if (ReadingsVal(,,eg_kue_Temp","state",99) > 24){fhem("set eg_kue_Rollo down 50")}\
 }\
}
attr SonnenschutzKueche room 999_Status

MfG, MisterEltako

HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

karpate

Hallo,

mit deiner Ergänzung erhalte ich eine Error-Meldung: Unknown command Log, try help

Ich denke deine Vermutung ist richtig: Readings ist z.B. "state temperature 21.8 2013-03-11 20:00:59"

Wie muß der Code angepaßt werden?

Gruß ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

borsti67

ich würde meinen, der Hinweis steht doch in der Fehlermeldung:

Zitat{if (ReadingsVal(,,[/color]eg_kue_Temp","state",99) > 24)

...ersetze mal dieses typographische Anführungszeichen durch ein normales - wie sieht es dann aus?
cu/2
Borsti
---
FHEM 5.8 auf Synology DS211j (bis 11/17) | FHEM 6.0 auf Raspi Zero W (bis 11/20) | FHEM 6.2 als VM in Synology DS1815+ (ab 11/20)

karpate

Hallo Borsti,


# Sonnenschutz
define SonnenschutzKueche at +*01:00:00 {\
  if (isday()){\
     if (ReadingsVal("eg_kue_Temp","state",99) > 24){fhem("set eg_kue_Rollo down 50")}\
  }\
}
attr SonnenschutzKueche room 999_Status


So erhalte ich erstmal keine Fehlermeldung.

Ich glaube im Heimautomatisierung-mit-fhem.pdf auf Seite 32 werden dann die falschen Anführungszeichen gezeigt.

Gruß ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

karpate

Hallo,

ich denke vom Syntax her passt der Code nun, allerdings steht jetzt Log jetzt:

Argument "temperature 22.1" isn't numeric in numeric gt (>) at (eval 1193) line 1.

Wie vorher schon vermutet, kommt dies vermutlich vom unterschiedlichen Readings

(siehe Anhang / see attachement)


Leider weiß ich nicht wie ich den Code richtigerweise anpassen muß. Vielleicht kann jemand mir nochmals unter die Arme greifen.
Danke

Gruß ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

klaus.schauer

Mit der aktuellen Version des EnOcean-Moduls gibt es jetzt das Profil roomSensorControl.01. Einfach mal ein teach-in Telegramm vom Sensor senden. Dann sollte das neue Profil (subType) automatisch per autocreate zugewiesen werden.

Im neuen Profil gibt es ein Reading "temperature" dort steht die Temperatur nummerisch drin. Das sollte sich dann leicht abfragen lassen. Einzelheiten zu dem Profil gibts in der commandref.

karpate

Hallo Klaus,

habe Update auf neueste 10_EnOcean.pm durchgeführt und am Sensor die Learn-Taste gedrückt. Jetzt werden diese Readings angezeigt

(siehe Anhang / see attachement)


Im Readings "state" stehe aber immer noch "temperature..."

(siehe Anhang / see attachement)


Habe ich was falsch gemacht?

Gruß ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

klaus.schauer

Zitat von: karpate schrieb am Mi, 13 März 2013 20:57Hallo Klaus,

habe Update auf neueste 10_EnOcean.pm durchgeführt und am Sensor die Learn-Taste gedrückt. Jetzt werden diese Readings angezeigt

(siehe Anhang / see attachement)


Im Readings "state" stehe aber immer noch "temperature..."

(siehe Anhang / see attachement)


Habe ich was falsch gemacht?

Gruß ingo

Am besten mal alle Einträge des Sensors aus der fhem.cfg löschen und die Readings mit deletereading <devspec> <readingname> entfernen. Dann den Sensor neu anlernen und auch ein normales Datentelegramm nach dem teach-in empfangen.

Werden denn die Attribute subType und manufID neu und richtig gesetzt? manufID müsste "002" sein

karpate

Hallo Klaus,

konnte jetzt erst wieder testen.
Habe den Sensor komplett aus der cfg entfernt und wieder eingelernt (teach-in = drücken des Knopfes auf der Rückseite des Sensors).
Das hatte dazu geführt das nur Readings angezeigt wurden: D1,D2,D3 etc.
Durch manuelles eintragen von
define eg_kue_Temp EnOcean 0004F346
attr eg_kue_Temp manufID 002
attr eg_kue_Temp model SR04P
attr eg_kue_Temp subType roomSensorControl.05


wurden wieder die gewohnten Readings angezeigt. Leider aber immer noch "state: temperature..."

(siehe Anhang / see attachement)


Vielleicht kannst du mir noch einen weiteren Tipp geben.

Gruß ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

karpate

Hallo,
ich habe den Code minimal geändert:

# Sonnenschutz
define SonnenschutzKueche at +*01:00:00 {\
  if (isday()){\
     if (ReadingsVal("eg_kue_Temp","state",99) gt 24){fhem("set eg_kue_Rollo down 50")}\
  }\
}
attr SonnenschutzKueche room 999_Status

Damit wird der Stringvergleich ausgeführt.
Jetzt muß ich nur noch ein zusätzliches Reading abfragen um zu wissen, ob die Sonne scheint...

Gruß ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

karpate

habe es jetzt so gelöst:


define SonnenschutzKueche at +*01:00:00 {\
my $Sonne = (ReadingsVal("Test_Wetter","fc1_condition", "kein Wert"));;\
  if (isday()){\
    if  ($Sonne eq "sonnig") {\
      if (ReadingsVal("eg_kue_Temp","state",99) gt 24){fhem("set eg_kue_Rollo down 50")}\
  }\
}\
}
attr SonnenschutzKueche room 999_Status


Dabei ist Test_Wetter vorher schon definiert wie im Wiki beschrieben.

Gerne Vorschlöge und Tipps wie es eventuell besser gelöst werden könnte. Evenutell auch auf Hinblick, dass $Sonne für mehrere Rollos verwendet werden soll.
Gruß ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

klaus.schauer

Zitat von: karpate schrieb am Mo, 18 März 2013 15:22Hallo Klaus,

konnte jetzt erst wieder testen.
Habe den Sensor komplett aus der cfg entfernt und wieder eingelernt (teach-in = drücken des Knopfes auf der Rückseite des Sensors).
Das hatte dazu geführt das nur Readings angezeigt wurden: D1,D2,D3 etc.
Durch manuelles eintragen von
define eg_kue_Temp EnOcean 0004F346
attr eg_kue_Temp manufID 002
attr eg_kue_Temp model SR04P
attr eg_kue_Temp subType roomSensorControl.05


wurden wieder die gewohnten Readings angezeigt. Leider aber immer noch "state: temperature..."

(siehe Anhang / see attachement)



Vielleicht kannst du mir noch einen weiteren Tipp geben.

Gruß ingo

1. Die Standard-Readings waren vorhanden, weil vor dem teach-in Telegram schon Datentelegramme vom Sensor gesendet wurden.
2. Das Teach-In muss erfolgreich gewesen sein, sonst würde das Reading teach-in nicht vorhanden sein. Oder wurde dies auch manuell angelegt?
3. Das Attribut model muss gelöscht werden, da sonst das alte Profil genutzt wird.
4. Leider wurde auch von anderen schon berichtet, dass die Attribute, die per teach-in automatisch gesetzt werden, nicht zuverlässig abgespeichert werden. Es scheint aber eine Lösung zu geben. Ich werde diese aufnehmen, sobald die Tests abgeschlossen sind. Augenblicklich hilft es wohl ein weiteres Mal ein teach-in Telegram zu senden.

MisterEltako

Hi!

Versuche es doch mit der split-Function:

# Sonnenschutz
define SonnenschutzKueche at +*01:00:00 {\
 if (isday()){\
   my $Sensortemp = ReadingsVal("eg_kue_Temp","state",99);;\
   my @@Data = (split (/ /, $Sensortemp);;\
   $Sensortemp = @@Data[0];;\
   Log 3, "Sensortemperatur ist: $Sensortemp";;\
   if ($Sensortemp gt 24){fhem("set eg_kue_Rollo down 50")}\
 }\
}
attr SonnenschutzKueche room 999_Status

MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

karpate

Hallo,

aktuell sieht mein Code so aus. Ich brauch ein wenig Unterstützung mit der Syntax:
 
# Sonnenschutz Küche
define SonnenschutzKueche at +*01:00:00 {\
my $Sonne = (ReadingsVal("Kirchheim_Wetter","fc1_condition", "kein Wert"));;\
  if (isday()){\
    if  ($Sonne eq "sonnig") {\
      if (ReadingsVal("eg_kue_Rollo","position",99) == 0) {\
         if (ReadingsVal("eg_kue_Temp","state",99) gt 25){fhem("set eg_kue_Rollo down 50")}\
         }\
      }\
   }\
}
attr SonnenschutzKueche room 999_Status


Ich möchte das der Rollo nur um 50% runterfährt, wenn er zuvor in der oberen Stellung ist. Ohne diese Bedingung fährt er jede Stunde 50% runter bis er vollständig zu ist.
Deshalb habe ich diesen Eintrag eingefügt, leider scheint dies nicht zu funktionieren
if (ReadingsVal("eg_kue_Rollo","position",99) == 0)
An dieser Stelle bin ich mir auch nicht sicher ob dieser Teil überhaupt von Syntax und Befehlen richtig ist.
Ich hoffe jemand kann mir helfen.

(http://forum.fhem.de/index.php?t=getfile&id=2882&rid=55)

Gruß und Danke
ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

klaus.schauer

Zitat von: karpate schrieb am Mi, 17 April 2013 19:48Hallo,

aktuell sieht mein Code so aus. Ich brauch ein wenig Unterstützung mit der Syntax:
 
# Sonnenschutz Küche
define SonnenschutzKueche at +*01:00:00 {\
my $Sonne = (ReadingsVal("Kirchheim_Wetter","fc1_condition", "kein Wert"));;\
  if (isday()){\
    if  ($Sonne eq "sonnig") {\
      if (ReadingsVal("eg_kue_Rollo","position",99) == 0) {\
         if (ReadingsVal("eg_kue_Temp","state",99) gt 25){fhem("set eg_kue_Rollo down 50")}\
         }\
      }\
   }\
}
attr SonnenschutzKueche room 999_Status


Ich möchte das der Rollo nur um 50% runterfährt, wenn er zuvor in der oberen Stellung ist. Ohne diese Bedingung fährt er jede Stunde 50% runter bis er vollständig zu ist.
Deshalb habe ich diesen Eintrag eingefügt, leider scheint dies nicht zu funktionieren
if (ReadingsVal("eg_kue_Rollo","position",99) == 0)
An dieser Stelle bin ich mir auch nicht sicher ob dieser Teil überhaupt von Syntax und Befehlen richtig ist.
Ich hoffe jemand kann mir helfen.

(http://forum.fhem.de/index.php?t=getfile&id=2882&rid=55)

Gruß und Danke
ingo

Warum nicht einfach set <name> position 50 statt set <name> down 50 eingeben? Für das Anfahren einer bestimmten Position gibt es doch den neuen Befehl. Wichtig dabei ist die richtige shutTime und ein definierter Ausgangspunkt.

karpate

Danke, werde ich ändern.
Mein Problem besteht darin das ich nicht weiß, wie genau ich das Reading Position korrekt abfragen...

Danke und Gruß
ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

karpate

@klaus.schauer
funktioniert wunderbar

@MisterEltako
habe mit dem Spilt experimentiert, bekomme leider Fehlermeldungen

define SonnenschutzKueche at +*00:01:00 {\
my $Sonne = (ReadingsVal("Kirchheim_Wetter","fc1_condition", "kein Wert"));;\
my $Sensortemp = ReadingsVal("eg_kue_Temp","state",99);;\
my @@Data = (split (/ /, $Sensortemp));;\
$Sensortemp = @@Data[0];;\
Log 3, "Sensortemperatur ist: $Sensortemp";;\
  if (isday()){\
    if  ($Sonne eq "sonnig") {\
      if (ReadingsVal("eg_kue_Rollo","position",0) == 0) {\
         if ($Sensortemp gt 25){fhem("set eg_kue_Rollo position 50")}\
         }\
      }\
   }\
}
attr SonnenschutzKueche room 999_Status


 
Bareword found where operator expected at (eval 959) line 1, near "@@Data"
   (Missing operator before Data?)
Bareword found where operator expected at (eval 959) line 1, near "@@Data"
   (Missing operator before Data?)
2013.04.19 16:17:20 3: Can't use global @@ in "my" at (eval 959) line 1, near "my @@"
syntax error at (eval 959) line 1, near "@@Data "
syntax error at (eval 959) line 1, near "@@Data"
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

hightower

Hallo Karpate,

habe mir Deinen Code angesehen. Folgendes ist mir dabei aufgefallen:

a) Du prüft jede Minute, ob Deine Bedingungen eingetreten sind. Das kann bei einer größeren Steuerung Ressourcen beanspruchen, die man an anderer Stelle braucht. Besser wären alle 10 Minuten. So schnell springen die Temperaturen nicht :-).

b) Beim Prüfen in Zeitintervallen kann das Problem auftreten, dass ein manuelles Eingreifen (z.B. Rollo ist gerade hochgefahren, weil man den Blumenkasten vor dem Fenster giessen will) wieder zurückgesetzt wird. Da geht das Rollo manuell hoch und eventuell sofort wieder durch die Steuerung runter. Das kann nerven. Die Frage wird sein, wer nach einem manuellen Eingreifen für den Zustand verantwortlich, die Steuerung oder der Mensch. Ich habe mich für den Menschen entschieden.

c) Die Sensorzeile im folgenden Code ist erst einmal überflüssig. Steht zu Testzwecken drin.

d) Beim Aktuator HM-LC-Bl1PBU-FM habe ich kein "position", sondern ein "pct".


define Hitzeschutz at *10:00:00 {\
my $Vorhersagetemp = (ReadingsVal("Wetter","fc1_high_c", "kein Wert"));;\
my $Sensortemp = ReadingsVal("aussen_TempNord", "temperature", "kein Wert");;\
Log 3, "Vorhersage: $Vorhersagetemperatur, Sensortemperatur: $Sensortemp";;\
    if  ($Vorhersagetemp gt 30) {\
      {fhem("set kue_Rollo pct 30")}\
      }\
}


Tschuess,

hightower

karpate

Hallo hightower

a) die Frequenz war nur zu Testzwecken auf 1 Minute eingestellt. Prüfe sonst jede Stunde.
b) bei mir fährt der Rolladen auch nur runter, wenn er in Position 0 (oben) vorher war
d) set eg_kue_Rollo position 50 funktioniert bei EnOcean wunderbar
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

karpate

Zitat1. Die Standard-Readings waren vorhanden, weil vor dem teach-in Telegram schon Datentelegramme vom Sensor gesendet wurden.
2. Das Teach-In muss erfolgreich gewesen sein, sonst würde das Reading teach-in nicht vorhanden sein. Oder wurde dies auch manuell angelegt?
3. Das Attribut model muss gelöscht werden, da sonst das alte Profil genutzt wird.
4. Leider wurde auch von anderen schon berichtet, dass die Attribute, die per teach-in automatisch gesetzt werden, nicht zuverlässig abgespeichert werden. Es scheint aber eine Lösung zu geben. Ich werde diese aufnehmen, sobald die Tests abgeschlossen sind. Augenblicklich hilft es wohl ein weiteres Mal ein teach-in Telegram zu senden.

Hallo klaus.schauer
Habe Attribut model gelöscht und ein neus teach-in gesendet. Et voilà, Reading temperature wird jetzt angezeigt. Nur das Attribut model wird nicht mehr angezeigt. Ist das richtig?
Danke und Gruß ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

klaus.schauer

Zitat von: karpate schrieb am Di, 30 April 2013 20:33
Zitat1. Die Standard-Readings waren vorhanden, weil vor dem teach-in Telegram schon Datentelegramme vom Sensor gesendet wurden.
2. Das Teach-In muss erfolgreich gewesen sein, sonst würde das Reading teach-in nicht vorhanden sein. Oder wurde dies auch manuell angelegt?
3. Das Attribut model muss gelöscht werden, da sonst das alte Profil genutzt wird.
4. Leider wurde auch von anderen schon berichtet, dass die Attribute, die per teach-in automatisch gesetzt werden, nicht zuverlässig abgespeichert werden. Es scheint aber eine Lösung zu geben. Ich werde diese aufnehmen, sobald die Tests abgeschlossen sind. Augenblicklich hilft es wohl ein weiteres Mal ein teach-in Telegram zu senden.

Hallo klaus.schauer
Habe Attribut model gelöscht und ein neus teach-in gesendet. Et voilà, Reading temperature wird jetzt angezeigt. Nur das Attribut model wird nicht mehr angezeigt. Ist das richtig?
Danke und Gruß ingo
Sehr gut, Attribut model wird nicht benötigt. Falls das teach-in funktioniert sind weitere manuelle Vorgaben zum Sensor nicht nötig.

karpate

habe weitere SR04P Sensoren mit dem dem Profil roomSensorControl.05 eingelernt.
Dabei ist mir aufgefallen Reading "state" zwar Setpoint (SP) beinhaltet, aber nicht als Celsius-Wert anzeigt.
Bei Reading "T" ist SP = 0.
Ist das noch ein Fehler?


(siehe Anhang / see attachement)

# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

klaus.schauer

Zitat von: karpate schrieb am Mi, 01 Mai 2013 13:22habe weitere SR04P Sensoren mit dem dem Profil roomSensorControl.05 eingelernt.
Dabei ist mir aufgefallen Reading "state" zwar Setpoint (SP) beinhaltet, aber nicht als Celsius-Wert anzeigt.
Bei Reading "T" ist SP = 0.
Ist das noch ein Fehler?


(siehe Anhang / see attachement)

Die Readings T und set_point sind Relikte aus dem alten Profil. Bitte mit deletereading löschen. setpoint ist im neuen Profil ein numerischer Wert von 0 ... 255. Scheint alles in Ordnung zu sein.

karpate

Ok.
Wäre es nicht sinnvoller setpoint als Celsius-Wert anzuzeigen? Jetzt wird leider kein Sollwert mehr in meinem Plot angezeigt.
Kann eigentlich setpoint per FHEM geändert werden?
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

klaus.schauer

Zitat von: karpate schrieb am Mi, 01 Mai 2013 14:37Ok.
Wäre es nicht sinnvoller setpoint als Celsius-Wert anzuzeigen?
Kann eigentlich setpoint per FHEM geändert werden?
Bei den Ausgabewerten in den Readings habe ich mich möglichst genau an die EnOncean Protokolldefinitionen gehalten (EEP). Bei diesem Profil wird der Ausgabewert für Setpoint unverändert ausgegeben.

Man kann aber jedes Reading mit Hilfe des Attributes userReadings ganz nach seinen eigenen Anforderungen umformatieren und anders skalieren. Deshalb habe ich auch darauf verzichtet spezielle Skalierungsfunktionen einzubauen. Ich habe die Funktion bisher selbst nicht getestet. In der commandref unter attr sind aber eine ganze Reihe von Beispielen aufgelistet

karpate

Danke
Folgenden Eintrag habe ich ergänzt
attr eg_kue_Temp userReadings set_point { ReadingsVal("eg_kue_Temp","setpoint",0)/6.375; }

Werte werden berechner und im Plot angezeigt.
Gibt es einen offiziellen Faktor den ich verwenden kann?
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

klaus.schauer

Zitat von: karpate schrieb am Mi, 01 Mai 2013 22:40Danke
Folgenden Eintrag habe ich ergänzt
attr eg_kue_Temp userReadings set_point { ReadingsVal("eg_kue_Temp","setpoint",0)/6.375; }

Werte werden berechner und im Plot angezeigt.
Gibt es einen offiziellen Faktor den ich verwenden kann?
Gut, wenn es jetzt so wie gewünscht funktioniert. Nein es gibt keinen genormten Faktor. Den hätte ich dann eingebaut. Bitte die Skalenwerte und Umrechnungsfaktoren aus den Anleitungen oder den Beschriftungen des jeweiligen Gerätes übernehmen. Wenn es noch schön formatiert sein soll, kann man auch schreiben:
{ sprintf "%0.1f", ReadingsVal("eg_kue_Temp","setpoint",0)/6.375; }

karpate

Danke für den Hinweis.
Zur Vollständigkeit, die korrekte Syntax lautet

attr eg_kue_Temp userReadings set_point {sprintf("%0.1f", ReadingsVal("eg_kue_Temp","setpoint",0)/6.375) }


Allerdings habe ich noch folgendes Problem:
Wenn ich über Edit Files --> fhem.cfg bearbeite und speichere, werden Attribute wieder gesetzt wie sie vorher beim verwendeten Profil waren

aus
define eg_wz_Rollo EnOcean FF822DB3
attr eg_wz_Rollo eventMap B0:auf BI:zu


wird
define eg_wz_Rollo EnOcean FF822DB3
attr eg_wz_Rollo eventMap A0:auf AI:zu


Ich vermute das alte Profil habe ich nicht vollständig gelöscht.
Wie ist die genaue Vorgehensweise damit das alte Profil vollständig gelöscht wird?
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

klaus.schauer

Zitat von: karpate schrieb am Fr, 03 Mai 2013 09:59Danke für den Hinweis.
Zur Vollständigkeit, die korrekte Syntax lautet

attr eg_kue_Temp userReadings set_point {sprintf("%0.1f", ReadingsVal("eg_kue_Temp","setpoint",0)/6.375) }


Allerdings habe ich noch folgendes Problem:
Wenn ich über Edit Files --> fhem.cfg bearbeite und speichere, werden Attribute wieder gesetzt wie sie vorher beim verwendeten Profil waren

aus
define eg_wz_Rollo EnOcean FF822DB3
attr eg_wz_Rollo eventMap B0:auf BI:zu


wird
define eg_wz_Rollo EnOcean FF822DB3
attr eg_wz_Rollo eventMap A0:auf AI:zu


Ich vermute das alte Profil habe ich nicht vollständig gelöscht.
Wie ist die genaue Vorgehensweise damit das alte Profil vollständig gelöscht wird?


sprintf "%0.1f", ... geht auch ohne Klammerung. Im Gesamtkontext einer Programmzeile kann eine Klammerung aber u. U. notwendig werden, um eindeutig zu sein.

Das Phänomen mit dem Zurückschreiben vorheriger Eintragungen ist mir nicht bekannt. Um sicher zu gehen, dass die alten Eintragungen in der fhem.cfg raus sind, alle Eintragungen zu einem devices vollständig entfernen und dann fhem.cfg manuell speichern. Danach ist das devices nicht mehr im der WEB-Oberfläche zu sehen. Jetzt die neue Konfiguration in fhem.cfg eintragen und manuell speichern.

karpate

man lernt nie aus...

in meiner cfg war noch folgende Gruppendefinition, die ich jetzt auskommentiert habe...siehe da, jetzt werden auch keine "alten" attr mehr gesetzt
define Gruppe_Rollo_EG structure room eg_wz_Rollo eg_ez_Rollo_Terrasse eg_ez_Rollo_Fenster eg_bz_Rollo
attr Gruppe_Rollo_EG eventMap AI:zu A0:auf [...]


Sorry und Danke!
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr