[Frage] Freetz und Connair

Olliberlin

Neuer User
Mitglied seit
1 Apr 2010
Beiträge
18
Punkte für Reaktionen
0
Punkte
1
Hallöchen ihr Freetz-Gurus,

ich habe mich früher mal mit dem Zusammenbauen eigener Freetz-Images beschäftigt (dank der hier geposteten Build-Umgebung und der Anleitung ging es ganz gut) nun habe ich aber ein neues Szenario, wo noch keine Plugins/Addons oder CGI-Scripte existieren und ich wollte mal nachfragen, wie schwer oder einfach es wäre, wenn ich mich in das Thema einlese, es alleine hinzubekommen.
Es geht um die Connair(s) von simple-solutions. Damit kann man allerlei Funksteckdosen nun auch per App im Heimnetzwerk ansteuern. Nun ist es natürlich besser, man kann dies auch von außerhalb und ich denke eine Implementierung ins Webinterface von Freetz, was ich ja von außen auch erreichen kann, wäre da natürlich die beste Lösung.
Dort im Forum (ich weiß nicht, ob ich den Link hier posten darf (Google Suche "simple solutions steuern" - erster TREFFER), findet man relativ oben den Thread: Steuern per Rechner ... . Dort gibt es schon erfolgreiche Versuche, das Gateway ohne die App anzusteuern. Die eine per cgi und die andere per php. Ich denke am geeignetens für Freetz wäre doch diese CGI-Sache? Kann man dies einfach ins Webinterface einbinden, dass man mehr oder weniger einfach seine Steckdosen in eine config schreiben kann und diese dann ähnlich dem WOL-Interface an oder ausmachen kann? Oder sind diese Scripte dort so nicht auf Freetz lauffähig? Was müsste ich tun, ob das zu realisieren, wo muss ich mich einlesen?

Vielen Dank im Voraus für eure Hinweise
Olli
 
Schau mal hier. Das ist ein anderes Paket für eine steuerbare Steckdosenleiste. Wenn die Steuercodes bekannt sind ist das theoretisch kein Problem. nc ist in der busybox vorhanden und kann genutzt werden.

Gruß
Oliver
 
@Olliberlin: Ich würde mal sagen: Es ist möglich. Wie olistudent schon sagte, schau es dir ab, wie es unter dem besagten Paket ausgeführt ist. Aber bitte fixiere dich dort nicht auf dem WebIF. Bei sispm handelte es sich um ein fertiges Package, welches ich für FREETZ nur angepasst hatte und portiert hatte. Dieses Package beinhaltet einen rudimentären WebServer drin im binary. Dadurch sieht es dort mit diesem Teil etwas spezifisch aus. Wenn man es richtig für FREETZ macht, sollte man auf den httpd von busybox setzen und alles per nc und shell-Skripte machen. Dies wäre eine deutlich besser wartbare Variante. Wenn du dich natürlich besser mit C auskennst, kannst du es versuchen mit C anstatt shell zu machen. Die Beispiele auf der von dir zitierten Seite gingen aber eher in die Richtung shell, nc und co. Wenn du es genau wissen willst, wie man bei FREETZ die Sachen über WebIF steuern kann, nimm dir irgendein Paket als Beispiel. Z.B. WOL-CGI wäre an der Stelle sehr geeignet. Es lauscht auf einem eigenen Port und läuft per httpd der busybox.

Weitere technische Fragen:
1. Wie sind denn diese Steckdosen mit der Box verbunden? Per Netzwerk? Per WLAN?
2. Was kosten sie?

Die Gründe der Benutzung von sispm-Steckdosen waren folgende:
a) Relativ geringer Preis von 30...40 Euro für eine 4-fache Steckdosenleiste
b) USB-Anschluss mit einer FREETZ-kompatiblen Anbindung (was nicht immer selbstverständlich ist)

Einige Nachteile bzw. Bugs von SISPM:
a) Noch kein WebIF über httpd
b) Öfteres Aufhängen bei schlechter USB-Verbindung (lange Leistungen, Störungen, etc.)
c) Noch keine Integration mit WOL oder ähnlichem
d) Nich so ganz glückliche Behandlung von mehreren Steckdosenleisten. (Es funktioniert zwar, ist aber eine Notlösung von mir)

