Neues Modul YAAHM - Yet Another Auto Home Module

Begonnen von Prof. Dr. Peter Henning, 09 August 2017, 08:01:55

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

#195
Achtung:

Der Fehler wird derzeit beim Update eingebaut. Wenn er auftritt, bitte auf die alte Version von 01_FHEMWEB zurückgehen.

Problem ist in Arbeit.

LG

pah

Mave

Tut wieder....nach Update auf neueste 01_FHEMWEB Version.

Prof. Dr. Peter Henning

#197
Rudi König hat die Änderung wieder rückgängig gemacht, das Problem ist für den Moment behoben. Er möchte sie aber doch wieder einführen. Bitte deshalb hier an der

Abstimmung beteiliigen:

https://forum.fhem.de/index.php/topic,92615.0.html

LG

pah

Edit: Ist erledigt, eine andere Lösung wurde gefunden.

andies

Ich habe eine Frage zu dem Modul, pah. Mir gefällt die Sammlung diverser at's DOIF usw, aber ich komme nicht klar. Ich habe kurz vor Mitternacht folgende Aufgabe
define loggen *23:57:00 { my $d1 = 'Gas: '.ReadingsVal('Gasrechner', 'Heizungskeller_Gas_EnergyCostDay',''); my $d2 = ' Min: '.ReadingsVal('BresserTemeo_1', 'tmin', ''); my $d3 = ' Max: '.ReadingsVal('BresserTemeo_1', 'tmax',''); fhem('set GasTemperaturRegression $d1 $d2 $d3'); }

und war nun davon ausgegangen, dass ich einfach den hinteren Teil in das Wochenprofil "vor Mitternacht" eintrage. Das geht aber bei mir nicht. Hast Du eine Idee, was ich hier falsch mache? Der Logfile sagt
2018.11.09 21:20:51 1: ERROR evaluating {main::YAAHM_setParm("Profil","dt","beforemidnight","undef","00:02","{ my $d1 = 'Gas: '.ReadingsVal('Gasrechner', 'Heizungskeller_Gas_EnergyCostDay',''); my $d2 = ' Min: '.ReadingsVal('BresserTemeo_1', 'tmin', ''); my $d3 = ' Max: '.ReadingsVal('BresserTemeo_1', 'tmax',''); fhem('set GasTemperaturRegression $d1 $d2 $d3'); }",";")}: Global symbol "$d1" requires explicit package name at (eval 609645) line 1.
Global symbol "$d2" requires explicit package name at (eval 609645) line 1.
Global symbol "$d3" requires explicit package name at (eval 609645) line 1.
Global symbol "$d1" requires explicit package name at (eval 609645) line 1.
Global symbol "$d2" requires explicit package name at (eval 609645) line 1.
Global symbol "$d3" requires explicit package name at (eval 609645) line 1.

und ich war der Meinung, dass ich das mit der my-Deklaration doch behoben hätte?!
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Prof. Dr. Peter Henning

Die Dollarzeichen sollten escaped werden, also \$.

LG

pah

andies

habe ich jetzt, und das wird angenommen - danke. In dem dummy lese ich dann aber
Internals:
   NAME       GasTemperaturRegression
   NR         76
   STATE      $d1 $d2 $d3
   TYPE       dummy
   READINGS:
     2018-11-09 23:57:00   state           $d1 $d2 $d3
Attributes:
   group      Messen
   room       Wetter

und müsste der state jetzt nicht die Werte statt der Variablen $d1 etc haben?
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Prof. Dr. Peter Henning

Öh, da habe ich mich wohl selbst ausgetrickst, das war zu schnell...

Mal experimentieren, bitte mal im letzten Teil (also dem fhem-Aufruf) die  \ weglassen.

LG

pah

andies

Also im Log steht, dass er das wohl gesetzt hat:
2018.11.11 23:59:00 1: [YAAHM_time] executing { my $d1 = 'Gas: '.ReadingsVal('Gasrechner', 'Heizungskeller_Gas_EnergyCostDay',''); my $d2 = ' Min: '.ReadingsVal('BresserTemeo_1', 'tmin', ''); my $d3 = ' Max: '.ReadingsVal('BresserTemeo_1', 'tmax',''); fhem('set GasTemperaturRegression $d1 $d2 $d3'); }
Das Reading ist aber unverändert (gestriger Wert).

Vielleicht sage ich mal, was ich eigentlich will: Ich kriege ja aus der Perl-Rechnung drei Werte heraus (Gasrechner, Temperaturen) und ich möchte die direkt in einen Logfile schreiben, um Mitternacht. Ich habe das über einen Umweg eines dummys gemacht, weil ich mir den Wert auch anzeigen lassen möchte.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Hans Franz

