Gelöst: Anfänger - Umstellen von Templist per button/Liste

Begonnen von pula, 26 Dezember 2014, 19:12:08

Vorheriges Thema - Nächstes Thema

pula

Hallo,

ich fange grade an, mich mit fhem zu beschäftigen und habe mir unter anderem mal einen HM-Lan-Adapter, einen HM-Thermostat und Regler für einen Heizkörper besorgt. Das funktioniert grundsätzlich auch gut.
Habe nun ein paar Temperaturlisten angelegt (bin zb öfter beruflich auf Reisen und da sollen die Temperaturen natürlich anders sein, als wenn ich zu Hause bin) und die werden mittlerweile auch richtiig geladen und aktiviert.
Allerdings muß das immer per Befehl gemacht werden. Das funktioniert zwar, ist aber ein wenig unbequem.
Besser wäre es, wenn ich einen entsprechenden Button hätte, in der ich die verschiedenen entities einfach aktivieren kann.
Was mir dazu fehlt, ist ein Ansatz, wie so etwas in fhem zu realisieren ist.

Ich habe mich bereits im Forum eingelesen und ein wenig herumexperimentiert, allerdings bin ich noch nicht auf für mich hilfreiche Informationen gestoßen.
Ach ja - ich denke zwar, daß das nicht relevant ist, aber der Vollständigkeit halber:
Ich betreibe fhem auf einem Fedora-Server in der Version 5.6. Ich habe mal ein Update versucht, danach allerdings beim Start von fhem einen Fehler bekommen, daher bin ich wieder zurückgestiegen....

Vielen Dank im Voraus für hilfreiche Antworten :-)

Cheers,

Otto

PS: Die Lösung war folgendes (aus meiner fhem.cfg):

efine HeizungUmschalten dummy
attr HeizungUmschalten webCmd Linz:Wien:UrlaubDaheim:UrlaubWeg
define n_HeizungUmschalten notify HeizungUmschalten {\
if($EVENT eq "Wien") {\
    Log(3,"1. $EVENT");;\
  }\
  elsif($EVENT eq "Linz") {\
    Log(3,"2. $EVENT");;\
  }\
  else {\
    Log(3,"3. $EVENT");;\
  }\
}
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

Puschel74

#1
Hallo,

erst das
ZitatIch betreibe fhem auf einem Fedora-Server in der Version 5.6. Ich habe mal ein Update versucht, danach allerdings beim Start von fhem einen Fehler bekommen, daher bin ich wieder zurückgestiegen....
mit dem fehlerhaften Update beheben und dann das andere.

Eine aktuelle Version (resp. ein funktionierendes update) ist allemal wichtiger als dein Button.

Die Fehlermeldung mit genauem Wortlaut - copy&paste nach Eingabe von update in der Befehlszeile - wäre gut.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

chris1284

erstmal schauen das dein fhem aktuell ist, siehe  Puschel74's antwort

zu lösung für die templisten:
-definiere einen dummy
-gib dem dummy per attr webCmd ein paar befehle mit, die man dann klicken kann (zb urlaub:arbeit:reise)
-bau dir ein notify welches auf den dummy reagiert und hinterleg dort die befehle die du zur zeit noch in fhem eingeben musst
(zb bei reise -> set .... , bei urlaub -> set ..., usw)

wkarl

Hallo Otto,

Ich betreibe fhem auf einem Fedora-Server in der Version 5.6. Ich habe mal ein Update versucht, danach allerdings beim Start von fhem einen Fehler bekommen,

was hast Du upgedated? fhem? Ein fhem-update macht die Datei fhem.pl nicht ausführbar (warum auch immer), mit chmod 755 fhem.pl wird dies korrigiert.

ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

pula

Hallo,

erstmal danke an alle für die hilfreichen Antworten.
Ich habe das Update gestern versucht und dann einen Fehler in irgend einem perl-Modul beim Start von fhem bekommen.
Ein Update grade jetzt hat aber funktioniert:

