SensorAndSwitch Haus-Automation auf Webserver-Basis

:habenwol:
Hätte da noch eine andere Idee, hab doch 2 Ip-Telefone, kann ich die nicht von außen ansteuern, das sie eine Nummer wählen?

Sorry, kenn mich mit deinen IP-Phones nicht aus.
...aber...
Mit einem SNOM Tischtelefon ist sowas total easy. :mrgreen:
Da hab ich mit Hilfe eines SNOM Forum Members (seine Schöpfung und Idee) einen "erweiterten" SNOM Monitor gebastelt.
Mit Hilfe der SNOM Fernsteuerung.
snom_ext_moni_01.jpg
Dafür muss auch kein Webserver auf der Box sein, nur lokal und natürlich: PHP


@lessew: PHP Version 5.5.6 und ja (curl)

@ws65: Du brauchst für beide die MIPSEL Versionen (Fb 7170 oder 7270)
 
Zuletzt bearbeitet:
man bin ich doof,
die passenden teile hab ich doch schon alle da.

Busybox v1.21, php-cgi von Fritzmod.net alles schon gehabt.

nur wie bastel ich das zusammen, geht das auf USB-Stick?
welche Verzeichnisse brauch ich, wo bekomme ich die httpd.conf her?

alles nicht soo einfach!

Ps. Ip-Telefone
das Grandstream kommt man sicher nur mit Insider Kentnisse dran.
das Yealink könnte ich mir schon vorstellen, das da was zu machen ist.
da komme ich mit Telnet drauf, sehe auch die Verzeichnisse und Dateien.
nur mit Telnet sehe ich das alles, wenn ich aber mit ftp mich darauf einlogge, kann ich ein Verzeichnis angeben, zB. /phone/srcipts ist nichts drin!
Vermute anderes Dateisystem?
 
USB Dateisystem: ext3
Warum?
Weil die Besitzer/Gruppen/Alle Anderen Rechte und Soft/Hardlinks funktionieren.
Gutes Beispiel dafür ist die Installation der busybox von busybox.net.
Die hat nämlich diesen praktischen Parameter: --install
Und in Verbindung mit: -s
...setzt sie speichersparende Softlinks...
Code:
mkdir bin ; mv busybox bin ; cd bin ; ./busybox --install -s .
(Den Punkt am Ende beachten = aktuelles Verzeichnis)
Bei Fat32 geht das nicht, erst ab: NTFS
...und dann schau dir mal bin an mit: ls -lap --color

Ok, Wenn das bin Verzeichnis im root des USB-Speichers ist,
nutzt das Ganze erst wenn auch im Suchpfad.
Erstell mal eine Datei im USB Root: vi .profile
.profile
Code:
PATH=/var/media/ftp/SanDisk-Cruzer-01/bin:$PATH
export PATH
Um den Pfad zu übernehmen, einfach in der Konsole ausfuehren...
Code:
. .profile
(Punkt Leerzeichen Punktprofile)
...nichts passiert? Dann tipp mal...
Code:
echo $PATH
:roll:
Und wenn der jetzt mit dabei ist, der "lange Pfad nach bin",
werden die eingetippten Kommandos zuerst dort gesucht.
Deswegen ergibt die reine Eingabe von: busybox
Version und Befehlsumfang der Neuen aus.

Jetzt funktioniert auch schon der httpd.
Sehr wichtig sind die MIMETYPES...
httpd.conf
Code:
# mime-types
.xhtml:application/xhtml+xml            # xhtml ;-)
.xml:application/xml                    # extended markup language (XML)
.xsl:application/xml+xsl                # extended markup language (XML-Transformation)
.dtd:application/xml+dtd                # extended markup language (XML-DocTypeDefinition)
.svg:image/svg+xml                      # scalable vector graphic
.swf:application/x-shockwave-flash      # shockwave flash
.oga:audio/ogg
.wav:audio/wav
.ogv:video/ogg
.ogg:video/ogg
.mp4:video/mp4
.txt:text/plain
.cfg:text/plain
.conf:text/plain
.ini:text/plain
.log:text/plain
.sh:text/plain
# externals
*.php:/var/media/NEW_LINK/mips/php.sh   # run xxx.php through an interpreter
*.cgi:/bin/sh
...und natürlich, ab # externals, was durch einen Interpreter soll.
 
Zuletzt bearbeitet:
Bin grad am basteln. Wie binde ich da php ein?

