blutiger Anfänger ... und kommt nicht weiter

Begonnen von jager, 16 Februar 2014, 16:13:18

Vorheriges Thema - Nächstes Thema

jager

Hallo zusammen,
ich habe FHEM auf einem Raspi installiert, das läuft soweit.
Seit mittags kann ich auch meinen Hutschienenschalter in FHEM schalten und ich habe es sogar schon geschafft, dass ich eine "Zeitschaltuhr" für den Hutschienen-4-fach-Schalter programmiert habe:

# Hoflicht täglich um 06:00:00 Uhr einschalten
define Hoflichttaeglichan1 at *06:00:00 { fhem("set HOF.beleuchtung1 on")  }
# Hoflicht täglich um 08:00:00 Uhr ausschalten
define Hoflichttaeglichaus1 at *08:00:00 { fhem("set HOF.beleuchtung1 off")  }
# Hoflicht täglich um 17:00:00 Uhr einschalten
define Hoflichttaeglichan2 at *17:00:00 { fhem("set HOF.beleuchtung1 on")  }
# Hoflicht täglich um 08:00:00 Uhr ausschalten
define Hoflichttaeglichaus2 at *01:00:00 { fhem("set HOF.beleuchtung1 off")  }



Soweit, so gut ;)

Vom Erfolg motiviert, wollte ich das gleiche jetzt für eine Schaltsteckdose im Wohnzimmer machen,
die sich testweise für zwei Sekunden einschalten soll.

define wozi_s1_2s { fhem("set WoZi.S1 on-for-timer 2") }

Wenn ich die fhem.cfg jetzt sichern will, bekomme ich die Fehlermeldung "unknown Module, choose one of ...".

Was mache ich verkehrt?? Ich versteh es nicht!

fhainz

Zitat von: jager am 16 Februar 2014, 16:13:18
define wozi_s1_2s { fhem("set WoZi.S1 on-for-timer 2") }