# $Id: fhem.pl 7301 2014-12-22 07:12:41Z rudolfkoenig $
# $Id: 10_CUL_HM.pm 7293 2014-12-21 18:09:32Z martinp876 $
# $Id: 01_FHEMWEB.pm 7284 2014-12-21 16:18:32Z rudolfkoenig $
# $Id: 92_FileLog.pm 7135 2014-12-05 21:11:17Z rudolfkoenig $
# $Id: 00_HMLAN.pm 7104 2014-11-30 18:55:56Z martinp876 $
# $Id: 98_HMinfo.pm 7086 2014-11-29 09:40:41Z martinp876 $
# $Id: 82_LGTV2012.pm 2 2014-03-17 11:05:19Z juliantatsch $
# $Id: 99_SUNRISE_EL.pm 6765 2014-10-14 18:24:29Z rudolfkoenig $
# $Id: 98_SVG.pm 7245 2014-12-17 16:13:07Z rudolfkoenig $
# $Id: 99_Utils.pm 6660 2014-10-03 06:35:43Z rudolfkoenig $
# $Id: 98_XmlList.pm 2895 2013-03-11 19:48:01Z rudolfkoenig $
# $Id: 90_at.pm 7000 2014-11-16 16:51:50Z rudolfkoenig $
# $Id: 98_autocreate.pm 6505 2014-09-06 12:24:48Z rudolfkoenig $
# $Id: 91_eventTypes.pm 7221 2014-12-15 10:02:49Z rudolfkoenig $
# $Id: 91_notify.pm 7260 2014-12-19 12:50:49Z rudolfkoenig $
# $Id: 98_telnet.pm 6611 2014-09-24 07:48:32Z rudolfkoenig $


@wkarl: danke für den Hinweis - aber ich starte per shell-Skript mit perl fhem.pl.... - das sollte also irrelevant sein. Kann aber bestätigen, daß die neue fhem.pl kein x hat...
@chris1284: super, danke sehr! ich werde das morgen ausprobieren. bin schon gespannt, ob das dummy dann auch in andfhem auftaucht...

cheers,

Otto
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

pula

Hallo nochmal,