httpd läuft, nur php noch nicht... ...noch nicht.... noch immer nicht.... läuft :)
 
Zuletzt bearbeitet:
hab fertig, was für ein Krampf wenn man keine Ahnung hat!

musste erst ne vernünftige Anleitung für VI suchen, und bis ich den USB-Stick mit ext3 formartiert hatte!!!!

wie starte ich jetzt httpd ohne wieder was falsch zu machen?
 
So zum Beispiel...
rc.httpd
Code:
#! /bin/sh

BINARY='/var/media/NEW_LINK/bin/httpd'
CONFIG='-c /var/media/NEW_LINK/mips/httpd.conf'
PORT='-p 0.0.0.0:81'
UGID='-u 0:0'
REALM='-r Servername'

$BINARY $CONFIG $PORT $UGID $REALM

# env -i "PATH='/bin:/usr/bin'" $BINARY $CONFIG $PORT $UGID $REALM
Das letzte Kommentierte env Kommando lässt nur die angegebenen Suchpfade zu.

Hier noch meine php.sh die als Interpreter in der httpd.conf angegeben wurde...
php.sh
Code:
#! /bin/sh
ENVCMD='env -u USER -u HOME -u GCOV_PREFIX -u OEM -u SSH_TTY -u HWRevision_ATA -u PS1 -u Language_is_default -u HWRevision -u HWRevision_BitFileCount -u ANNEX -u CONFIG_VERSION_MAJOR -u Country_is_default -u LOGNAME -u TERM -u PATH -u SHELL -u enable_ata -u PATH_INFO -u SHELL -u ETC_CONFIG_PATH -u Language -u PWD -u Country -u SSH_CONNECTION -u GCOV_PREFIX_STRIP -u OEM_DEFAULT_INDEX -u HWSubRevision -u CONFIG_WLAN -u CONFIG_FON -u CONFIG_USB -u CONFIG_TIMERCONTR -u CONFIG_BETA -u CONFIG_EWETEL -u CONFIG_USB -u CONFIG_LFS -u CONFIG_PERL -u CONFIG_FON -u CONFIG_LTE -u CONFIG_I -u CONFIG_VPN -u CONFIG_UTF -u CONFIG_AB -u CONFIG_WLAN -u CONFIG_CAPI -u CONFIG_ONLINEHELP -u CONFIG_NFS -u CONFIG_UDEV -u CONFIG_WLAN -u CONFIG_ATA -u CONFIG_JFFS -u CONFIG_T -u CONFIG_STOREUSRCF -u CONFIG_NFS -u CONFIG_USB -u CONFIG_KIDS -u CONFIG_LED -u CONFIG_CODECS -u CONFIG_CAPI -u CONFIG_UBIK -u CONFIG_SQLITE -u CONFIG_NEUERUL -u CONFIG_WLAN -u CONFIG_CHRONY -u CONFIG_FONGUI -u CONFIG_CONFIGD -u CONFIG_DSL -u CONFIG_WLAN -u CONFIG_TAM -u CONFIG_FONQUALITY -u CONFIG_SQLITE -u CONFIG_FTP -u CONFIG_USB -u CONFIG_MULTI -u CONFIG_VDSL -u CONFIG_NCURSES -u CONFIG_PRODUKT -u CONFIG_ENVIRONMEN -u CONFIG_DECT -u CONFIG_DECT -u CONFIG_USB -u CONFIG_AVMIPC -u CONFIG_PROV -u CONFIG_ASSIST -u CONFIG_SWAP -u CONFIG_HOME -u CONFIG_LED -u CONFIG_NTFS -u CONFIG_MANUAL -u CONFIG_SUBVERSION -u CONFIG_VERSION -u CONFIG_DIAGNOSE -u CONFIG_USB -u CONFIG_USB -u CONFIG_CAPI -u CONFIG_SAMBA -u CONFIG_WEBSRV -u CONFIG_USB -u CONFIG_RELEASE -u CONFIG_BLUETOOTH -u CONFIG_DECT -u CONFIG_ROMSIZE -u CONFIG_FIRMWARE -u CONFIG_SERVICEPOR -u CONFIG_PRODUKT -u CONFIG_BUTTON -u CONFIG_ACCESSORY -u CONFIG_VERSION -u CONFIG_MAILD -u CONFIG_XILINX -u CONFIG_TR -u CONFIG_MEDIASRV -u CONFIG_CXX -u CONFIG_WLAN -u CONFIG_BOXLOWRESS -u CONFIG_DOCSIS -u CONFIG_ONLINEHELP -u CONFIG_NQOS -u CONFIG_VPN -u CONFIG_USB -u CONFIG_GDB -u CONFIG_UPNP -u CONFIG_ETH -u CONFIG_USB -u CONFIG_WEBDAV -u CONFIG_CAPI -u CONFIG_MAILER -u CONFIG_TR -u CONFIG_DSL -u CONFIG_WLAN -u CONFIG_CDROM -u CONFIG_WLAN -u CONFIG_WLAN -u CONFIG_ONLINEPB -u CONFIG_USB -u CONFIG_FAXSEND -u CONFIG_WLAN -u CONFIG_PLC -u CONFIG_FHEM -u CONFIG_USB -u CONFIG_WLAN -u CONFIG_DECT -u CONFIG_WLAN -u CONFIG_CAPI -u CONFIG_TELEKOM -u CONFIG_RAMDISK -u CONFIG_NAND -u CONFIG_MTD -u CONFIG_INSTALL -u CONFIG_DECT -u CONFIG_FAXSUPPORT -u CONFIG_WLAN -u CONFIG_HOME -u CONFIG_MULTI -u CONFIG_QOS -u CONFIG_WLAN -u CONFIG_DECT -u CONFIG_SRTP -u CONFIG_IGD -u CONFIG_CONFIGSPAC -u CONFIG_UNIQUE -u CONFIG_WLAN -u CONFIG_DECT -u CONFIG_OEM -u CONFIG_EXT -u CONFIG_FAX -u CONFIG_MEDIASRV -u CONFIG_MYFRITZ -u CONFIG_ATA -u CONFIG_HOMEI -u CONFIG_ERR -u CONFIG_EXT -u CONFIG_BOX -u CONFIG_AUDIO -u CONFIG_BASIS -u CONFIG_SQLITE -u CONFIG_VLYNQ -u CONFIG_DSL -u CONFIG_IPV -u CONFIG_WLAN -u CONFIG_VOIP -u CONFIG_ECO -u CONFIG_INETD -u CONFIG_USB -u CONFIG_LOGD -u CONFIG_WLAN -u CONFIG_USB -u CONFIG_CDROM -u CONFIG_NOTELNETD -u CONFIG_VOL -u CONFIG_WLAN -u CONFIG_REMOTE -u CONFIG_GDB -u CONFIG_HOSTNAME -u CONFIG_UTF -u CONFIG_MEDIACLI -u CONFIG_USB -u CONFIG_LIB -u CONFIG_ECO -u CONFIG_DOCSIS -u CONFIG_USB -u CONFIG_DOCSIS -u CONFIG_AURA -u CONFIG_MAILER -u CONFIG_DECT -u CONFIG_WLAN -u CONFIG_UPDATEFEAT -u CONFIG_DECT -u CONFIG_WLAN -u CONFIG_WEBCM -u CONFIG_SESSIONID -u CONFIG_KIDS -u CONFIG_MTD -u CONFIG_CAPI -u CONFIG_NEWSLETTER -u CONFIG_LABOR -u CONFIG_WLAN -u CONFIG_DECT -u CONFIG_ANNEX -u CONFIG_WEBUSB -u CONFIG_SOCAT -u CONFIG_DSL -u CONFIG_MINI -u CONFIG_PLC -u CONFIG_LINEARTV -u CONFIG_ETH -u CONFIG_VLYNQ -u CONFIG_TAM -u CONFIG_WLAN -u CONFIG_PPA -u CONFIG_WLAN -u CONFIG_GDB -u CONFIG_VLYNQ -u CONFIG_MTD -u CONFIG_CAPI -u CONFIG_FONBOOK -u CONFIG_NAS -u CONFIG_WLAN -u CONFIG_WLAN -u CONFIG_NFS -u CONFIG_MORPHSTICK -u CONFIG_BLUETOOTH -u CONFIG_ATA -u CONFIG_LUA -u CONFIG_TAM -u CONFIG_SPEECH -u CONFIG_LLTD -u CONFIG_SDK -u CONFIG_RAMSIZE -u CONFIG_FON -u CONFIG_LIBZ -u CONFIG_DECT -u CONFIG_DSL -u CONFIG_IPTV -u CONFIG_WLAN_RADIOSENSOR -u CONFIG_FON_HD -u CONFIG_USB_STORAGE_USERS -u CONFIG_TIMERCONTROL -u CONFIG_BETA_RELEASE -u CONFIG_EWETEL_SMARTMETER -u CONFIG_USB_HOST_AVM -u CONFIG_FON_IPPHONE -u CONFIG_I2C -u CONFIG_VPN_CERTSRV -u CONFIG_UTF8_FULL -u CONFIG_AB_COUNT -u CONFIG_WLAN_TXPOWER -u CONFIG_CAPI_NT -u CONFIG_ONLINEHELP_URL -u CONFIG_NFS_CLI -u CONFIG_WLAN_OPENWIFI -u CONFIG_ATA_NOPASSTHROUGH -u CONFIG_JFFS2 -u CONFIG_T38 -u CONFIG_STOREUSRCFG -u CONFIG_USB_TETHERING -u CONFIG_KIDS_CONTENT -u CONFIG_LED_EVENTS -u CONFIG_CODECS_IN_PCMROUTER -u CONFIG_CAPI_XILINX -u CONFIG_UBIK2 -u CONFIG_WLAN_ATH_NM_MAGPIE -u CONFIG_FONGUI2 -u CONFIG_DSL_UR8 -u CONFIG_WLAN_WDS_NO_SLAVE -u CONFIG_TAM_ONRAM -u CONFIG_SQLITE_VIDEO -u CONFIG_MULTI_COUNTRY -u CONFIG_PRODUKT_NAME -u CONFIG_ENVIRONMENT_PATH -u CONFIG_DECT_AUDIOD -u CONFIG_DECT_NO_EMISSION -u CONFIG_USB_HOST_TI -u CONFIG_AVMIPC_REMOTE_IP -u CONFIG_PROV_DEFAULT -u CONFIG_HOME_AUTO -u CONFIG_LED_NO_DSL_LED -u CONFIG_MANUAL_URL -u CONFIG_DIAGNOSE_LEVEL -u CONFIG_USB_STORAGE -u CONFIG_USB_INTERNAL_HUB -u CONFIG_CAPI_POTS -u CONFIG_USB_XHCI -u CONFIG_BLUETOOTH_CTP -u CONFIG_DECT_MONI_EX -u CONFIG_FIRMWARE_URL -u CONFIG_SERVICEPORTAL_URL -u CONFIG_ACCESSORY_URL -u CONFIG_VERSION_MAJOR09 -u CONFIG_TR064 -u CONFIG_MEDIASRV_MOUNT -u CONFIG_WLAN_ATH_NM_COMBO -u CONFIG_BOXLOWRESSOURCES -u CONFIG_DOCSIS_PCD_NO_REBOOT -u Country_is_defaultes -u CONFIG_USB_PRINT_SERV -u CONFIG_ETH_COUNT -u CONFIG_USB_LTE -u CONFIG_TR069 -u CONFIG_DSL_2DP -u CONFIG_WLAN_GUEST -u CONFIG_CDROM_FALLBACK -u CONFIG_WLAN_ATH_NM_OFFLOAD_TGT -u CONFIG_WLAN_ATH_NM_OFFLOAD_HST -u CONFIG_USB_GSM -u CONFIG_WLAN_WEATHER_CAC -u CONFIG_PLC_DETECTION -u CONFIG_USB_GSM_VOICE -u CONFIG_WLAN_WDS -u CONFIG_WLAN_1130TNET -u CONFIG_CAPI_UBIK -u CONFIG_TELEKOM_KOFFER -u CONFIG_MTD_MAILSEND -u CONFIG_INSTALL_TYPE -u CONFIG_DECT_PICTURED -u CONFIG_WLAN_MADWIFI -u CONFIG_HOME_AUTO_NET -u CONFIG_MULTI_LANGUAGE -u CONFIG_QOS_METER -u CONFIG_WLAN_ATH_NM_PCI -u CONFIG_DECT_HOME -u CONFIG_CONFIGSPACE_ONNAND -u CONFIG_UNIQUE_PASSWD -u CONFIG_WLAN_WMM -u CONFIG_DECT_ONOFF -u CONFIG_OEM_DEFAULT -u CONFIG_EXT2 -u CONFIG_FAX2MAIL -u CONFIG_HOMEI2C -u CONFIG_ERR_FEEDBACK -u CONFIG_EXT3 -u CONFIG_BOX_FEEDBACK -u CONFIG_SQLITE_BILDER -u CONFIG_DSL_MULTI_ANNEX -u CONFIG_IPV6 -u CONFIG_WLAN_1350TNET -u CONFIG_VOIP_ENUM -u CONFIG_USB_HOST_INTERNAL -u CONFIG_WLAN_IPTV -u CONFIG_USB_WLAN_AUTH -u CONFIG_VOL_COUNTER -u CONFIG_WLAN_EACS -u CONFIG_REMOTE_HTTPS -u CONFIG_GDB_FULL -u CONFIG_UTF8 -u CONFIG_USB_STORAGE_SPINDOWN -u CONFIG_LIB_MATH -u CONFIG_ECO_SYSSTAT -u CONFIG_DOCSIS_CLI -u CONFIG_USB_HOST -u CONFIG_MAILER2 -u CONFIG_DECT_14488 -u CONFIG_WLAN_TCOM_PRIO -u CONFIG_UPDATEFEATURE_URL -u CONFIG_DECT2 -u CONFIG_WLAN_WDS2 -u CONFIG_WEBCM_INTERPRETER -u CONFIG_MTD_RSS -u CONFIG_CAPI_TE -u CONFIG_NEWSLETTER_URL -u CONFIG_LABOR_DSL -u CONFIG_WLAN_WPS -u CONFIG_DECT_MONI -u CONFIG_DSL_VENDORID -u CONFIG_ETH_GBIT -u CONFIG_VLYNQ0 -u CONFIG_TAM_MODE -u CONFIG_WLAN_GREEN -u CONFIG_WLAN_SAVEMEM -u CONFIG_GDB_SERVER -u CONFIG_VLYNQ1 -u CONFIG_MTD_MAIL -u CONFIG_CAPI_MIPS -u CONFIG_FONBOOK2 -u CONFIG_WLAN_ATH_NM_USB -u CONFIG_WLAN_ATH_NM_OFFLOAD -u CONFIG_NFS_SRV -u CONFIG_ATA_FULL -u CONFIG_SPEECH_FEEDBACK -u CONFIG_DECT_CATIQ20 -u CONFIG_IPTV_4THOME'
CMD='/var/media/NEW_LINK/cgi-bin/php-cgi -c /var/media/NEW_LINK/mips/php.ini ${1}'
$ENVCMD $CMD
#EOF
...filtert alle ungewollten Fritz!Box Variablen aus dem Environment beim Interpreteraufruf.
Da seht ihr dann auch wo der sich befinden sollte. ;)
 