Zwischen wozi_s1_2s und dem { fehlt das Modul das du definieren willst. Deswegen auch die Fehlermeldung "unknown Module, choose one of ..."


Grüße

jager

Zitat von: fhainz am 16 Februar 2014, 16:19:41
Zwischen wozi_s1_2s und dem { fehlt das Modul das du definieren willst. Deswegen auch die Fehlermeldung "unknown Module, choose one of ..."

Und was soll ich da korrekterweise nehmen??

fhainz

Kommt drauf an was du machen willst. Oben hast du zB das at Modul definiert.

at *17:00:00


Grüße

Puschel74

#4
Hallo,

das Einsteiger.pdf hast du aber gesehen?

Grüße

Edith: Sorry aber das
ZitatWenn ich die fhem.cfg jetzt sichern will, bekomme ich die Fehlermeldung "unknown Module, choose one of ...".
und "blutiger Anfänger" passt nicht zusammen.
Jedem "blutigen Anfänger" lege ich ans Herz - Finger weg von der fhem.cfg
Es geht alles, wirklich alles was "blutige Anfänger" machen wollen auch ohne jemals in die fhem.cfg zu schauen - wirklich alles.
Und du schaltest schonmal eine Fehlerquelle aus wenn du die fhem.cfg wieder vergisst.

Edith2: Ich hab dir mal rausgesucht wo beschrieben ist wie Anfänger mit fhem arbeiten können ohne in die fhem.cfg zu schauen
http://forum.fhem.de/index.php/topic,17433.msg114930.html#msg114930
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.

Zrrronggg!

#5
Ich bin da ausnahmsweise nicht zu 100% Puschel74s Meinung. Man kann meiner Auffassung nach auch als Anfänger in der fhem.cfg rumfummeln. Allerdings erfordert das zumindest, dass man den grundsätzlichen Aufbau eine Kommands wie von dir benutzt verstanden haben muss.

Und das ist in etwa so:

define <irgendeine_name> <auslösende Aktion> <mach irgendwas>

Dein Konstrukt

define wozi_s1_2s { fhem("set WoZi.S1 on-for-timer 2") }

hat 3 Schwächen:

1. Fehlt der Teil <auslösende Aktion>
2. ist <mach irgendwas> übermässig kompliziert formuliert, nämlich über den Umweg der Perl Ebene, obwohl keine Perlfunktionen genutzt werden.
3. Die Benennung deiner Geräte enthält Punkte. Das ist schlecht weil der Punkt zu den Zeichen gehört die in Perl eine Funktion haben.

D.H. Dir fehlen erkennbar grundlegende Kenntnisse und damit hat Puschel74 dann vielleicht doch recht.



Hier ein paar Beispiele was du machen könntest:

define wozi_s1_2s  at 12:00:00 set WoZi_S1 on-for-timer 2
Schaltet WoZi_S1 um 12 Uhr für 2 Sekunden an

define wozi_s1_2s notify FB1 set WoZi_S1 on-for-timer 2
Schaltet  WoZi_S1  für 2 Sekunden an, wenn eine Taste des Gerätes "FB1" gedrückt wird (also eine Fernbedienung. Die muss natürlich vorher definiert und richtig eingestellt werden)

define wozi_s1_2s notify FB1:on set WoZi_S1 on-for-timer 2
Schaltet  WoZi_S1  für 2 Sekunden an, wenn die "ein" Taste des Gerätes "FB1" gedrückt wird (also eine Fernbedienung. Die muss natürlich vorher definiert und richtig eingestellt werden)

Noch eine Anmerkung zur Perlebene:

Es gibt Dinge die FHEM nicht kann, insbesondere komplexere Bedingungen wie "if" und "else". Hier kann es nötig sein, Perl zu benutzen.

Das macht man indem man Fhem Perl Kommandos "unterjubelt". Damit FHEM weiss, dass etwas für Perl bestimmt ist und an Perl weitergegeben wird, packt man es in geschweifte Klammern

{ perl kommandos hier}

Wenn man in Perl nun zu einem Ergebniss kommt, und in Abhängigkeit davon doch ein FHEM Kommando auslösen muss, dann muss man wiederum Perl sagen: Folgendes ist für FHEM. Das macht man so:

fhem("normale FHEM Kommandos hier")


Sowas hier
Zitat{ fhem("set Licht1 on") }
bedeutet also "in deutsch":

"Sag doch bitte FHEM es soll Perl sagen, Perl soll doch bitte FHEM sagen,  Licht1 soll "on" gechaltet werden."

Naja ... geht, ist aber komplizierter als nötig. Machen trotzdem viele hier, die meisten vermutlich, weil sie ebenfalls nicht verstehen, was die ganzen Klammern bedeuten.



Zusammenfassend: Lies bitte erstmal das Einsteiger pdf, die Commandref (wenigstens 1x durcharbeiten, auch wenn man nicht alles sofort versteht) und auch ein paar Wikiartikel. Sonst werden wir uns hier noch oft begegnen und die meisten haben keine Lust mehr, die Grundlagen im Einzelkampf zu erklären. Mag dir ungerecht erscheinen, aber bedenke, das hier jede Woche 5 Leute aufschlagen und wir nicht mehr nachkommen mit Grundlagenschulung.

(Der Vollständgkeit halber
1. Es mag Situationen geben, wo die { fhem("...") } Schreibweise sinnvoll ist, besonders wenn man später mit tatsächlichen Perlcode ergänzen will.
2. Die Anmerkunge, FHEM könne keine "if", ist eventuell bald nicht mehr zutreffend, da es gerade eine Initiative gibt, FHEM um einen IF-Befehl zu erweiter)





FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

jager

Danke Dir für die ausführliche Erklärung!! Ich schau mir das PDF nochmal genauer an und befolge deine Vorschläge! Merci!!

der-Lolo

das IF Modul funktioniert übrigens vorzüglich - im Bereich Automatisierung kannst du etwas darüber lesen...

jager

#8
ich hab die ganze Sache jetzt nochmal aus der cfg rausgelöscht und wie empfohlen direkt nur über die Kommandozeile programmiert.
Einfacher, nachvollziehbarer und funktioniert ;)

Zwei Problemstellungen habe ich jetzt:

Ich habe den Hutschienenschalter, wo ich den Tasteranschluss von meinem Torantrieb draufgelegt habe. Zum Öffnen/Schließen des Tores muss der Taster ja nur kurz an, dann gleich wieder aus gehen (1s z.B.). Habe ich es richtig verstanden, dass ich da einen Dummy programmieren muss und dann die Funktion "set on-for"? Wenn ja, würde ich in die Richtung mal weiter experimentieren, ich war mir halt nur nicht sicher.

Zweites Thema:
Ich habe eine Schaltsteckdose mit Leistungsmessung (HM-ES-PMSw1-PI).
Diese wollte ich gerade dem FHEM System hinzufügen.
Dazu habe ich eingegeben
set HMLAN1 hmPairForSec 60
und dann anschließend die Taste an der Steckdose für 5s gedrückt, bis das Licht geblinkt hat.

Es ist in meinem FHEM auch ein neues Gerät erschienen, allerdings mit folgender Bezeichnung: CUL_HM_ID_XXXX_1111B
Habe ich was falsch gemacht? Muss ich vielleicht erst ein Firmware update machen? Wenn ja, wie??

Ich wollte den Aufbau, der hier zu finden ist nachbauen: http://www.meintechblog.de/2014/01/homematic-funk-steckdose-mit-leistungsmessung-deine-waschmaschine-ist-fertig/

Ich wünsch euch allen einen schönen Abend!
Christoph

der-Lolo

#9
Zitat
Zusammenfassend: Lies bitte erstmal das Einsteiger pdf, die Commandref (wenigstens 1x durcharbeiten, auch wenn man nicht alles sofort versteht) und auch ein paar Wikiartikel. Sonst werden wir uns hier noch oft begegnen und die meisten haben keine Lust mehr, die Grundlagen im Einzelkampf zu erklären. Mag dir ungerecht erscheinen, aber bedenke, das hier jede Woche 5 Leute aufschlagen und wir nicht mehr nachkommen mit Grundlagenschulung.
CUL_HM_ID_Xxx

Xxx ist also Deine HM id? xxx ist die Seriennummer der Steckdose...

Im Comand ref findest du rename.

Änderungen dann bitte irgendwann deine ID wenn du diese hier schon so öffentlich präsentierst...

on-for-timer ist was du suchst für dein Garagentor.

Zrrronggg!

ZitatIch habe den Hutschienenschalter, wo ich den Tasteranschluss von meinem Torantrieb draufgelegt habe. Zum Öffnen/Schließen des Tores muss der Taster ja nur kurz an, dann gleich wieder aus gehen (1s z.B.). Habe ich es richtig verstanden, dass ich da einen Dummy programmieren muss und dann die Funktion "set on-for"?

Dummy brauchst du keinen.
FS20 und HM Aktoren beherrschen on-for-timer, d.h. die Zeit wird im Aktor gezählt.
Bei andreen Aktoren erledgit FHEM das zählen der Zeit und sendet dann einen OFF befehl.

Bei dir würde es also reichen, den Aktor der das Tor steuert mit
Zitatset Tor on-for-timer 2 
anzusteuern fertig.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

jager

rename kenne ich natürlich, das habe ich schon mit verschiedenen Geräten gemacht.
Es müsste doch der Name des Geräts richtig erscheinen und nicht so kryptisch, wie ich geschrieben habe, oder?
Außerdem ist der Channel PWR nicht zu finden, mit dem ich dann die derzeitige Leistungsaufnahme ablesen kann.

On-for-timer ... genau das meinte ich.
Aber ich möchte im FHEM auf der ersten Seite einen "Schalter" haben, den ich dann auf der Weboberfläche drücken kann, um das Tor zu öffen. Wie kriege ich das hin? Nicht mit einem Dummy?

Puschel74

Hallo,

zu Frage 1:

Ich hab sie zwar nicht ganz verstanden aber ich versuch mal mein Glück.

Der Hutschienenschalter dürfte vielleicht on-for-timer können - dann brauchst du den Dummy nicht.
Da kann ich aber nur raten da du uns verchweigst welches Gerät das ist  ;)

