[gelöst] Mit curl einen Wert setzten

Begonnen von Rheingold, 01 Februar 2019, 13:49:37

Vorheriges Thema - Nächstes Thema

Rheingold

Hi,

ich nutze auf meinem Handy Tasker um zu erkennen wenn ich im heimischen Wifi bin um dann einen Wert in Fhem zu setzten. Ebenso wenn ich das Haus verlasse sollte ein gewisser Wert gesetzt werden. Bis vor kurzem hat es wunderbar funktioniert. Seit einem Hardware-Update der Fritzbox und Wechsel auf spdns.de als DynDNS-Anbieter habe ich das Problem, dass nur noch jeder gefühlt 4-5. Aufruf durch kommt.

Habt ihr einen Tipp was ich kontrollieren sollte um den Fehler zu finden und zu beheben?

Der curl-Aufruf ist wie folgt:
curl -u api:PASSWORT "https://MEINE_SUBDOMAIN.spdns.de/fhem/api?cmd=set%20GeoStatus%20Unterwegs"
Alternativ funktioniert genau so un/zuverlässig:
curl -u api:PASSWORT https://MEINE_SUBDOMAIN.spdns.de/fhem/api --data-urlencode "cmd=set GeoStatus Unterwegs"

Wie geschrieben funktioniert es leider nicht sonderlich zuverlässig, was den ganzen Nutzen zerstört. Handy als Fehlerquelle kann ausgeschlossen werden, da ich die CURL-Aufrufe auch von einem PC aus tätigen kann und die mit der gleichen Wahrscheinlichkeit ankommen.

Fhem ist wie folgt konfiguriert mit einem API-Nutzer:
define WEBApi FHEMWEB 8088 global
attr WEBApi allowfrom 192.168.178.10|127.0.0.1|192.168.178.20
attr WEBApi csrfToken none
attr WEBApi room 99_System
define allowedWEBApi allowed
attr allowedWEBApi allowedCommands setreading,set,get
attr allowedWEBApi room 99_System
attr allowedWEBApi validFor WEBApi
define allowed_WEBApi allowed
attr allowed_WEBApi basicAuth ASDFGHJKLASDFGHJKL
attr allowed_WEBApi validFor WEBApi


Sollte jemand einen Tipp haben, wie ich das ganze eleganter lösen kann bin ich für Vorschläge offen. Eigentlich wollte ich nämlich vermeiden alle 1-2 Minuten einen Ping für mein handy raus zu schicken ;)

Danke schon mal im Vorfeld :)
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

betateilchen

Zitat von: Rheingold am 01 Februar 2019, 13:49:37
ich nutze auf meinem Handy Tasker um zu erkennen wenn ich im heimischen Wifi bin um dann einen Wert in Fhem zu setzten.
...
Sollte jemand einen Tipp haben, wie ich das ganze eleganter lösen kann bin ich für Vorschläge offen.
...
Eigentlich wollte ich nämlich vermeiden alle 1-2 Minuten einen Ping für mein handy raus zu schicken

Mit presence, zum Beispiel per Bluetooth.

Was hast Du eigentlich gegen einen regelmäßigen ping? Das ist doch eine völlig normale Netzwerkativität.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wernieman

... seit einem Hardware-Update der Fritzbox ...
Fritzbox mag es nicht, wenn von intern eine interne-Webside aufgerufen wird, die praktisch auf dem externen Anschluß liegt.

Das ist jedenfalls meine Erfahrung.
- 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

Rheingold

Zitat von: betateilchen am 01 Februar 2019, 13:56:24
Mit presence, zum Beispiel per Bluetooth.
Mein Wlan ist größer als die Nähe zum Pi auf dem FHEM läuft. Daher ist leider Bluetooth keine gute Option.


Zitat von: betateilchen am 01 Februar 2019, 13:56:24
Was hast Du eigentlich gegen einen regelmäßigen ping? Das ist doch eine völlig normale Netzwerkativität.
Na ja, wenn ich es ansatzweise so schnell reagieren lassen möchte wie aktuell, müsste ich alle 5 Sekunden einen Ping senden. Auch wenn es nicht viel Traffic ist, so ist es in meinen Augen vermeidbar. Darüber hinaus weiß ich nicht, was passiert, wenn das Telefon in den "Deepsleep" geht und zwar noch irgendwie im Wlan ist, aber nicht mehr so richtig erreichbar scheint.
Hält der konstante Ping das Handy dauerhaft "wach" sprich, zerrt unnötig Akku?



Zitat von: Wernieman am 01 Februar 2019, 13:59:45
... seit einem Hardware-Update der Fritzbox ...
Fritzbox mag es nicht, wenn von intern eine interne-Webside aufgerufen wird, die praktisch auf dem externen Anschluß liegt.

Das ist jedenfalls meine Erfahrung.
Wie meinst du das? Ich habe im heimischen Wifi den curl nach außen, also an meine dyn-dns-adresse gesendet und nicht an eine lokale IP.
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