Zuletzt bearbeitet:
Bei mir musste noch REDIRECT_STATUS=0 export REDIRECT_STATUS rein.


Jetzt läuft auch endlich
$Status = shell_exec("/usr/bin/ctlmgr_ctl r wlan status/ap_enabled");
 
Zuletzt bearbeitet:
Und was die Sicherheit angeht.
Das ist nur ein Gefühl.
Und wenn ihr denn httpd eine Chance gebt,
gibt er euch auch ein gutes Gefühl. ;)
 
Bei der Darstellung ists ein ziemliches Geflacker. Beim Apache war das nicht. Kann man das noch irgendwie abstellen oder arbeitet der httpd langsamer?
 
Ich denke, das liegt eher am PHP, welches durch den nicht sonderlich performanten Interpreter muss.
Performanter wird es sicherlich dort wo CGI oder normales HTML zum Einsatz kommt.
 
Zuletzt bearbeitet:
Hab jetzt eine Lösung. Beide Webserver laufen auf zwei unterschiedlichen Ports. Für die Fritzbox-Spezial-phps wird einfach der httpd benutzt, für das Normale der Apache. Das funktioniert ganz gut.

Ich rufe einfach mit curl im pseudoname.php das script, das z. B. den Schaltvorgang/Sensoranzeige tätigt, auf dem httpd auf.