irgendwie stehe ich aufm schlauch :-(
ich habe nun folgendes definiert:
define HeizungUmschalten dummy
attr HeizungUmschalten room Heizung
attr HeizungUmschalten setList state:Linz,Wien,UrlaubDaheim,UrlaubWeg
attr HeizungUmschalten webCmd state
define n_HeizungUmschalten notify HeizungUmschalten {Log (1,"n_HeizungUmschalten UrlaubDaheim")}


Das notify reagiert noch nicht. Ich habe mal ein getstate HeizungUmschalten abgesetzt, da bekomme ich nichts zurück. Bei echten Devices funktioniert getstate aber.

Auch etwas in der Art
define n_HeizungUmschalten notify HeizungsumSchalten {if ({fhem("get HeizugUmschalten param state") eq "UrlaubDaheim"}) fhem{"Log ("n_HeizungUmschalten UrlaubDaheim")"}


funktioniert leider nicht.

Weiß jemand, wo mein Denkfehler liegt?
Kleine Zusatzfrage: Weiß jemand, wie das in fhem mit verschachtelten Hochkommata gehandhabt wird, zb bei
...fhem{"Log ("n_HeizungUmschalten UrlaubDaheim")"}

Vielen Dank im Voraus!

Cheers,

Otto
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

dindihi

Versuch's mal damit:

define notify_abwesend notify Abwesend.* { if("$EVENT" =~ m/on/) {Log(1,"Abwesend set to on")} else {Log(1,"Abwesend set to off")}}

(Achtung, bin noch Anfänger!  ;) )

pula

Hallo dindihi,

vielen Dank für Deine Antwort. Leider kann ich das noch zu wenig abstrahieren, daß mir das weiterhelfen würde.

Vielleicht kann ich die Frage anders formulieren:

Weiß jemand, wie man den state von einem dummy auslesen kann?

Danke und cheers,

Otto
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

Puschel74

Hallo,

Zitat von: otto001 am 28 Dezember 2014, 19:50:47

Weiß jemand, wie man den state von einem dummy auslesen kann?

Danke und cheers,

Otto

Mit Value - Value("Name_des_Dummy") sollte das sein was du suchst.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

pula

Hi nochmal,

vielen Dank für Eure Hilfe, aber scheinbar bin ich zu doof :-(

wenn ich im Web-Frontend den Wert des Dummys mittels Liste ändere, bekomme ich im Log:

Cmd: >set HeizungUmschalten  UrlaubDaheim<
2014.12.28 21:15:55 4: dummy set HeizungUmschalten UrlaubDaheim
2014.12.28 21:15:55 5: Triggering HeizungUmschalten (1 changes)
2014.12.28 21:15:55 5: Notify loop for HeizungUmschalten UrlaubDaheim
2014.12.28 21:15:55 4: eventTypes: dummy HeizungUmschalten UrlaubDaheim -> UrlaubDaheim
2014.12.28 21:15:55 4: eventTypes: dummy HeizungUmschalten state: UrlaubDaheim -> state: UrlaubDaheim


Also, das Umschalten selber klappt schon und der value ändert sich auch in der Oberfläche.

Nun habe ich mal mein (erstes) notify versucht:

define n_HeizungUmschalten notify HeizungsumSchalten {if ({fhem("Value("HeizugUmschalten"") eq "UrlaubDaheim"}) fhem{"Log ("n_HeizungUmschalten UrlaubDaheim")}

Und eigentlich sollte dann im log irgendwie die Meldung "n_HeizungUschalten UrlaubDaheim" aufscheinen, tut es aber nicht?
Sorry, wenn ich ein wenig nerve, aber meine Versuche, mich heranzutasten sind noch ein wenig tapsig...

Cheers,

Otto
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

Doggiebert

ja öha, was machst Du denn da mit den Klammern?
Nachdem Du Dich jetzt schon bissl eingelesen hast, die nächste Lektüre für das Arbeiten mit perl in notifys: http://raspi:8082/fhem/docs/commandref.html#perl

Du kannst dem notify entweder direkt fhem-Befehle (ohne Klammern) mitgeben, oder Du machst ein perl-Statement - sowas wird in fhem immer mit geschweiften Klammern gemacht, aber nur 1 Paar geschweifte Klammern aussenrum, damit Fhem weiß, dass jetzt perl code kommt.

Ohne es ausprobiert zu haben, probier's doch mal so:
define n_HeizungUmschalten notify HeizungsumSchalten {if (Value("HeizugUmschalten") eq "UrlaubDaheim") Log(1, "n_HeizungUmschalten UrlaubDaheim")}
SW: FHEM 5.5, Raspian, XBMC, Testinstallation auf Win7
HW: Raspi B, 32GB SD, enocean Pi, RFXTRX433E, BSC - MwC-32, Onkyo TX-NR709, Samsung UE55F8090, Jung LS-Eno, permundo SmartPlug, KDG-FB 6490cable (ohne FHEM)

dindihi

Bin mir jetzt nicht sicher, aber könnte die IF Anweisung nicht auch so aussehen:

define n_HeizungUmschalten notify HeizungsumSchalten IF ([HeizugUmschalten:&STATE] eq "UrlaubDaheim") Log(1, "n_HeizungUmschalten UrlaubDaheim")

?

pula

Danke für Eure Antworten. Aber es tut nicht.
kann aber auch sein, daß es an der log-function liegt.
muss mir erst noch einen besseren weg ausdenken, wie ich rausfinden kann, ob ein notify mit if funktioniert, dachte mir aber, daß ein log-entry ein guter ansatz wäre...
naja, ich werde morgen weiterprobieren. danke nochmal!

cheers,
Otto
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

chris1284

Probier mal

define n_HeizungUmschalten notify HeizungsumSchalten {
if ($EVENT eq "UrlaubDaheim")
{Log 3, ("n_HeizungUmschalten: $EVENT.");}

pula

@chris: Danke sehr, funktioniert aber leider auch nicht :-(

Folgendes im Log:
Cmd: >set HeizungUmschalten  UrlaubDaheim<
2014.12.29 18:26:43 4: dummy set HeizungUmschalten UrlaubDaheim
2014.12.29 18:26:43 5: Triggering HeizungUmschalten (1 changes)
2014.12.29 18:26:43 5: Notify loop for HeizungUmschalten UrlaubDaheim
2014.12.29 18:26:43 4: eventTypes: dummy HeizungUmschalten UrlaubDaheim -> UrlaubDaheim
2014.12.29 18:26:43 4: eventTypes: dummy HeizungUmschalten state: UrlaubDaheim -> state: UrlaubDaheim


Ich habe langsam das Gefühl, daß das so nicht funktioniert.
Die einzige Möglichkeit, die ich bisher gefunden habe, um das Reading rauszubekommen, ist
list HeizungUmschalten state
Ergebnis im Web-Frontend:

HeizungUmschalten 2014-12-29 18:26:43 UrlaubDaheim


Meine Idee dazu, wäre mir eine perl-Routine zu bauen, die den String splittet und das letzte Wort zurückgibt.
In diesem Fall also den String "UrlaubDaheim".
Was meint ihr zu diesem Plan?
Es wundert mich, daß so etwas nicht häufiger von Benutzern gebraucht wird?!

Danke im voraus!

Cheers,

Otto
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram