Input für Temperatursteuerung

Begonnen von hhsch, 23 Juli 2014, 15:45:28

Vorheriges Thema - Nächstes Thema

hhsch

Hallo,

gibt es eine Möglichkeit die ein Eingabefeld zu erzeugen, um Variablen in einem Watchdog zu verändern?
Anwendungsbeispiel: Wenn die Temperatur unter den eingegebenen Wert sinkt, dann schalte die Heizung ein.

Grüße
hhsch
FHEM mit DbLog (MySQL) auf BananaPi M2 (RPiTC-2_beta1-bpi-m2), mit CUL868 (fw 1.57) und CUL868 (fw 1.57) im HM Betrieb
12xCUL_EM, 2xCUL_WS, 6xHMS100T, 4xHMS100TF, CUL_HM_HM_CC_RT_DN, CUL_HM_HM_TC_IT_WM_W_EU, CUL_HM_HM_SEC_SCo, CUL_HM_HM_LC_SW2_FM, KS300

Elektrolurch

define Schwellwert dummy
attr Schwellwert room Einstellungen
attr Schwellwert setList Wert:textField
attrt Schwellwert webCmd Wert

Dann sollte ein Textfeld erscheinen. Mit

attr Schwellwert setList Werteliste:10,12,14,18
attr Schwelwert webCmd Werteliste

bekommst Du ein Menü

Die Werte landen beim dummy in readings Werte bzw. Werteliste.
Schau Dir mal die CommandRef dazu (dummy) an.

Gruß


Elektrolurch
configDB und Windows befreite Zone!

Bennemannc

Hallo,

Heizung ein oder aus schalten HCS Modul, andere Sachen abhängig von Werten steuern THRESHOLD, Zeitabhängig und Werteabhängig at mit If oder IF.
Beispiele:
define Heizung_Pumpe HCS Unterbr_Heizung
define Abluft_Wiga_1 THRESHOLD Temp_1:temperature:2:28 AND 4_CH_PLATINE_02:battery:ok 4_CH_PLATINE_02_Sw_02|set @ on|set @ off|2
define Rollo_Fitness_Tuer_zu at *{sunset("REAL",0,"17:30","22:00")} IF (ReadingsVal("Fensterkontakt_01","state","open") eq "closed")\
({fhem ("set Rollo_01 0")})

Die Werte können dann meist (Ausnahme at) über das WebIf geändert werden (Attribute)

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

fiedel

#3
Hallo zusammen,

mich interessiert das auch mal. Haben wir denn noch keine "Eingabefunktion" mit der man z.B. auf dem Tablet nur auf einen Button drückt (z.B. Dummy mit Icon) und dann öffnet sich ein Eingabefenster und die Bildschirmtastatur? Sowas kann in der Industrie der billigste Touchscreen.  ;)

Ich hätte da auch eine Anwendung im Bereich Energiezähler. Wer weiß da mehr oder hat einen Tipp für mich, wie ich sowas selbst programmieren könnte (Javascript?)?

Viele Grüße

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Bennemannc

Hallo fiedel,

Elektrolurch hat doch schon geschrieben, wie man ein Eingabefeld mit attr und webcmd zusammenbaut.
Bezüglich der Energiezähler: ich lese die S0 Zähler mit Panstamp aus und übertrage 15min Werte nach fhem.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

fiedel

Das hatte ich kurz probiert und es ging nicht so wie ich dachte - aber das kann mein Fehler gewesen sein. Ich teste es später noch mal genau.

Vielen Dank!

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

fiedel

#6
Hallo Ihr Lieben,

ich kriegs nicht hin:

#Test Eingabefeld:
define Wert dummy
attr Wert room test
attr Wert setList Wert:textField

define test dummy
attr test room test
attr test setList text:textField nochEinText:textField
attr test webCmd text:nochEinText


Siehe Screenshot:

(http://forum.fhem.de/index.php?action=dlattach;topic=25605.0;attach=17490)

Beim Dummy "Wert" geht gar nichts - kein Fenster, keine Eingabemöglichkeit.
Beim Dummy "test" (Beispiel gefunden von justme) gibt es gleich 2 Felder, aber wenn ich Enter drücke, nimmt es nichts an. Kein Text und keine Zahlen. Auch nicht, wenn ich nur ein Feld befülle.

Was da noch zum vollkommenen Glück?  ;) 

Edit: Mir schwant was: Die Readings selber ändern sich beim Entern - damit es in den Dummywert wandert muss ich noch ein Notify dazubauen? Oder geht das einfacher?
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Elektrolurch

Hallo,

Tipp:

define test_not notify test:.* {Log(3,"test_not: $NAME $EVENT");;}

Damit siehst Du, was Du eingibst.
Leider verhält sich m.M.n. textField und Menü (setList menu:1,k2,3,4,5) für einen dummy unterschiedlich.
Ich bin so vorgegangen, dass ich an das dummy ein notify mit einem perl-Skript hänge und da dann die interessanten Sachen mache.

und dann siehe Dir mal mit dem "list test" Befehl an, ob da readings entstanden sind.

Für manche Eingabearten muss man nämlich im notify explizit dann das reading setzen.


Leider ist die doku in fhem diesbezüglich nicht so toll. Also: experimtieren.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

fiedel

Vielen Dank Elektrolurch!

Habe gerade im Eventmonitor nachgesehen, während ich ein Eingabefeld abgeentert habe. Dort passiert ein Event, mit dem ich per Notify meine Berechnung machen werde und dann das Ergebnis per "set" in den Dummy und an die Energieroutine schicken kann. Dann kann der Schnipsel demnächst endlich mal in`s Wiki. Ohne Inputfeld war mir das noch zu halbgar.  ;)
Ich gebe damit den realen Zählerstand ein und das Script berechnet mir den Offset und schreibt ihn gleich in das richtige Attribut.
Hatte ich schon länger hier rumliegen, war mir aber noch zu kompliziert zu nutzen ("set offsetA 123456.789" in der Eingabemaske).

Viele Grüße

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Elektrolurch

Schön, dass es Dir weiter geholfen hat. Ich versuche hier immer die Tipps zu geben, damit man dann selbst weiter kommt. Vermutlich steht zwar irgendwo im Forum auch schon immer eine Lösung, aber
1. Die Suchmaschine hier ist nicht berauschend
2. teilweise muss man über goolge hier im Forum suchen
3. und dann auch wissen, wonach man sucht....

Daher lieber ein paar Kniffe zur Selbsthilfe, so eine Vorgehensweise halte ich für konstruktiver, als gebetsmühlenartig gerade bei Einsteigern immer auf 1. und 2. zu verweisen.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

fiedel

Hi Elektrolurch,

mal noch ne kurze Rückmeldung: Es hat geklappt! Kann den Event vom textfield im Notify auffangen, den eingegebenen Wert verarbeiten und in den Offset, sowie in den Dummy schreiben. Sehr schön! Sobald ich Zeit finde, setzte ich mich an den Wiki- Eintrag.

Ein Problem habe ich allerdings noch: Der eingegebene Wert wird ja nicht geprüft. Wenn ich was unlogisches eingebe, macht es mir die Berechnug kaputt. Da muss ich noch ein regex oder sowas suchen, womit ich den Wert überprüfen kann wie z.B.: "wenn Zahl mit punkt und zwei Stellen hinterm Punkt, dann verarbeite die Berechnung. Aber das kommt später... Erst mal funktioniert ja alles.

Viele Grüße und schönes WE!

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423