Ok, für mich wars das dann mal für heute. Genug gebastelt. Ihr habt ja im Moment mit sas.php ein nettes Spielzeug und findet bestimmt noch etliche Anwendungsmöglichkeiten.

Die Tage muss ich versuchen, noch das Delay einzubauen. Sonst bleiben wir bei der Labor hängen. :)
 
Zuletzt bearbeitet:
Wollte ich gerade vorschlagen.
Nimm den busybox httpd dann als CGI/PHP Server. ;)
(Nicht als Grafik Frontend)
 
Zuletzt bearbeitet:
Sorry aber ich finde ihr driftet vom eigentlichen Thema ab *duckundschnellwegrenn*
 
Sorry aber ich finde ihr driftet vom eigentlichen Thema ab *duckundschnellwegrenn*
Jein, denn jetzt gibt es auch Fritzbox-Interna als Schalter und Sensor zum Einbauen. Aber wie oben schon erwähnt, mach ich für heute Schluss und die Tage gehts mit der Entwicklung weiter. ;)
 
hatte schon vor einigen Tagen auf grund koyaanisqatsi´s Vorschlag mit dem httpd der busybox rumgebastelt, war dann aber wieder davon abgekommen.
Deshalb war der Weg zurück zum httpd recht kurz, dank koyaanisqatsi noch ein paar Anpassungen zwecks cgi und nun läuft alles perfekt, mit dem Ergebnis, weniger Last auf der FB und flackern tut bei mir auch nix.

