FHEM hinter Proxy

Begonnen von Engel, 09 November 2016, 22:06:28

Vorheriges Thema - Nächstes Thema

CoolTux

Zitat von: Engel am 06 Januar 2017, 16:05:40
So, nun habe ich mich ausführlich mit HttpUtils beschäftigt.
@Rudolf: Vielen Dank für den Support

Inzwischen habe ich eine Version erstellt, die mit und ohne Proxy eingesetzt werden kann. Unterstützt werden http- und https-Anfragen.
Der Proxy wird nur angesprochen, wenn er in der fhem.cfg eingerichtet ist. Zusätzlich wird CNTLM benötigt.

Probleme habe ich noch mit zwei neu eingeführten globalen Variablen (proxyHost & proxyPort): Wo müssen diese eingetragen werden, damit die Warnungen verschwinden?

Ich würde gern meine Weiterentwicklung zurück fließen lassen. Das es sich um eine wichtige Komponente handelt, natürlich nicht ohne Review. Testen konnte ich die Klasse nur eingeschränkt mit meinen Setups mit und ohne Proxy.
Muss ich meine Änderungen nun in ein git einstellen?

Ich würde mal behaupten daß die beiden Attribute nur Sinn im Device global machen.
Es würde mich sehr freuen wenn wir nicht über fhem.cfg editieren reden. Sämtliche Einstellungen sollten vom User über das FHEMWEB getätigt werden.
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

TL

Zitat von: rudolfkoenig am 03 September 2017, 15:30:32
Falls das mehrere Anwender interessiert, werde ich das Problem selbst angehen.

Moin!

Ich hätte sehr großes Interesse daran. Es wäre auch gut, wenn es eine Option wie "no_proxy" gäbe für das lokale Netz, so ähnlich wie z.B. im Browser (Firefox) auch.

Viele Grüße,
  TL
Einen Pi, sie zu knechten, sie alle zu finden,
ins FHEM zu treiben und ewig zu binden.

rudolfkoenig

#32
Ich habe das proxy global Attribut eingefuehrt, muss als host:port spezifiziert werden.
Es gibt auch ein proxyExclude, was als Regexp geprueft wird.

Ich habe es mit squid3 getestet, ein FHEM update funktioniert sowohl ueber HTTP als auch ueber HTTPS.
Auch http://fhem.de/ oder https://fhem.de/ (inklusive redirects) scheint zu funktionieren, sowohl Blocking als auch NonBlocking.

Achtung: SSL Verbindungen koennen selbst beim Aufruf der Nonblocking-Routine blockieren, da ich zu faul war die CONNECT Phase mit dem Proxy nonblocking zu realisieren. Evtl. spaeter, wenn Bedarf da ist.

amenomade

Es fehlt nur noch die Möglichkeit, proxyUser und proxyPasswort zu setzen ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Per

Zitat von: rudolfkoenig am 03 September 2017, 15:30:32Falls das mehrere Anwender interessiert, werde ich das Problem selbst angehen.
Zwar nicht das selbe Problem, aber vllt. fällt eine Lösung für das DSLite-Thema dabei mit ab...

rudolfkoenig

ZitatZwar nicht das selbe Problem, aber vllt. fällt eine Lösung für das DSLite-Thema dabei mit ab...
Bin heute vielleicht schwer vom Begriff, aber:
- was ist das "DSLite-Thema"?
- und was hat das mit einem Proxy zu tun?

CoolTux

Möchte mich den Fragen gerne anschließen. Danke
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

rudolfkoenig

 
ZitatEs fehlt nur noch die Möglichkeit, proxyUser und proxyPasswort zu setzen
Habe proxyAuth hinzugefuegt, und kurz mit http/https getestet.
Auf squid3 war es mit
  auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/passwords
aktiviert. proxyAuth muss als Base64 von Benutzername:Passwort angegegen werden:% echo -n Benutzername:Passwort | base64
QmVudXR6ZXJuYW1lOlBhc3N3b3J0
fhem> attr global proxyAuth QmVudXR6ZXJuYW1lOlBhc3N3b3J0

amenomade

Geht!
Funktioniert hinter meinem Firmenproxy.

Danke dir :)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

koef2

#39
HAllo zusammen,

funktioniert das auch in der Version 5.8?

Ich habe mal gerade mittells svn aktualisiert auf Revision 15152.

Da steht unter den attr zu GLOBAL noch kein proxy.

Viele Grüße
Kai
Koef2 

rudolfkoenig

Version 5.8 ist "nur" ein Snapshot, nach einem update ist man auf den aktuellen Stand, egal von welchem man gestartet ist.
proxyAuth ist seit SVN Version 15033 aktiv.

koef2

Danke,

dann hat mein Update über SVN nicht funktioniert. In der CommandRef auf meinem Raspi taucht es nicht auf. Aber in der CommandRef auf fhem.de wohl. Dann gehe ich mal suchen, was ich falsch gemacht habe.

Viele Grüße
Kai
Koef2

koef2

#42
Hallo zusammen,

muss leider nochmal nachfragen, da mein update wohl über svn nicht richtig funktioniert.


svn co https://svn.fhem.de/fhem/trunk/fhem /opt/fhem
svn update


Da hat er rumgemeckert:
Zitat
Konflikt in »trallalla« entdeckt.
Auswahl: (p) zurückstellen, (df) voller Diff, (e) editieren,
         (mc) eigene konfliktbehaftete Datei, (tc) fremde konfliktbehaftete Datei
         (s) alle Optionen anzeigen: p

Habe das mit MC bestätigt.
Allerdings hat das nichts geändert, in commandref steht bei mir nichts zu proxy oder proxyAuth und "attr global proxy 192.168.1.3:3128" kann ich nicht setzen. Er sagt "define proxy first".

Dann habe ich im neuen Verzeichnis Repository neu geholt und die Dateien in des /opt/fhem kopiert und Dateiowner auf fhem:dialout gesetzt.

Leider immer noch kein Erfolg, Commandref zeigt unter global kein attr proxy.

Wenn es hier flasch gepostet ist, bitte kurze Info, wo ich es besser posten soll.

Viele Grüße
Kai
Koef2

amenomade

Warum machst Du dein update über svn, und nicht über FHEM ?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

koef2

Hallo Amenomade,

weil ich einen Proxy dazwischen habe und das update aus fhem dann nicht funktioniert. Und eine Lösung dann svn ist, weil bei svn kann ich den Proxy angeben.

Viele Grüße und schönen Sonntag
Kai
Koef2