Wernieman

Netz -> FritzBox -> externe IP -> "Wolke Internet"

Der dyndns-Name zeigt doch auf Deine externe IP?
Wenn Du "im Netz" sitzt und in Deinem Browser den dyndns-Name eingibst, landest Du "von innen" auf die externe IP. Da klappt bei der Fritte regelmäßig die Weiterleitung des Portes nach innen nicht.

jedenfalls meine Erfahrung .....
- 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

Wuppi68

Zitat von: Wernieman am 01 Februar 2019, 14:06:12
Netz -> FritzBox -> externe IP -> "Wolke Internet"

Der dyndns-Name zeigt doch auf Deine externe IP?
Wenn Du "im Netz" sitzt und in Deinem Browser den dyndns-Name eingibst, landest Du "von innen" auf die externe IP. Da klappt bei der Fritte regelmäßig die Weiterleitung des Portes nach innen nicht.

jedenfalls meine Erfahrung .....

noch ein Grund einen DNS mit Views einzusetzen ;-)
FHEM unter Proxmox als VM

betateilchen

Zitat von: Wuppi68 am 01 Februar 2019, 14:44:13
noch ein Grund einen DNS mit Views einzusetzen ;-)

noch ein Grund, keine Fritzkotz einzusetzen :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Wuppi68

Zitat von: betateilchen am 01 Februar 2019, 14:55:28
noch ein Grund, keine Fritzkotz einzusetzen :)

na komm, für Ilse nebenan ist diese völlig ausreichend - aber ansonsten Full Ack
FHEM unter Proxmox als VM

Wernieman

Hätte ich Dir früher auch zugestimmt ... aber  für fiele Fälle ist heute die Fritte (als Langzeitinvestition) im Privatbereich alternativlos.

Habe es bei mir auch über einen eigenen DNS-Server gelöst ....
- 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

Rheingold

Angenommen ist habe einen eigenen lokalen DNS per PiHole. Was muss ich machen, dass ich mit dessen Hilfe die Anfragen richtige schicken kann? So wie ich das verstehe geht es nur im lokalen Netz und nicht von außerhalb, oder stehe ich auf der Leitung?


Thema Fritzbox: ich hätte auch gerne einen anderen Router (Asus mit VPN oder so) im Einsatz. Allerdings können davon nur die richtig teuren auch DECT-Telefonie :(
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy

Wernieman

ZitatAllerdings können davon nur die richtig teuren auch DECT-Telefonie :(
Genau das ist auch mein Problem .. wobei der Vorteil von AVM (Fritte) ist, das es seeeeehr lange updates gibt. Ziemlich alternativlos eben .,..

PiHole kann meines Wissens kein eigenen DNS-Server ... oder haben die es schon geändert? War auf deren "Wunschliste" ...
(Mit eigenen meine ich: Eigene Domaine. Natürlich ist PiHole ein DNS-Resolver mit Caching-Funktion)
- 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

kadettilac89

Schau dir in der Fritzbox mal diese Einstellungen an ... ich denke über diese Funktion wird gesprochen.

Heimnetz -> Netzwerk -> Netzwerkeinstellungen ... und hier die Möglichkeit Domainnamen-Ausnahmen einzutragen.

DNS-Rebind-Schutz
FRITZ!Box unterdrückt DNS-Antworten, die auf IP-Adressen im eigenen Heimnetz verweisen (DNS-Rebind-Schutz). Hier können Sie eine Liste von Domainnamen angeben, für die der DNS-Rebind-Schutz nicht gelten soll.

Domainnamen-Ausnahmen:

Rheingold

#12
Problem gelöst:

ich habe bei der Registrierung meines neuen DynDNS und dem Erstellen des neuen SSL-Zertifikats einen wichtigen Schritt vergessen: die API-Aufrufe in der sites-available zu registrieren.
Im Grunde sagt die Anleitung alles: https://haus-automatisierung.com/hardware/fhem/2017/01/04/fhem-tutorial-reihe-part-22-ifttt-integration-webservices-in-fhem-nutzen.html

Danke für eure Hilfe trotzdem. Es klappt wieder alles und ich habe neues gelernt  :D ;D

In Tasker kann man entweder CURL, oder ein simples HTTP Post verwenden. Ich nehme letzteres und rufe folgende Beispiel-URL auf:
https://api:PASSWORT@MEINE_SUBDOMAIN.spdns.de/api?cmd=set%20GeoStatus%20Unterwegs&XHR=1
Fhem auf Raspi 3; Jeelink mit 6x TX29DTH; CUL433 mit 9x RCS 1000 N und Somfy-Steuerung; CUL868; MAX-Cube + Thermostate; Philips Hue & Ikea Tradfri; Google Home Assistant; FTUI für Tablet und SmartPhone via Reverse-Proxy