@JL3:

irgendwann hast Du in die sasap.php den Schalter zur sasapui.php eingebaut (Schaltbedingungserfassung). Könnte Du nicht auch einen Schalter für den Weg zurück drauflegen?

@ALL
Nochmals Dank an alle, hätte nicht gedacht, das sich das so weit entwickelt.
 
Wichtige Mitteilung zur nächsten Labor:
Durch die von mir geplante Einführung einiger weiterer Sensor- und Anzeige-Funktionsarten muss ich die zurückzuliefernden Parameter der PseudoGeräte leicht abändern. So Leid es mir tut, aber Ihr müsst Eure evtl. bereits im Einsatz befindlichen Scripte angleichen. Diese angeglichenen Scripte werden auch mit der alten Labor laufen, da diese weniger strenge Anforderungen stellt. Es betrifft besonders den Parameter E für Fehler des Pseudogerätes. Genügte es bisher, nur E durch ein echo "E"; oder echo "E#"; zurückzusenden, so muss bei der zukünftigen Labor der Gerätetyp zwingend mit angegeben sein. Wäre es ein Temperatursensor, so würde echo "T##E##"; oder echo "T#irgendwas#E##"; der zurückzuliefernde Wert. Bei Schaltern entsprechend echo "S##E##"; oder auch z. B. echo "S#kein Wert#E##";

