FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: wollik am 30 Dezember 2020, 12:17:31

Titel: fhem via Script steuern und Devices adden
Beitrag von: wollik am 30 Dezember 2020, 12:17:31
Hallo ins Forum,
ich habe leider noch keinen Weg gefunden, wie ich die Befehle zum Adden von Devices und Attributen via Script in fhem einlesen kann. Derzeit kenne ich nur die Eingabe via Kopfzeile, bitte wie geht das eleganter ?

Viele Dank für Eure Hilfe
wollik
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: Beta-User am 30 Dezember 2020, 12:20:29
Kannst du deine Anfängerfragen bitte ins Anfängerforum verschieben? Das ist eher kein "Heizungssteuerung"-Thema... (Ja, kannst und sollst du selbst!).

Ansonsten wären die Stichworte telnet und "das grüne Plus" (mehrzeiliges Kommandofeld, siehe Einsteiger-Doku/Quick-Start bzw. Event-Monitor im Wiki).
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: Wernieman am 30 Dezember 2020, 12:50:05
Wobei es auch über http(s) geht. Gibt hier irgndwo im Forum ein Script dafür.
Für FHEM ist es egal, ob damit "set" oder andere Befehle abgesetzt werden.

Was mich aber andererseits interesiert, wofür sollte man extern (per Script) ein Device automatisch anlegen?
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: xenos1984 am 30 Dezember 2020, 13:04:44
Zitat von: Wernieman am 30 Dezember 2020, 12:50:05
Wobei es auch über http(s) geht. Gibt hier irgndwo im Forum ein Script dafür.

Ich vermute, du meinst diesen: https://github.com/heinz-otto/fhemcl
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: wollik am 30 Dezember 2020, 13:19:20
Hallo xenos1984,
ich dachte da an etwas sehr einfachem wie das grüne Plus, aber nicht via Cut and Paste sondern so etwas wie:
"use file /home/pi/config_4_0815"

In der file config_4_0815 steht das gleiche wie in der RAW-Ansicht, wenn das Device vollständig eingerichtet wurde.

Ziel ist es, Devices einfach auf andere Instansen zu addieren.

Vielen Dank für Eure Hilfe
wollik
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: Beta-User am 30 Dezember 2020, 13:25:25
Sowas geht vermutlich - mit Einschränkungen - auch, wenn man attrTemplate missbraucht...:
Einfach die "externe Config" in das betreffende Verzeichnis packen, für die einzelnen Abschnitte Überschriften ausdenken und dann über irgendeinen TYPE, der attrTemplate unterstützt (nach erneuter Initialisierung des Moduls) den betreffenden Abschnitt auswählen.

Weiß aber nicht, ob das wirklich schneller ist als c&p ;) .
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: Otto123 am 30 Dezember 2020, 15:07:56
Zitat von: wollik am 30 Dezember 2020, 13:19:20
Hallo xenos1984,
ich dachte da an etwas sehr einfachem wie das grüne Plus, aber nicht via Cut and Paste sondern so etwas wie:
"use file /home/pi/config_4_0815"

In der file config_4_0815 steht das gleiche wie in der RAW-Ansicht, wenn das Device vollständig eingerichtet wurde.

Ziel ist es, Devices einfach auf andere Instansen zu addieren.

Vielen Dank für Eure Hilfe
wollik
Hi,

naja mein kleines Script macht genau das, und genauso einfach. Nur eben im Terminalfenster und nicht im grünen Plus :)
Du kannst eine Raw Definition (dein config_4_0815) per Pipe oder Namen an das Script übergeben und das legt los.
Praktisch habe ich damit schon die komplette fhem.cfg von eine auf die andere Instanz "kopiert". Funktioniert mMn mit allem außer CUL_HM - dort wird das Prinzip "Raw Definition" vom Modul verhindert.

Gruß Otto
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: rudolfkoenig am 30 Dezember 2020, 15:10:24
Zitatso etwas wie:
"use file /home/pi/config_4_0815"
use file heisst bei FHEM include: https://fhem.de/commandref_modular.html#include
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: wollik am 30 Dezember 2020, 18:16:22
Hallo Otto123,
bitte kannst Du Dein Script für mich/uns hier im Forum bereitstellen?

Danke
wollik
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: wollik am 30 Dezember 2020, 18:20:56
Hallo rudolfkoeig,
D A N K E  JA das wäre eine Lösung, ich teste das einmal und gebe dann hier wieder Bescheid.

Viele Grüße
wollik
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: Otto123 am 30 Dezember 2020, 18:23:51
Zitat von: wollik am 30 Dezember 2020, 18:16:22
Hallo Otto123,
bitte kannst Du Dein Script für mich/uns hier im Forum bereitstellen?

