FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: uron am 11 November 2013, 15:37:47

Titel: already defined, delete it first - wieder einmal
Beitrag von: uron am 11 November 2013, 15:37:47
Hallo zusammen,
als blutiger Anfänger in Sachen FHEM traue ich mich mal zu den Experten hier. Meine Programmierkenntnisse sind ein wenig angegraut (1974 mit FORTRAN) aber ich traue mich hier in das Forum und auch an das Thema FHEM.
Meine ersten FHEM-Schritte sind der erfolgreiche Hardwareaufbau eines FS20-Systems und Steuerung per Handsender per Einzel- und Gruppeadressen - funktioniert tadellos.
Die Steuerung per Smartphone und Webfrontend über Fritz!Box 7390 und CUL am USB läuft auch.

Nun möchte ich mich Schritt um Schritt der Programmierung von "Spezialaufgaben" wie sonnenstands- und zeitabhängiger Lichtsteuerung meiner Gartenleuchten widmen.
Ersteres klappt, bei der zeitabhängigen Lichtabschaltung bekomme ich aber ein Problem, dass ich nicht lösen kann. Habe viele Fundstellen gelesen, sicher aber nicht alles verstanden. Deshalb mein Weg hier in das Forum.

Die Fehlermeldung beim Speichern der fhem.cfg lautet: "LichtklTeichAus already defined, delete it first"
Lösche ich am Webfrontend per Eingabezeile mit "delete LichtklTeichAus" und speichere dann die fhem.cfg gibt es keine Fehlermeldung.
Das erneute Speichern wirft wieder den gleichen Fehler aus.
"Programmiere" ich nun den o.g. Löschbefehl vor den define-Befehlt in die fhem.cfg erhalte ich die Fehlermeldung
Please define LichtklTeichAus first LichtklTeichAus already defined, delete it first
Ich drehe mich also im Kreis.
Im Forum hatte ich den selbstheilenden Tipp gelesen, dass jemand 2x shutdown reboot durchgeführt hat und danach alles o.k. war. Leider klappt das bei mir nicht.

Könnt ihr mir bitte auf die Sprünge helfen!

Auszug aus der fhem.cfg, wenn ihr zur Beurteilung noch mehr braucht, meldet euch bitte! (die Kommentarzeilen brauche ich noch, da ich bei dem Thema noch nicht sicher bin)
#Licht kl. Teich
define ug_Licht_kl._Teich FS20 d827 00
attr ug_Licht_kl._Teich IODev CUL_0
attr ug_Licht_kl._Teich alias Licht kl. Teich
attr ug_Licht_kl._Teich fm_type lamp
attr ug_Licht_kl._Teich model fs20ws1
attr ug_Licht_kl._Teich room FS20,Favourites
#Test sunrise/sunset: Lampe soll testweise bei Sonnenuntergang angehen
#Sonnenaufgang zwischen 5:18 - 8:30 Uhr
#Sonnenuntergang zwischen 16:37 - 21:44 Uhr
define LichtklTeichAn at *{sunset(0,"16:30","22:00")} set ug_Licht_kl._Teich on
#späteste Abschaltung Licht kl. Teich um 23:59 Uhr
define LichtklTeichAus at 23:59 set ug_Licht_kl._Teich off
Titel: Antw:already defined, delete it first - wieder einmal
Beitrag von: franky08 am 11 November 2013, 16:39:09
Hallo,
hast du mal direkt die fhem.cfg im Editor geöffnet und dann die Zeile gelöscht?

VG
Frank
Titel: Antw:already defined, delete it first - wieder einmal
Beitrag von: uron am 11 November 2013, 16:45:41
Hab ich, natürlich kommt dann keine Fehlermeldung  ???
Bedeutet das, dass ich die Zeitvorgabe zum Ausschalten um 23:59 Uhr nicht in der fhem.cfg über den define-Befehhl dauerhauft speichern muss??

Wo wird der einmalige define-Befehl abgespeichert?
Titel: Antw:already defined, delete it first - wieder einmal
Beitrag von: franky08 am 11 November 2013, 16:55:21
Doch, dass ist schon richtig. Vor dem 23.59 fehlt noch * wenn täglich. Eigendlich ist das OK so, wenn in der fhem.cfg z.B  steht define <name> at <irgendwas> dann taucht im Webfrontend unter at der Name auf, wenn du dann den definierten Namen in der fhem.cfg löscht´s steht der Eintrag natürlich noch im Webfrontend unter at. Abgespeichert wird das ganze trotzdem richtig.
Kannst du nachvollziehen wenn du dann ein 2. mal das ganze abspeichert kommt auch kein Fehler mehr.
VG Frank
Titel: Antw:already defined, delete it first - wieder einmal
Beitrag von: Puschel74 am 11 November 2013, 17:03:24
Hallo,

hat jetzt mit deinem Problem nichts zu tun aber

define ug_Licht_kl._Teich FS20 d827 00

Punkte (.) in Devicenamen halte ich nicht für gut da der Punkt (.) in Perl das regexp für ein beliebiges Zeichen ist.
Das kann früher oder später mal ganz schön Ärger geben.

define LichtklTeichAn at *{sunset(0,"16:30","22:00")} set ug_Licht_kl._Teich on
und
define LichtklTeichAus at 23:59 set ug_Licht_kl._Teich off
sieht für mich in Ordnung aus.
Wenn fhem das anmeckert hast du vllt. irgendwo nochmal diese Namen vergeben.

Am besten die fhem.cfg öffnen - die Zeilen löschen und <save fhem.cfg> anklicken.
Danach die Zeile direkt in die FHEM-Befehlszeile eingeben.

Wenn immer noch Fehler kommen dann mal bitte die Konfig posten (in Code-Tags bitte da das etwas übersichtlichter ist um man den Code gleich sieht).

Grüße
Titel: Antw:already defined, delete it first - wieder einmal
Beitrag von: uron am 11 November 2013, 17:27:19
Hallo, Danke für die Unterstützung aus beiden Richtungen.
- ich habe jetzt die Zeile in die fhem.cfg wieder aufgenommen, das * für die tägliche Routine eingefügt. Ab den 2. Speichern gibt es keine Fehlermeldung mehr  :-\
- den Punkt im Devicenamen habe ich entfernt. Ich hatte zuvor heute bereits beim Stöbern im Forum einen entsprechenden Hinweis gelesen aber noch nicht umgesetzt.

Prima - wieder ein Stück schlauer.
;D
Titel: Antw:already defined, delete it first - wieder einmal
Beitrag von: Icebear am 11 November 2013, 23:32:17
Hi,

mal auf blaue ..

1. mal cfg laden das define mit at wird ausgeführt (und verbleibt danach im statefile weil fhem sich ja die laufenden ats merkt).

2. mal cfg laden das define wird neu geladen und huch im statefile gibts das at ja schon ... (fhem unterscheidet ja nicht ob der befehl aus der cfg kommt oder manuell eingetippt wurde) und scho haben wir ein define was es schon gibt.


das dürfte der denkfehler sein ....
also einmal (auf der konsole reicht) das define als wiederkehrend (mit *)

und wech