Zu 2:
Sorry - ich bin gemein  8)

Wir haben einen Bereich Homematic http://forum.fhem.de/index.php/board,22.0.html und wir haben im Wiki einen Bereich Homematic http://www.fhemwiki.de/wiki/Kategorie:HomeMatic_Components.
Diese hast du schon durchgeschaut?

Diese
ZitatHM-ES-PMSw1-PI
benutze ich auch und ich verstehe auch hier deine Frage nicht ganz.

ZitatHabe ich was falsch gemacht?
Woher sollen wir das wissen?

ZitatEs ist in meinem FHEM auch ein neues Gerät erschienen, allerdings mit folgender Bezeichnung: CUL_HM_ID_00AC_25196B
Und was soll daran falsch sein?
Ist das nicht deine HM-ES-PMSw1-PI?
Wenn du in der Detailansicht, wie im Wiki beschrieben, die verschiedenen Kanäle findest dann sollte das doch passen.
Ein Kanal ist der Schaltkanal, einer der Messkanal, einer ... - das steht aber im verlinkten Wiki.
Du musst dir nur die HM-ES-PMSw1-PI raussuchen und durchlesen.

Kleiner Tipp: Ich nehm meine HM-Geräte immer nach der Anleitung im Wiki bzw. im Homematic-Bereich (wenn ich im Wiki nichts finde) in Betrieb  ;)

