Hauptmenü

Dynamischer Parameter

Begonnen von Gonzolo, 10 Mai 2017, 16:31:52

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: Thorsten Pferdekaemper am 11 Mai 2017, 10:22:38
Hi,
deshalb ja mein Vorschlag, das mit einem at zu machen. Das ist einfach und wahrscheinlich wirkungsvoll.
Dann "schwankt" es auch, aber eben nur maximal alle 5 Minuten (oder welches Intervall auch immer eingestellt ist).
Gruß,
   Thorsten

Dennoch musst du auch beim at das mehrfache Schalten unterbinden z. B. durch Filter. Abgesehen davon ist pollen immer ein schlechter Ansatz, wenn ein System Ereignissteuerung beherrscht.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Thorsten Pferdekaemper

Zitat von: Damian am 11 Mai 2017, 13:11:06
Dennoch musst du auch beim at das mehrfache Schalten unterbinden
Warum?

Zitat
Abgesehen davon ist pollen immer ein schlechter Ansatz, wenn ein System Ereignissteuerung beherrscht.
Naja, mal angenommen, ich habe ein Messwert, der naturgemäß schwankt. Temperaturen haben das z.B. so an sich. Dann bekomme ich ggf. alle paar Sekunden ein Ereignis. Ich muss dann irgendwas machen (Hysterese, event-min-interval oder so), damit ich diese Ereignisse nicht so oft bekomme. Warum dann nicht gleich ein Takt vorgeben, mit dem meine Regelung arbeitet?
Gruß,
   Thorsten

PS: Aussagen mit "immer" sind immer falsch.  ;)
FUIP

Gonzolo

Danke für Eure vielen Anregungen!

ABER... die Dynamisierung nach dem Muster


[Steuerung:"Platzhalter"] wobei der "Platzhalter" gleich dem aktuellen Reading [Stuerung:State] ist, geht also nicht?! Habe ich das richtig verstanden?

Danke und Gruß

Gonzolo

CoolTux

#18
Klar geht das. Aber da Du uns nicht verrätst welches Modul Du verwenden willst ist es schwer Dir da korrekte Tips zu geben.
Aber, JA
Zitat von: Gonzolo am 12 Mai 2017, 07:14:24
... die Dynamisierung nach dem Muster
[Steuerung:Platzhalter] wobei der "Platzhalter" gleich dem aktuellen Reading [Stuerung:State]

geht definitiv.

Wenn Du uns sagst wie Du Dich nun entschieden hast, ob notify, DOIF oder at, können wir Dir sicherlich weiter helfen. Bis dahin schöne ich meine Nerven.
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

Thorsten Pferdekaemper

Zitat von: Gonzolo am 12 Mai 2017, 07:14:24ABER... die Dynamisierung nach dem Muster
Hast Du meinen Beitrag #7 gelesen?

Zitat von: CoolTux am 12 Mai 2017, 07:30:23
Klar geht das.
Da würde mich jetzt auch interessieren, wie das geht ohne auf Perl zu wechseln. Das müsste dann ja so aussehen, oder?

[Steuerung:[Steuerung:state]]

Gruß,
   Thorsten
FUIP

CoolTux

Ok habe das mal geändert. Bei den ganzen durcheinander kommt man selbst ins grübbeln.

Wenn ich das ganze richtig verstanden habe, will er doch einfach nur seine Tag und Nacht Temperatur in zwei Dummys oder besser noch ein Dummy mit Tag Nacht Reading setzen und beim schalten sollen diese Temperaturen dann einfach aus den Dummy Readings ausgelesen werden. So war zu mindest mein Verständnis bevor das hier ausgeufert ist.

Also.
Man(n) erstelle ein dummy. Gebe ihm ein setList und setReadings.
Danach nehme man at, notify oder DOIF und füge dort ein

set ThermostatWohnzimmer desired-temp [dummyName:dayTemp]

und alles ist schick.
So zu mindest war mal die Ausgangsfrage

In einem zweiten Thread geht es dem Kollegen dann noch um eine Berechnung oder Bedingung oder so. Ist immer schwer zu verstehen.
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

Thorsten Pferdekaemper

Zitat von: CoolTux am 12 Mai 2017, 07:48:12
Wenn ich das ganze richtig verstanden habe, will er doch einfach nur seine Tag und Nacht Temperatur in zwei Dummys oder besser noch ein Dummy mit Tag Nacht Reading setzen...
Tja, von dem, was die Leute schreiben, auf das zu kommen, was sie wirklich wollen, grenzt oft an Exegese. Ich wage nicht zu behaupten, dass mir bisher so viel Erleuchtung zu Teil wurde, dass mir das immer gelingt.
[/Geschwafelmodus]

