Taster soll wert erhöhen / veringern und neu setzen in einem Notify

Begonnen von MAC66666, 21 Februar 2018, 00:22:18

Vorheriges Thema - Nächstes Thema

MAC66666

Ja blöd,
brauche ja gar kein Dummy... Außerdem hab ich damit meine Credits vom Max Thermostat aufgebraucht, kleines Fehlerchen gemacht... Jetzt muss ich warten, noch 45 messages im Queue  :(

ich habe es mal so umgebaut:
{ my $dtemp_plus = ReadingsVal("TWZli","desiredTemperature","19") + 1;;
  my $dtemp_minus = ReadingsVal("TWZli","desiredTemperature","19") - 1;;
.
.
.

  if ($EVTPART1 == 4 and $dtemp_plus >=30) {
    fhem ("set TWZli desiredTemperature 30");
    fhem ("set ESPEasy_SWZ1_Touch oledframedcmd on;define Disptemp at +00:00:15 set ESPEasy_SWZ1_Touch oledframedcmd off"); }
  if ($EVTPART1 == 64 and $dtemp_minus <=5) {
    fhem ("set TWZli desiredTemperature 5");
    fhem ("set ESPEasy_SWZ1_Touch oledframedcmd on;define Disptemp at +00:00:15 set ESPEasy_SWZ1_Touch oledframedcmd off"); }
  if ($EVTPART1 == 4 and $dtemp_plus <=30) {
    fhem ("set TWZli desiredTemperature $dtemp_plus");
    fhem ("set ESPEasy_SWZ1_Touch oledframedcmd on;define Disptemp at +00:00:15 set ESPEasy_SWZ1_Touch oledframedcmd off"); }
  if ($EVTPART1 == 64 and $dtemp_minus >=5) {
    fhem ("set TWZli desiredTemperature $dtemp_minus");
    fhem ("set ESPEasy_SWZ1_Touch oledframedcmd on;define Disptemp at +00:00:15 set ESPEasy_SWZ1_Touch oledframedcmd off"); }
}



kann das klappen?
FHEM @ Ubuntu 20.04 VM@ Windows 2019 Hyper-V @ NVMe
MAXCube als CUL_MAX (Thermostate)
MAXCube als SlowRF (FS20, wird durch ESPs ersetzt, teilweise geschehen)
Einige ESPs mit ESPEasy, zwei GHoma und ein Sonoff Tasmota

Wernieman

Warum fügst Du einige FHEM-Befehle zusammen, bei anderen Trennst Du es aber?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

MAC66666

Die zwei zusammengefassten Display-Befehle werden bei jeder Aktion widerholt. Das Notify hat 16 ifs. Der Übersichtlichkeit halber, so lange das notify noch nicht fertig ist, sind alle Individualbefehle extra. Wird später sicher auch zusammengefasst werden.
FHEM @ Ubuntu 20.04 VM@ Windows 2019 Hyper-V @ NVMe
MAXCube als CUL_MAX (Thermostate)
MAXCube als SlowRF (FS20, wird durch ESPs ersetzt, teilweise geschehen)
Einige ESPs mit ESPEasy, zwei GHoma und ein Sonoff Tasmota

fiedel

Zitat von: CoolTux am 23 Februar 2018, 15:55:01
Weil Dein Code unnötig aufgebläht ist.
Sowas kann man mit 3-5 Zeilen erschlagen.

Da würde mich wirklich mal ein konkretes Beispiel interessieren mit etwas Erläuterung dazu. Ich programmiere seit Jahren in diesem "aufgeblähten" Stil, auch weil ich meinen Code später noch verstehe. Bin aber durchaus an tendenziell ökonomischer Programmierung interessiert.

Mal ein Beispiel aus der Praxis: Neulich haben wir auf der Arbeit ein SPS- Programm mit (sehr ökonomischen, aber schwer verstehbaren) Multiinstanzen wieder zurück zu herkömmlicher Programmierung umgestellt. Einfach weil zuvor z.B. ein Schichtelektriker nicht den Hauch einer Chance gehabt hätte, mit dem Programm einen Maschinenfehler zu lokalisieren. Dem ursprünglichen Programmierer macht sicher so leicht keiner was vor und er wird für sein imenses Wissen bestaunt - aber in der Praxis ist er kaum zu gebrauchen, bzw. muss lernen Anwenderfreundlicher zu programmieren.
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

CoolTux

Zitat von: fiedel am 24 Februar 2018, 10:17:16
Da würde mich wirklich mal ein konkretes Beispiel interessieren mit etwas Erläuterung dazu. Ich programmiere seit Jahren in diesem "aufgeblähten" Stil, auch weil ich meinen Code später noch verstehe. Bin aber durchaus an tendenziell ökonomischer Programmierung interessiert.

Mal ein Beispiel aus der Praxis: Neulich haben wir auf der Arbeit ein SPS- Programm mit (sehr ökonomischen, aber schwer verstehbaren) Multiinstanzen wieder zurück zu herkömmlicher Programmierung umgestellt. Einfach weil zuvor z.B. ein Schichtelektriker nicht den Hauch einer Chance gehabt hätte, mit dem Programm einen Maschinenfehler zu lokalisieren. Dem ursprünglichen Programmierer macht sicher so leicht keiner was vor und er wird für sein imenses Wissen bestaunt - aber in der Praxis ist er kaum zu gebrauchen, bzw. muss lernen Anwenderfreundlicher zu programmieren.

Wüsste nicht das Anwenderfreundlich Programmieren heißt das der Anwender den Code verstehen muss. Der Anwender soll die Anwendung anwenden und nicht verstehen was dessen Code macht. Oder weißt Du was Der Code des ESP Systems in Deinem Auto macht? Entscheidend ist das Ergebnis. Es macht aber, gerade bei ESP, einen Unterschied ob der Code in 1s oder in 0,2s abgearbeitet wird.
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

fiedel

In der Instandhaltung der Industrie ist das wie gesagt komplett anders.
Und auch in der Heimautomatisierung sollte man seinen Code nach Jahren noch verstehen, um mal etwas zu ändern.
Am ESP ist das klar, aber zu Hause ist der Anwender oft gleichzeitig der Programmierer.
Da scheibe ich mir möglichst nicht "{%$&$.&&$//\\}" wenn ich auch "set licht_1 on" schreiben kann...
Es sei denn, ich kreiere gerne ASCII- Art.  ;)
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