Zitatfhem('set GasTemperaturRegression $d1 $d2 $d3');
Nimm doppelte statt einfacher Anführungszeichen.
hem("set GasTemperaturRegression $d1 $d2 $d3");

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

andies

Hm, da kam das hier im Logfile:
2018.11.12 09:57:36 1: ERROR evaluating {main::YAAHM_setParm("Profil","dt","beforemidnight","undef","00:01","{ my $d1 = 'Gas: '.ReadingsVal('Gasrechner', 'Heizungskeller_Gas_EnergyCostDay',''); my $d2 = ' Min: '.ReadingsVal('BresserTemeo_1', 'tmin', ''); my $d3 = ' Max: '.ReadingsVal('BresserTemeo_1', 'tmax',''); fhem('set GasTemperaturRegression $d1 $d2 $d3'); }",";")}: Global symbol "$d1" requires explicit package name at (eval 845981) line 1.
Global symbol "$d2" requires explicit package name at (eval 845981) line 1.
Global symbol "$d3" requires explicit package name at (eval 845981) line 1.
Global symbol "$d1" requires explicit package name at (eval 845981) line 1.
Global symbol "$d2" requires explicit package name at (eval 845981) line 1.
Global symbol "$d3" requires explicit package name at (eval 845981) line 1.

Ich probiere das heute abend dennoch mal aus.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Prof. Dr. Peter Henning

Nein, gemeint ist: Doppelte Anführungszeichen im letzten fhem(---). Könnte gehen, muss ich auch probieren.

LG

pah

andies

Setmagic wird das Problem lösen, oder
set GasTemperaturRegression Gas: [Gasrechner:Heizungskeller_Gas_EnergyCostDay] Min: [BresserTemeo_1:tmin] Max: [BresserTemeo_1:tmax]
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

Noch eine Frage, weil ich gern komplett auf das Modul umsteigen möchte: Kann ich auch Abfragen einbauen? Also nach Sonnenuntergang, wenn reading>irgendwas, dann mach dies und das? Ginge da die DOIF-Notation oder muss ich das mit Perl nachbauen?
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

hoods

Zitat von: Prof. Dr. Peter Henning am 23 Oktober 2018, 07:57:52
Kann ich vor nächster Woche nicht testen.

LG

pah

Hallo pah,

ich konnte mein Kalender Problem (https://forum.fhem.de/index.php/topic,75206.msg848604.html#msg848604) leider bisher nicht lösen. Ich habe YAAHM versuchsweise noch auf einem rpi3 und odroid C2 mit Fhem5.9 installiert und nutze wieder einen google Calender als Calender Device aber das Ergebnis ist das gleiche.

Mit eingebundenem Kalender sollte doch tomorrowType kurz nach Mitternacht auf "Ferien" gesetzt werden, wenns ich das Modul richtig verstehe.

Abfrage des Kalenders:
{Calendar_Get($defs{"googleCal"},"get","full","mode=alarm|start|upcoming")}

0mg84lja8i81hrhe7jlee0vb23googlecom     start                     09.11.2018 00:00-01.12.2018 00:00 Demo Ferien 
F_2018_termin5be39d5401b1aschulferienorg  upcoming                     21.12.2018 00:00-05.01.2019 00:00 Weihnachtsferien 2018 Nordrhein-Westfalen 
F_2019_termin5be39d54b4941schulferienorg  upcoming                     15.04.2019 00:00-28.04.2019 00:00 Osterferien 2019 Nordrhein-Westfalen 
F_2019_termin5be39d54b49d3schulferienorg  upcoming                     11.06.2019 00:00-12.06.2019 00:00 Pfingstferien 2019 Nordrhein-Westfalen 
F_2019_termin5be39d54b4a4dschulferienorg  upcoming                     15.07.2019 00:00-28.08.2019 00:00 Sommerferien 2019 Nordrhein-Westfalen 
F_2019_termin5be39d54b4ac2schulferienorg  upcoming                     14.10.2019 00:00-27.10.2019 00:00 Herbstferien 2019 Nordrhein-Westfalen


Es sieht alles nach einem Benutzerfehler aus aber ich seh den Wald vor lauter Bäumen nicht. Bin für jeden Tipp dankbar.

Gruss hoods
Odroid C2, FHEM 5.8, HMUSB, Jeelink, Rademacher DuoFern Stick, Benning WR über HTTPMOD

Prof. Dr. Peter Henning

@andies: Nicht DOIF, sondern IF als FHEM-Befehl. Siehe commandref.

LG

pah