Danke
wollik
Der Link steht schon in #3 ;)
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: Otto123 am 13 Januar 2021, 08:11:12
Zitat von: rudolfkoenig am 30 Dezember 2020, 15:10:24
use file heisst bei FHEM include: https://fhem.de/commandref_modular.html#include
Ich habe mir das nochmal genauer angesehen, das ist doch aber eigentlich nicht die Lösung:
ZitatZiel ist es, Devices einfach auf andere Instansen zu addieren.
Die Definition ist bei der Verwendung von include fest in dieser Datei, es ist Teil der cfg. Sie muss durch FHEM bei Änderung der Konfiguration immer erreichbar und schreibbar sein.
Das ist für mich ein völlig andere Level als die Raw Definition (das grüne Plus) - oder habe ich da was übersehen und nicht verstanden?
Kann man eine include Definition in die "normale" Konfig/fhem.cfg verschieben?
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: rudolfkoenig am 13 Januar 2021, 11:11:21
ZitatKann man eine include Definition in die "normale" Konfig/fhem.cfg verschieben?
Soweit ich sehe (d.h. ungetestet) wird das Include-File fuers Zurueckschreiben nur dann gemerkt, wenn die include Anweisung waehrend des Startens (d.h. !$init_done) ausgefuehrt wird.
Wenn man solche Definitionen verschieben will, muss man das CFGFN Internal entfernen oder aendern.
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: Otto123 am 13 Januar 2021, 13:31:55
ich habe es nochmal versucht nachzustellen:
die Datei gehört pi und ist von fhem nicht beschreibbar
include /home/pi/test.cfg
Ergebnis
Internals:
   CFGFN      /home/pi/test.cfg
   DEF        16AB83
   FUUID      5ffee598-f33f-457b-a7a2-4482368d27a907b1
   IODev     
   NAME       SD3
   NOTIFYDEV  global
   NR         799
   NTFY_ORDER 50-SD3
   STATE      ???
   TYPE       CUL_HM
   chanNo     01
   peerList   16949F02,
   READINGS:
     2021-01-13 13:20:46   D-firmware      1.9
     2021-01-13 13:20:46   D-serialNr      IEQ0073533
     2021-01-13 13:20:46   peerList        16949F02,
   helper:
     HM_CMDNR   210
     mId        0002
     peerFriend peerSens,peerVirt
     peerOpt    3:switch
     regLst     0,1,3p
     rxType     1
     cmds:
       TmplKey    16949F02,:no:1610540446.03023
       TmplTs     1610540446.03023
       cmdKey     1:1:0::SD3:0002:01:16949F02,
       cmdLst:
         assignHmKey noArg
         clear      [(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
         deviceRename -newName-
         eventL     -peer- -cond-
         eventS     -peer- -cond-
         fwUpdate   -filename- [-bootTime-]
         getConfig  noArg
         getDevInfo noArg
         getRegRaw  (List0|List1|List2|List3|List4|List5|List6) [-peerChn-]
         getVersion noArg
         inhibit    [(on|{off})]
         off        noArg
         on         noArg
         on-for-timer -ontime-
         on-till    -time-
         pair       noArg
         peerBulk   -peer1,peer2,...- [({set}|unset)]
         peerIODev  [IO] -btn- [({set}|unset)] 'not for future use'
         peerSmart  -peerOpt-
         press      [(long|{short})] [(-peer-|{self01})] [(-repCount-|{0})] [(-repDelay-|{0.25})]
         pressL     [(-peer-|{self01})]
         pressS     [(-peer-|{self01})]
         raw        -data- [...]
         regBulk    -list-.-peerChn- -addr1:data1- -addr2:data2-...
         regSet     [(prep|{exec})] -regName- -value- [-peerChn-]
         reset      noArg
         sign       [(on|{off})]
         statusRequest noArg
         toggle     noArg
         tplDel     -tplDel-
         unpair     noArg
       lst:
         condition  slider,0,1,255
         peer       16949F02
         peerOpt    remove_16949F02
         tplDel     
       rtrvLst:
         cmdList    [({short}|long)]
         deviceInfo [({short}|long)]
         param      -param-
         reg        -addr- -list- [-peerChn-]
         regList    noArg
         regTable   noArg
         regVal     -addr- -list- [-peerChn-]
         saveConfig [-filename-]
         tplInfo    noArg
     expert:
       def        1
       det        0
       raw        0
       tpl        0
     io:
       newChn     +16AB83,00,00,00
       prefIO     
       rxt        0
       vccu       VCCU
       p:
         16AB83
         00
         00
         00
     mRssi:
       mNo       
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   00
       qReqStat   00
     role:
       chn        1
       dev        1
       prs        1
     tmpl:
Attributes:
   IODev      HMLAN1
   IOgrp      VCCU
   autoReadReg 4_reqStatus
   devStateIcon off:black_Steckdose.off on:black_Steckdose.on
   event-on-change-reading .*
   expert     defReg
   firmware   1.9
   model      HM-LC-SW1-PL
   peerIDs    00000000,16949F02,
   room       Arbeitszimmer
   serialNr   IEQ0073533
   subType    switch
   webCmd     statusRequest:toggle:on:off
und im Dialog zwei Fehler weil er zwei Zeilen wegen Beschränkung des CUL_HM Moduls nicht nehmen will.
Bei einem save, bekomme ich einen Fehler: cannot open /home/pi/test.cfg permission denied

Wie würde ich denn das Internal CFGFN löschen und FHEM dazu bewegen diese importierte config in fhem.cfg zu integrieren?

Das wäre ein schicker Weg um dieses leidige Problem des CUL_HM Moduls, dass man Raw Definitionen nur modifiziert übernehmen darf, zu umgehen. Es kommt zwar der Fehler das zwei Werte nicht übernommen werden, er macht es aber trotzdem :)
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: rudolfkoenig am 13 Januar 2021, 13:55:44
ZitatWie würde ich denn das Internal CFGFN löschen und FHEM dazu bewegen diese importierte config in fhem.cfg zu integrieren?
{ delete($defs{SD3}{CFGFN}) }
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: Otto123 am 13 Januar 2021, 21:31:29
Danke, das funktioniert. Danach gibt es kein rotes Fragezeichen, wenn man aber Save config macht, steht diese DEF anschließend in der config :)

Verräts Du mir noch bitte warum 12 meiner Definitionen eine leeres Internal CFGFN haben und alle haben keins? Ich sehe da kein Schema  :-[
Titel: Antw:fhem via Script steuern und Devices adden
Beitrag von: rudolfkoenig am 13 Januar 2021, 22:34:06
Weiss auf Anhieb nicht, muesste es debuggen.
Das kannst Du aber viel besser, du bist im Besitz der Konfiguration, was dieses Verhalten ausloest.