Das Problem ist bei aufwändigeren Sensoren, dass im Sensorergebnis durchaus einmal ein großes "E" vorhanden sein kann. Dieses würde nach altem Muster zur irrigen Annahme führen, dass ein Fehler vorliegt. Durch Prüfung nach "E##" schließt dieses Versehen weitestgehend aus.

Durch den geplanten neuen Universalsensortyp "P" können z. B. auch andere Einheiten angezeigt werden. Sogar z. B. Wettericons sind von Webseiten dann übernehm- und darstellbar. So ist zumindest die Planung.

Möglicher neuer Parameteraufbau könnte sein:
auswertfähig in der sasap.php und anzeigefähig in der sas.php: P#Wert*Einheit# -> Beispiel Luftdruck: P#1023.5*hPa#
anzeigefähig in der sas.php: P#html-code*HTML# -> Beispiel Wettericon: P#wechselhaft <img src="http://server.com/wetter/icons/icon.png">*HTML#

Sorry dafür, dass Ihr auch nochmal Hand anlegen müsst, aber in einer Laborversion ist noch nichts 100%ig sicher. Dafür erweitern die geplanten neuen Varianten nochmal die Möglichkeiten der Scripte.

Edit: Abänderung des nicht verwendeten Parameters X in P (grün markiert), da inzwischen realisiert.
 
Zuletzt bearbeitet:
irgendwann hast Du in die sasap.php den Schalter zur sasapui.php eingebaut (Schaltbedingungserfassung). Könnte Du nicht auch einen Schalter für den Weg zurück drauflegen?
Ja, das kommt noch, sobald ich auch die beiden unbenutzten Felder noch mit dem Delay verarztet habe. Das Problem ist, dass der Link vom sasap zum sasapui ja (bei entsprechender Einstellung) ein neues Tab oder Fenster öffnet und ein Button zurück würde wieder ein weiteres öffnen, aber das kann man abfangen. Ich setze es mir auf die Merkliste. :)