Und letztendlich habe ich derzeit keine Zeit dazu, SISPM zu betreuen. Von daher würde ich nur begrüßen, wenn du dich da "reindenkst". Wir werden dich auch gerne unterstützen, wenn du hier konkrete Beispiele oder Fragen postest.

MfG
 
Danke Hermann für deine Nachfragen, ich hatte schon diesen Verdacht, als ich mir den Link von Olistudent anschaute, da aber in dem Code nicht weiter drinne stand,für was dieses script ist, hatte ich mich erstnoch später damit beschäftigen wollen.
Das ist hier ganz was anderes. Da wird nichts direkt per USB angeschlossen, es findet keine Kommunikation direkt mit den Steckdosen statt.
Dieses connair ist ein Gateway, das einfach per Netzwerkkabel ins Netzwerk integriert wird. Es bekommt dann eine IP und ist wie jedes andere Gerät dann per z.B. 192.168.100.100 erreichbar. Offiziell hat es aber nur ein Webinterface mit keinerlei nennenswerten Nutzen (Led an/aus). Dafür gibt es dann eine App (Steckerchecker), mit der man dann dieses Gateway ansprechen kann (nur im Lan). Dieses Gateway ist also einfach gesagt ein Funksender und sendet dann die Signale in die Gegend und dann braucht man nur einfache ganz normale Funkempfänger (Funksteckdosen, Funklampenfassungen, Rolladenmotoren (das was Intertechno und Brennenstuhl und so im Moment halt für 433er Funk anbieten (es soll mehr unterstützt werden in Zukunft)
Nun gabs aber findige Leute (siehe Forum) die herausgefunden haben, wie diese App mit dem Gateway kommuniziert, (halt über diesen speziellen Port mit den entsprechenden Befehlen). Und das ist meiner Meinung ja nichts anderes wie WOL.
WOL sendet ja auch nur blind an einen PC das WOL-Paket und eine Reaktion erwartet es ja nicht. Und genauso ist es hier, man braucht nur einige einfache Befehle an den UDP-Port des Gateways schicken und er macht dann daraus, das Funksignal für die die Steckdosen uvm. Daher würde ich fast behaupten, dass oben genannte Idee schon viel zu kompliziert ist, aber ich werde mir jetzt mal das WOL-Paket vornehmen, vielleicht bekomme ich es ja so hin. Entscheidend finde ich den Beitrag von Morsix , um Posted: Sat 10. Nov 2012, 15:14 (dort gibts leider keine Nummern für die Beiträge, Mitte erste Seite). Er posted da ein script namens 433 und eine steckdose.cgi . Kann ich das bei Freetz direkt so verwenden mit dem Webinterface (und wo müsste das Script 433 hin?) oder brauche ich dazu http://freetz.org/wiki/help/howtos/common/busybox_httpd ? Oder läuft das Webinterface sowieso schon auf diesen httpd? Wo liegen die "html"-Dateien, vom Webinterface?

Vielen Dank
 
Zuletzt bearbeitet:
Poste bitte direkt Links zu diesen beiträgen im andern Forum, sonst reden wir aneinader vorbei. Hier in diesem Forum ist es erlaubt, fremde Links zu posten. Ausßerdem geht es darum, diese fremde Sachen an FREETZ anzupassen. Darum ist es noch mehr legitim. Due kannst auch ruhig hier Code-Passagen posten, aber bitte mit code-Tags. Dann kannst du deine Fragen konkreter stellen.
Ich hatte mir die CGIs von dem besagten Forum diagonal angeschaut. So wie ich es verstanden habe (ich kann mich aber irren), sind die Skripte ebenfalls für eine Router, der höchstwahrscheinlich auch mit busybox läuft. Also, sie werden schon sehr gut kompatibel zu uns sein. Man wird zwar eine oder andere Kleinigkeit anpassen müssen, grundsätzlich wird es aber gehen.
Zur Frage, an welche WebIF du dich "anhängen" kannst oder wie es überhaupt und grundsätzlich geht. Du kannst zu einem, wie es in von dir zitiertem howto beschrieben ist, eine eigene httpd-Instanz aufbauen. Die unterdem Verzeichniss liegenden Skripte sind deine cgi-Skripte. Innerhalb der Skripte musst du dann per "echo" oder was ähnliches die Ausgaben erzeugen und sie mit <html> und weitern Tags füllen. Also, einfach testen...
Zum anderen, wäre es möglich sich an bestehende Pakete und Skripte "anzuhängen". Z.B. an WebIF von FREETZ. Als Tip: Vieles geht über /var/mod. Es liegt im RAM und kann verändert werden! Einfach Symlinks, die dort liegen durch richtige Dateien überschreiben (beziehen von dort wo die Symlinks hinzeigen) und schon kannst du in den Dateien rumeditieren. Z.B.:
Code:
root@box:/var/mod/usr/lib/cgi-bin# ls -la
drwxr-xr-x    2 root     root           420 Jan  1  1970 .
drwxr-xr-x    4 root     root            80 Jan  1  1970 ..
lrwxrwxrwx    1 root     root            33 Jan  1  1970 avm-firewall.cgi -> /usr/lib/cgi-bin/avm-firewall.cgi
lrwxrwxrwx    1 root     root            24 Jan  1  1970 avm.cgi -> /usr/lib/cgi-bin/avm.cgi
lrwxrwxrwx    1 root     root            28 Jan  1  1970 callmonitor -> /usr/lib/cgi-bin/callmonitor
lrwxrwxrwx    1 root     root            32 Jan  1  1970 callmonitor.cgi -> /usr/lib/cgi-bin/callmonitor.cgi
lrwxrwxrwx    1 root     root            28 Jan  1  1970 dnsmasq.cgi -> /usr/lib/cgi-bin/dnsmasq.cgi
lrwxrwxrwx    1 root     root            29 Jan  1  1970 dropbear.cgi -> /usr/lib/cgi-bin/dropbear.cgi
[B][COLOR="#FF0000"]lrwxrwxrwx    1 root     root            24 Jan  1  1970 hol.cgi -> /usr/lib/cgi-bin/hol.cgi[/COLOR][/B]
lrwxrwxrwx    1 root     root            26 Jan  1  1970 inetd.cgi -> /usr/lib/cgi-bin/inetd.cgi
lrwxrwxrwx    1 root     root            20 Jan  1  1970 mod -> /usr/lib/cgi-bin/mod
lrwxrwxrwx    1 root     root            24 Jan  1  1970 mod.cgi -> /usr/lib/cgi-bin/mod.cgi
lrwxrwxrwx    1 root     root            24 Jan  1  1970 openvpn -> /usr/lib/cgi-bin/openvpn
lrwxrwxrwx    1 root     root            28 Jan  1  1970 openvpn.cgi -> /usr/lib/cgi-bin/openvpn.cgi
lrwxrwxrwx    1 root     root            26 Jan  1  1970 samba.cgi -> /usr/lib/cgi-bin/samba.cgi
lrwxrwxrwx    1 root     root            29 Jan  1  1970 sispmctl.cgi -> /usr/lib/cgi-bin/sispmctl.cgi
lrwxrwxrwx    1 root     root            24 Jan  1  1970 syslogd -> /usr/lib/cgi-bin/syslogd
lrwxrwxrwx    1 root     root            28 Jan  1  1970 syslogd.cgi -> /usr/lib/cgi-bin/syslogd.cgi
lrwxrwxrwx    1 root     root            23 Jan  1  1970 vsftpd -> /usr/lib/cgi-bin/vsftpd
lrwxrwxrwx    1 root     root            27 Jan  1  1970 vsftpd.cgi -> /usr/lib/cgi-bin/vsftpd.cgi
lrwxrwxrwx    1 root     root            24 Jan  1  1970 wol.cgi -> /usr/lib/cgi-bin/wol.cgi
An der Stelle könnte man z.B. hol.cgi nach /var/mod/usr/cgi-bin/ kopieren (Symlink damit überschreiben) und schon kannst du hol.cgi im RAM verändern und deine Ergebnisse direkt unter FREETZ-WebIF (Paket Halt-on-LAN) betrachten. In diese hol.cgi kannst du dann z.B. CODE-Fragmente aus zitiertem Forum reinkopieren, um zu prüfen, ob sie laufen und wie.
HOL war nur ein Beispiel. Stattdessen kannst du irgendwas anderes nehmen.


MfG
 
Hi,

also mein jetziger Stand ist folgender:
Zuerst musste ich mir ein Image mit netcat bauen, da nc scheinbar kein UDP fährt.
Dann habe ich festgestellt, dass da bei den Scripten zuviel Aufwand bei ist. Am einfachsten wäre, wenn man sich für seine Geräte einmal eine cfg anlegt und dann reicht ein einfacher Befehl aus und es funktioniert alles.
Die Config müsste in etwa ausschauen (um bei WOL zu bleiben) wie die known hosts datei, hier also

Code:
[table="width: 500"]
[tr]
	[td][COLOR="#FF0000"]Name[/COLOR][/td]
	[td][COLOR="#FF0000"]Zu sendener Code[/COLOR][/td]
[/tr]
[tr]
	[td]Steckdose 1 - AN[/td]
	[td]TXP:0,0,10,3825,85,25,12,6,6,12,6,12,12,6,6,12,6,12,6,12,12,6,12,6,6,12,6,12,6,12,12,6,12,6,12,6,12,6,6,12,6,12,12,6,12,6,12,6,12,6,12,6,6,12,2,45,;[/td]
[/tr]
[tr]
	[td]Steckdose 2 - AUS[/td]
	[td]TXP:0,0,10,3825,85,25,12,6,6,12,6,12,12,6,6,12,6,12,6,12,12,6,12,6,6,12,6,12,6,12,12,6,12,6,12,6,12,6,6,6,6,12,6,12,12,6,12,6,12,6,12,6,6,12,2,45,;[/td]
[/tr]
[/table]
Dann müsste das Webinterface für dieses Programm ähnlich einfach nur aufgebaut sein wie WOL mit ein Dropdown für das Feld Name und ein OK Button und ausgeführt werden müsste dann nur der Befehl
Code:
echo "[COLOR="#FF0000"]Zu sendener Code[/COLOR]" | netcat -u connair 49880
So jetzt haperts bei mir, wenn icih den Befehl so in der Shell eingebe, also z.B.
Code:
echo "TXP:0,0,5,10976,98,66,3,29,3,15,3,3,3,15,3,3,3,15,3,3,3,15,3,3,3,3,3,15,3,3,3,15,3,3,3,15,3,3,3,15,3,15,3,3,3,3,3,15,3,15,3,3,3,3,3,15,3,3,3,15,3,3,3,15,3,3,3,15,3,3,3,15,3,3,3,15,3,3,3,15,3,3,3,15,3,3,3,15,3,15,3,3,3,3,3,15,3,15,3,3,3,15,3,3,3,15,3,3,3,3,3,15,3,3,3,15,3,3,3,15,3,3,3,15,3,15,3,3,3,3,3,15,3,3,3,15,3,112,;" | netcat -u -vv 192.168.178.22 49880 -w 3
beendet sich das nicht von alleine, sondern ich muss immer mit strg c abbrechen. Macht das was aus, wenn man es später automatisiert durch das Webinterface machen will?
Nun versuche ich mir das WOL-CGI zurechtzu basteln für dieses einfache Ding, nur da sind soviele Dateien drinne, das ich mir nicht sicher bin, was und ob ich da alles unwichtige rausnemen kann?
Wie sehe denn so ein Addon aus für so ein einfaches Webinterface? Könnte es mir vielleicht jemand schreiben? Später könnte man es ja auch ausbauen und die Presets der verschiedenen Funksender einpflegen, so dass man nur noch auswählen braucht, welchen Hersteller und welches Gerät man hat und dann gibt man noch seinen Funkcode ein. aber für den Anfang würde ja das oben genannte reichen.

Vielen Dank im Voraus
 
1. Es gibt unter freetz.org ein HowTo, wie man sein eigenes Paket erstellt. Ich hatte dich auf WOL-CGI nur deswegen verwiesen, weil es viele Ähnlichkeiten mit deinem Vorhaben hat.
2. Wir werden dir helfen, aber eher weniger was für dich schreiben. Sprich, du solltest schon versuchen, vieles selbst herauszufinden und auszuprobieren. Sonst wird hier es nichts.
3. Die config-Datei würde ich an deiner Stelle nicht von vorne an fest definieren. Glaub mir, im Laufe der Entwicklung würdest du gerne den Steckdosen noch Namen geben wollen, sie zu Familien zusammenfassen, etc. Sonst sind die config-Dateien grundsätzlich gut
4. Warum man unbedingt netcat verwenden muss, habe ich nicht verstanden. Vielleicht kann man nc von busybox um erforderliche Optionen erweitern. Es ist immer unschön, wenn ein kleines Paket mit sich noch Tausende Abhängigkeiten mitzieht.
5. Zum "Aufhängen" bis zum Strg-C kann ich nichts sagen. Schau mal genauer unter Optionen zum netcat und generell zum ge-pipe-ten Aufruf. Wenn sich da nichts machen lässt, gibt es dafür schon Mittel, so ein Programm zu beenden. Man schießt es zunächst mit & in Hintergrund. Danach findet man die pid und killt das Programm. Ist zwar nicht schön, kann man aber machen, wenn nichts anderes geht.

MfG

MfG
 
Hi,

der Befehl "NC" ist hier auf der Fritzbox und z.B. der Dreambox ohne den Parameter -u . Diese können daher nicht die erforderliche udp-Verbindung zum Connair aufbauen. Mit Netcat geht dieses.
Wenn ich den Befehl in der shell eingebe passiert nichts, er bleibt einfach in einer neuen leeren Zeile stehen. Erst mit Strg C komme ich wieder in die shell.

Code:
root@fritz:/# echo "TXP:0,0,10,5600,350,25,3,29,12,6,6,12,6,12,12,6,6,12,6,12,6,
12,12,6,12,6,6,12,6,12,6,12,12,6,12,6,12,6,12,6,6,12,6,12,12,6,12,6,12,6,12,6,12
,6,6,12,2,16,;" | netcat -u 192.168.178.22 49880
[COLOR="#0000FF"]An dieser Stelle bleibt er stehen und dann mit Strgc gehts wieder in die Shell[/COLOR]
^Croot@fritz:/#
Ich habe mir jetzt auch schon andere addons angeschaut, die von der Sache einfacher sind und mal schauen, ob es was wird.

CU
 
Der Befehl nc kommt von der busybox und busybox unterstützt grundsätzlich auch Option -u und udp:
http://busybox.net/downloads/BusyBox.html#nc
Die Frage ist an der Stelle, welche Option wäre dafür in busybox zu aktivieren. Hast du schon
Code:
make busybox-menuconfig
in deiner Buildumgebung ausgeführt und sich drin rumgeschaut? Deine busybox wird dadurch vielleicht geringfügig größer, ich bin mir aber sicher, dass es im Schnitt doch kleiner wird, als eine separate Binary von netcat hinzuzupacken.
Ich hatte auch irgendwann mal hier mit blkid angefangen, bis Oliver für mich die busybox-blkid so angepasst hat, dass wir damit blkid von e2fsprogs ersetzen konnten. Leider muss AVM wahrscheinlich gerade die gleiche Lernkurve mit ihrem blkid abfahren. Es dauert immer 2-3 Jahre, bis sie auf ähnliche Gedanken kommen, wie wir hier.
Darum nochmal bitte: Versuch es mit der busybox hinzubekommen
Mit dem Aufhängen verstehe ich ebenfalls nicht. Ich hatte nc gerade mit einer tcp-Verbindung zu einem WebServer-Port getestet. Als Antwort kommt die WebSeite zurück und nc beendet sich. Es ist kein daemon-Modus oder ähnliches zu erkennen. Vielleicht ist es bei udp anders.

MfG
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.