Noch drei Bitten am Rande.

Eine Signatur gibt es gratis - du musst sie nur sinnvoll füllen.
Dann müssen wir hier nicht raten welche Geräte du verwendest  8)

Wenn du eine Frage hast die sich absolut nicht durch das Forum oder das Wiki klären lässt und es noch keinen Beitrag gibt wo deine Frage reinpassen würde - mach bitte eine neue Frage auf.

Wenn eine deiner Fragen geklärt ist dann bearbeite bitte deinen ersten Beitrag und stell dem Titel ein (Gelöst) vorne dran und erstell einen neuen letzten Eintrag und beschreib kurz was du wie gemacht hast.
Dann wissen alle das sie in diesem Beitrag eine Lösung finden können.

Danke dir.

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.

jager

#13
ZitatDer Hutschienenschalter dürfte vielleicht on-for-timer können - dann brauchst du den Dummy nicht.
Da kann ich aber nur raten da du uns verchweigst welches Gerät das ist  ;)
Es ist der hier: HM-LC-Sw4-DR

Danke für die Tipps, Signatur ist erstellt.

Mit meiner Leistungsmessung habe ich noch Probleme.
Ich habe im Wiki schon alles gelesen über den HM-ES-PMSw1-Pl, finde aber keinerlei Channels in der Detailansicht.
Ich möchte nur keinen Screenshot von meiner Detailansicht machen, sonst werd ich wieder geschimpft ;)

Im Logfile steht zu dem Device:
014.02.18 20:50:24 3: CUL_HM pair: CUL_HM_ID_XXXX_XXXXXX , model unknown serialNr XXXXXXXXX


der-Lolo

Das sollte kein schimpfen sein - ich wollte dir nur etwas arkadisch mitteilen das du teilweise Informationen hier ins Netz stellst die es anderen ermöglichen Zugriff auf deine Komponenten zu bekommen.