Eingebaut. ;)

Wenn man in den Einstellungen "Link im selben Fenster öffnen" eingestellt hat, so kommt bei sasapui auch ein Button "Statusanzeige" für den Weg zurück.
 
Zuletzt bearbeitet:
Moins

:doktor:
JL3 schrieb:
Durch den geplanten neuen Universalsensortyp "X" können z. B. auch andere Einheiten angezeigt werden. Sogar z. B. Wettericons sind von Webseiten dann übernehm- und darstellbar. So ist zumindest die Planung.

Featurewunsch:

Manche Sensoren liefern nur (unformatierten) Text zurück.
Den würde ich gerne auch so anzeigen lassen (wenn nicht = pseudoauto),
oder/und darauf prüfen. ;)
Als da wären:
Uhrzeit/Datum
IPv4 Adresse
IPv6 Adresse
Verbindungsstatus
(connected)
Aktive Klienten
(Zahl und/oder Liste)
Online Klienten
(Zahl und/oder Liste)

Außerdem halten sich einige Hersteller nicht an die "Anforderungen des Entwicklers",
Dabei denk ich an:
IP-Kameras
IP-Telefone
Mediacenter

Bei solchen Geräten sind die Rückgabewerte erstmal unbestimmt.
(Kriegt man also nur durch testen raus)
Oder sie liefern schlicht nichts zurück.
Da möchte der "Pseudoskriptentwickler" gerne selber eine Info setzen. ;)

Ein ganz schwerer/schlimmer Fall wäre mein RasPI OpenELEC mit XBMC.
Der wird zwar über HTTP gesteuert, aber mit JSON.
Was meinst du wie da die Rückgabe aussieht?
Aufruf:
Code:
http://USER:SECRET@openelec/jsonrpc?request={"id":1,"jsonrpc":"2.0","method":"GUI.ShowNotification","params":{"title":"DND aus","message":"snom1\n621","displaytime":8000}}
Rückgabe:
Code:
{"id":1,"jsonrpc":"2.0","result":"OK"}
:roll:
 
Zuletzt bearbeitet:
Ich verstehe nicht dein Problem. :)
DU als "pseudogeraet.php-Entwickler" musst den "Kram" deiner Geräte so aufbereiten und die für sas gültigen Rückgabewerte basteln. Das ist doch klar. Logisch, dass kein einziges Gerät passende Rückgabewerte hat. Manchmal muss man es aus xml extrahieren, was das Gerät meint, manchmal aus Binärdateien, manchmal aus HTML. Doch DEIN Script muss die Schnittstellenparameter zu sas einhalten. Deine oben angegebenen Beispiele sind alle realisierbar. Die Umsetzung findet ja im pseudogeraete-Script statt.

Beispiel: Nur mal angenommen deine "Uhr" liefert 201409111008PM zurück. Dann bist du in deinem Script dazu "verdammt" daraus den String "P#20:08*Uhr#" zu machen. Wer mit seinen exotischen Geräterückgabewerten Probleme hat, soll sie halt mal hier einstellen. Eine Umsetzung ist schnell gemacht. :)
Bei Schalter-Geräten, die überhaupt nichts zurückliefern, empfiehlt es sich die pseudoschalter.php zu benutzen und um die Schaltaufrufe zu ergänzen. Dadurch merkt sich das Script in einer Datei, wie der Zustand sein müsste. Muss natürlich einmal abgestimmt werden.
Bei dem Beispiel ists doch super: {"id":1,"jsonrpc":"2.0","result":"OK"}
if (strpos("OK")) {echo "S#1#";}
Und Hier
Da möchte der "Pseudoskriptentwickler" gerne selber eine Info setzen.
Ja dann mach das doch. Zwischen P# und *HTML# kannst du alles Mögliche dann reinhauen.

Wie gesagt: Wo ist dein Problem? ;)
Also alles kein Beinbruch. ;)
 
Zuletzt bearbeitet:
:doktor:
Ja dann mach das doch. Zwischen X# und *HTML# kannst du alles Mögliche dann reinhauen.
Genau das mein ich ja. Mit den Pseudosensor/schalter T und W gingen ja nur °Celsius und Watt.
Wenn mit X#Neueste Meldung: Blablabla# die interessanten Ausgaben erfolgen können.
Dann ist alles gut.

Ach, danke für den Tip mit strpos().
 
Zuletzt bearbeitet:
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.