Ich glaube, wir haben hier sozusagen zwei Ebenen. Einmal die Anwendung, also irgendwas mit einer Heizung, dass man wahrscheinlich auf 100 verschiedene Arten machen könnte. ...und daran aufgehängt eine allgemeine technische Frage. Die geht soweit ich das verstanden habe so:
Gegeben ein Device mit einem Reading "readingname". (Statt "readingname" kann man auch "state" nehmen, das macht's aber schwerer verständlich.) In diesem Reading steht der Name eines anderen Reading. Wie kann ich jetzt auf das Reading zugreifen, dessen Name im Reading "readingname" steht? (Ob man das wirklich braucht ist eine andere Frage.)

Gruß,
   Thorsten



FUIP

CoolTux

Zitat von: Thorsten Pferdekaemper am 12 Mai 2017, 07:59:59
Frage. Die geht soweit ich das verstanden habe so:
Gegeben ein Device mit einem Reading "readingname". (Statt "readingname" kann man auch "state" nehmen, das macht's aber schwerer verständlich.) In diesem Reading steht der Name eines anderen Reading. Wie kann ich jetzt auf das Reading zugreifen, dessen Name im Reading "readingname" steht? (Ob man das wirklich braucht ist eine andere Frage.)

Soetwas braucht man nicht! Es muß/sollte anders gelöst werden.
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

Thorsten Pferdekaemper

Zitat von: CoolTux am 12 Mai 2017, 08:27:09
Soetwas braucht man nicht! Es muß/sollte anders gelöst werden.
Warum so dogmatisch? Zumal es doch eigentlich einfach ist:

ReadingsVal("device",ReadingsVal("device","readingname","blabla"),0)

Gruß,
   Thorsten
FUIP

CoolTux

Ja es geht. Aber nicht alles was geht sollte man einem Anfänger gleich zu muten. Oder magst Du ihm die Anwendung verschachtelter Funktionsaufrufe erklären  ;).  Zumal es sicherlich, mit reiflicher Überlegung verbunden, eine bessere und vor allem verständlichere Alternative gibt.
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

Thorsten Pferdekaemper

Zitat von: CoolTux am 12 Mai 2017, 08:57:53Oder magst Du ihm die Anwendung verschachtelter Funktionsaufrufe erklären 
...zumindest lieber als DOIF oder THRESHOLD.  :P
FUIP

Gonzolo

... ich würde es gerne mit DOIF machen!  ;)

Thorsten Pferdekaemper

Zitat von: Gonzolo am 12 Mai 2017, 10:12:46
... ich würde es gerne mit DOIF machen!  ;)
Dann bin ich raus, für DOIF bin ich zu blöd.
Gruß,
   Thorsten
FUIP

Gonzolo

... schade denn DU hast mich verstanden.

ZitatIch glaube, wir haben hier sozusagen zwei Ebenen. Einmal die Anwendung, also irgendwas mit einer Heizung, dass man wahrscheinlich auf 100 verschiedene Arten machen könnte. ...und daran aufgehängt eine allgemeine technische Frage. Die geht soweit ich das verstanden habe so:
Gegeben ein Device mit einem Reading "readingname". (Statt "readingname" kann man auch "state" nehmen, das macht's aber schwerer verständlich.) In diesem Reading steht der Name eines anderen Reading. Wie kann ich jetzt auf das Reading zugreifen, dessen Name im Reading "readingname" steht? (Ob man das wirklich braucht ist eine andere Frage.)

ich wollte hier nicht meine komplette Steuerung erklären. Ich brauche dieses komplizierte Konstrukt, da es halt nicht nur die Heizung ist, die ich damit steuere (z.B. auch Rollladen).

Was muss ich schreiben, dass Ihr meine Frage versteht?!  :-[ Drücke ich mich tatsächlich sooooo kompliziert aus?  :o ... Schade!

Damian

Ich weiß nicht wo das Problem ist, bevor wir uns hier noch tagelang mit einer banalen Anforderung beschäftigen, hier eine Komplettlösung in zwei Zeilen:



define TH_Heizung THRESHOLD Temp Heizung

define di_room DOIF ([TagNacht] eq "es ist Tag") (set Heizung desired [Tagtemp]) DOELSE (set TH_Heizung desired [Nachttemp])



Voraussetzungen:

Heizung ist deine Heizung, geschaltet mit on/off

Dummy TagNacht mit "es ist Tag" bzw. "es ist Nacht" (wie gewünscht)
Dummy Tagtemp mit der Solltemperatur für Tag z. B. 20
Dummy Nachttemp mi der Solltemperatur für Nacht z. B. 18

Temperaturfühler namens Temp mit dem Reading temperature

Default-Hysterese beträgt 1 Grad.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF