Hallo Leute,
habe mir auf einem odroid fhem installiert um mich für eine spätere (winter) sache vorzubereiten und dann noch später vieleicht eine komplette reko wohnung zu "automatisieren".
Im moment habe ich einen rutenbeck TC IP 1 in fehm eingebunden. Ein und ausschalten funktioniert soweit. Der rutenbeck hat einen temperatursensor. Diesen kann ich mit einen script auslesen.
script #!/bin/bash
curl -s 'http://nutzer:passwort@XXX.XXX.XXX.XXX/status.xml' | tac | sed -n '/<pot0>/{s/<.[^>]*>//g;p;q}'
Jedoch ist mir noch unklar, wie ich das script in fhem benutzen kann.
Im Winter möchte ich mit fhem und dem rutenbeck einen frostschutz in meinem ausbauhaus realisieren.
Sagen wir mal bei null grad celsius soll der rutenbeck von fhem eingeschalten werden. Sozusagen jede minute oder auch aller 5 minuten soll das script ausgeführt werden um die temperatur zu "wissen" und dann soll der rutenbeck bei null grad eingeschalten werden und bei 2 grad wieder aus....
Das wichtigste im moment ist mir, zu wissen, wie ich diesen sensor über das script in fhem bekannt machen kann.
Könnte mir da einer weiterhelfen?
Vielen Dank schon mal
gt666
Zitat von: gt666 am 05 August 2018, 18:55:52
Hallo Leute,
habe mir auf einem odroid fhem installiert um mich für eine spätere (winter) sache vorzubereiten und dann noch später vieleicht eine komplette reko wohnung zu "automatisieren".
Im moment habe ich einen rutenbeck TC IP 1 in fehm eingebunden. Ein und ausschalten funktioniert soweit. Der rutenbeck hat einen temperatursensor. Diesen kann ich mit einen script auslesen.
script #!/bin/bash
curl -s 'http://nutzer:passwort@XXX.XXX.XXX.XXX/status.xml' | tac | sed -n '/<pot0>/{s/<.[^>]*>//g;p;q}'
Jedoch ist mir noch unklar, wie ich das script in fhem benutzen kann.
Im Winter möchte ich mit fhem und dem rutenbeck einen frostschutz in meinem ausbauhaus realisieren.
Sagen wir mal bei null grad celsius soll der rutenbeck von fhem eingeschalten werden. Sozusagen jede minute oder auch aller 5 minuten soll das script ausgeführt werden um die temperatur zu "wissen" und dann soll der rutenbeck bei null grad eingeschalten werden und bei 2 grad wieder aus....
Das wichtigste im moment ist mir, zu wissen, wie ich diesen sensor über das script in fhem bekannt machen kann.
Könnte mir da einer weiterhelfen?
Vielen Dank schon mal
gt666
Du kannst das Ergebnis in eine Variable einlesen und diese dann weitergeben an
/opt/fhem/fhem.pl 7072 "set mytempDummy $var"
oder einfacher/schneller/simpler mit nc:
echo -en "<Toller-Fhem-Befehl>\nquit\n" | nc -w 5 <fhem-Server> 7072
Natürlich <Toller-Fhem-Befehl> und <fhem-Server> anpassen!
Allerdings kann FHEM auch direkt Websides abfragen und per Regex auslesen (?hhtpmod?), habe mich nur noch nie damit befasst
Hallo nochmal und vielen dank für die sehr schnellen antworten.
Mit linux kenne ich mich etwas aus, jedoch bin ich mit fhem absoluter neuling.
Was macht die zeile mit netcat genau, wenn ich mein script als
<Toller-Fhem-Befehl>
einfüge und die ip von meinem fhem als
<fhem-Server>
? Sicherlich falsch interpretiert, denn es passiert nix, bzw. finde ich die echo ausgabe nirgends... :-(
In fhem via http schalte ich ja schon meinen rutenbeck :
define RutenBeck_Luefter dummy
attr RutenBeck_Luefter eventMap on:an off:aus
attr RutenBeck_Luefter room Flur
define Luefter_On notify RutenBeck_Luefter:an { GetHttpFile ("xxx.xxx.xxx.xxx:80", "/leds.cgi?led=1&value=Einschalten") }
attr Luefter_On room Flur
define Luefter_Off notify RutenBeck_Luefter:aus { GetHttpFile ("xxx.xxx.xxx.xxx:80", "/leds.cgi?led=1&value=Ausschalten") }
attr Luefter_Off room Flur
Und wie muß ich
Zitat von: CoolTux am 05 August 2018, 19:10:46
Du kannst das Ergebnis in eine Variable einlesen und diese dann weitergeben an
/opt/fhem/fhem.pl 7072 "set mytempDummy $var"
verstehen?
Sorry für mein unwissen.
mfg
gt666
Letztere Frage ganz gut in der Doku beschrieben:
https://fhem.de/commandref_DE.html#command
Und es war von CoolTux die Antwort auf diese "Frage":
ZitatDas wichtigste im moment ist mir, zu wissen, wie ich diesen sensor über das script in fhem bekannt machen kann.
Gruß Otto
Zitat von: gt666 am 05 August 2018, 20:36:51
Hallo nochmal und vielen dank für die sehr schnellen antworten.
Mit linux kenne ich mich etwas aus, jedoch bin ich mit fhem absoluter neuling.
Was macht die zeile mit netcat genau, wenn ich mein script als <Toller-Fhem-Befehl>
einfüge und die ip von meinem fhem als <fhem-Server>
? Sicherlich falsch interpretiert, denn es passiert nix, bzw. finde ich die echo ausgabe nirgends... :-(
In fhem via http schalte ich ja schon meinen rutenbeck : define RutenBeck_Luefter dummy
attr RutenBeck_Luefter eventMap on:an off:aus
attr RutenBeck_Luefter room Flur
define Luefter_On notify RutenBeck_Luefter:an { GetHttpFile ("xxx.xxx.xxx.xxx:80", "/leds.cgi?led=1&value=Einschalten") }
attr Luefter_On room Flur
define Luefter_Off notify RutenBeck_Luefter:aus { GetHttpFile ("xxx.xxx.xxx.xxx:80", "/leds.cgi?led=1&value=Ausschalten") }
attr Luefter_Off room Flur
Und wie muß ich verstehen?
Sorry für mein unwissen.
mfg
gt666
Auf die Art speist Du Daten extern in FHEM ein. Du legst einen Dummy an und befüllst ihn wie ich beschrieben habe mit Daten.
ZitatIm Winter möchte ich mit fhem und dem rutenbeck einen frostschutz in meinem ausbauhaus realisieren.
Hier ist zwar das FHEM-Forum, aber warum willst das unbedingt in FHEM machen?
Bastel DIr doch ein kleines Bash-Script, den Anfang hast ja schon, dann wenn kleiner X Grad an, warte Y sec (Hysterese), wenn größer z Grad aus
Das Bash-Script kannst dann alle 5 min starten entweder per Cron-Script oder auch durch FHEM
Zitat von: gt666 am 05 August 2018, 20:36:51
Was macht die zeile mit netcat genau, wenn ich mein script als <Toller-Fhem-Befehl>
einfüge und die ip von meinem fhem als <fhem-Server>
? Sicherlich falsch interpretiert, denn es passiert nix, bzw. finde ich die echo ausgabe nirgends... :-(
1. Du baust Dir ein Dummy (siehe Dummy in der Doku)
2. Diesen Dummy setzt Du mit Hilfe des Scriptes auf den Zielwert
- z.B. mit "set mein_dummy 30"
- also hier <Toller-Fhem-Befehl> = "set mein_dummy 30"
3. In Fhem machst Du dann die Ssteuerung wie gewünscht.
Der Einzeiler macht dann folgerndes:
echo -en "set mein_dummy 30\nquit\n" | nc -w 5 <fhem-Server> 7072
der FHEM Befehl (hier set ....) wird per telnetschnitstelle (mit nc) an FHEM gesendet.
(Bzw: Wenn Du bei der Telnetschnitstelle ein Passwort vergeben hast, kann dieses auch übertragen werden. Bei Portänderungen muß der Port angepasst werden)
Also Logischerweise siehst Du keine Ausgabe, da keine erzeugt wird.
Deine Werte solltest Du dann in FHEM selber sehen können.
Hallo alle zusammen
und vielen lieben dank dür die schnellen antworten.
Leider komme ich erst jetzt zum antworten.
Mit dem script und mit cron wäre eine sache für den winter. Jedoch plane ich eine entkernte wohnung komplett neu auszubauen und da würde sich eine automatisierung anbieten. Vorher möchte ich mich etwas mit fehm auseinandersetzen. Jdoch scheitere ich kläglich daran.
Das erste was ich in meiner fhem.cfg gelöscht hatte war der telnet eintrag. Leider verstehe ich jetzt nicht richtig, wozu ich ein shell script über einen zweiten pc oder localhost via telnet an fhem weitergeben soll. Oder verstehe ich hier wieder etwas falsch?
In meiner fhem.cfg habe ich einen dummy angelegt, für den temperaturfühler. Es sollte doch eigentlich machbar sein, diesem dummy das script zu verpassen. Das script habe ich unter /fhem/FHEM/mein-script.sh gespeichert.
Danach sollte die temperatur in fhem unter dem dummy ersichtlich sein.
zb.:
define Flur_Temp dummy
attr Flur_Temp room Flur
attr Flur_Temp read/get/state "mein-script.sh"
Wobei read/get/state beispielhaft dienen soll.
Mit einem weiteren befehl (at) könnte ich dann zeitlich das script abrufen lassen in fhem.
Könnte mir da einer vieleicht etwas unter die arme greifen? Hoffentlich nicht zu viel verlangt.
Oder ich verstehe hier etwas total falsch und es geht nur via telnet, dann ist fhem bei mir leider raus.
Vielen Dank fürs lesen und eventuellen antworten
schöne grüße gt666
Hi,
am Besten Du fängst hier an, beim Thema "wie fange ich an"
http://www.fhemwiki.de/wiki/Hauptseite
Gruß Otto
Ich kann da Otto nur zustimmen. Bitte lesen. Viel lesen!
Bin dann erstmal raus.
Hallo Otto,
lieben dank für deine antwort.
Diese seite(n) und die seite die du vorher verlinkt hast, habe ich mehrfach durchgelesen.
Leider steht da nicht sehr viel über sensoren, die nicht automatisch gefunden werden in fhem. Des weiteren sind die beispiele ebenfalls sehr rar bzw. teilweise für leihen unverständlich.
Wenn man als neuling einen kleinen baukasten hat, ein paar sensoren (homematic, knx, 1-wire) die fhem schon erkannt hat, mag das alles sicherlich einfacher daher gehen.
Die anfänger/beginner seiten habe ich schon durch und habe die verschiedenen dummys angelegt. Ich konnte sie auch an und aus schalten.
Meine beiden rutenbeck habe ich in fhem eingetragen und diese kann ich auch via fhem (webinterface) schalten.
Des weiteren habe ich mir ein paar sensoren, die von fhem erkannt werden sollen bestellt und werde mir die tage daraus etwas basteln um fhem besser zu verstehen. Sozusagen lernen durch probieren.
Jedoch erschließt mir die dokumentationen nicht das einbinden eines (für fhem nicht vorhandenen) sensors. deswegen wollte ich hier um hilfe erfragen.
Besten Dank
gt666
Aber wo in der doku stand denn so etwas? :o
attr Flur_Temp read/get/state "mein-script.sh"
Und einige Wege wurden Dir hier aufgezeigt, etwas von völlig außerhalb vom System nach FHEM in einen Dummy zu schreiben.
Diese Sätze kann ich nicht nachvollziehen.
... Das erste was ich in meiner fhem.cfg gelöscht hatte war der telnet eintrag.
... der ich verstehe hier etwas total falsch und es geht nur via telnet, dann ist fhem bei mir leider raus.
Du kannst auch in der 99_myUtils.pm eigene Perl Routinen schreiben und dort den Dummy direkt setzen -> fhem("set dummy bla")
Wenn Deine Rutenbeck ein Webinterface haben, kannst Du vielleicht auch mit HTTPMOD arbeiten.
Aber aus meiner Sicht ist Deine bisherige Vorgehensweise nicht supportbar und von deinem Rutenbeck verstehe ich nichts, deshalb bin ich raus.
Gruß Otto
Hallo Otto,
Diese Sätze kann ich nicht nachvollziehen.
... Das erste was ich in meiner fhem.cfg gelöscht hatte war der telnet eintrag.
... der ich verstehe hier etwas total falsch und es geht nur via telnet, dann ist fhem bei mir leider raus.
Aus sicherheitsgründen.
Danke
mfg
gt666
Zitat von: gt666 am 08 August 2018, 17:44:29
Hallo Otto,
Diese Sätze kann ich nicht nachvollziehen.
... Das erste was ich in meiner fhem.cfg gelöscht hatte war der telnet eintrag.
... der ich verstehe hier etwas total falsch und es geht nur via telnet, dann ist fhem bei mir leider raus.
Aus sicherheitsgründen.
Danke
mfg
gt666
Dann setzte ein Passwort und aktiviere SSL
Genau DAS steht zu Telnet auch in der Doku.
habe bei mir aus Sicherheitsgründen telnet nur für "lokalhost" eingesetzt. Im netz eben per SSL. Du kannst mehrere telnet-Device definieren.
Aber beim Debuggen ist manchmal telnet hilfreich, weil es manchmal noch funzt, wenn http "weg" ist.
(btw. Du hast hofentlich bei allen Deinen geräten (Switch(Drucker etc.) telnet abgeschaltet? So aus Prinzip?)
Wenn Du hier im Forum rutenbeck in die Suche eingibst, gibt es sogar Treffer.
https://forum.fhem.de/index.php?topic=82164.0
Nicht viel, hast Du vielleicht auch schon gefunden.
Gruß Otto