mit shell script temperatur abfragen

Begonnen von gt666, 05 August 2018, 18:55:52

Vorheriges Thema - Nächstes Thema

gt666

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

CoolTux

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"
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Wernieman

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
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

gt666

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

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Klaus0815

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

Wernieman

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.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

gt666

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

Otto123

Hi,

am Besten Du fängst hier an, beim Thema "wie fange ich an"
http://www.fhemwiki.de/wiki/Hauptseite

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

CoolTux

Ich kann da Otto nur zustimmen. Bitte lesen. Viel lesen!

Bin dann erstmal raus.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

gt666

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

Otto123

#12
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

gt666

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

CoolTux

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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net