NEWS
(gelöst) Daten für externe verfügbar machen
-
Gibt es eine einfache Art mit Iobroker Datenpunkte für andere lesend verfügbar zu machen?
Ich will meiner Mieterin die Temperaturwerte im Boiler anzeigen, möchte ihr aber keinen Zugriff auf mein Netzwerk oder Iobroker geben. Grundsätzlich habe ich da an folgendes gedacht:
Iobroker schreibt mit dem SQL-Adapter die Daten in eine externe MySQL die bei meinem Hosting Anbieter deponiert ist und daraus soll nachher eine einfach Webseite aufgebaut werden die dann normal übers www erreichbar ist.Oder gibt es da noch einfachere Varianten die auch ein Laie bewerkstelligen kann?
Andi -
@andibr nimm ein halbwegs aktuelles Android tab, installier fully kiosk Browser, besorg dazu ne Lizenz und Sperr damit das Tablet.
Dann hat sie exakt auf das Zugriff was du per Fully zulässt. -
@jey-cee said in Daten für externe verfügbar machen:
@andibr nimm ein halbwegs aktuelles Android tab, installier fully kiosk Browser, besorg dazu ne Lizenz und Sperr damit das Tablet.
Dann hat sie exakt auf das Zugriff was du per Fully zulässt.Eigentlich möchte ich kein Gerät dort deponieren, die soll ihr eigenes nutzen. Die Frage nach dem Betriebsstrom ist dann eben auch geklärt. Eigentlich könnte man ja auch einfach ein Handy nutzen?
Wenn ich eben schon ein Android Tab kaufen muss, dann nehme ich doch eher sowas:
Touch-PanelAndi
-
@jey-cee
Dann hat sie aber Zugriff aufs Netzwerk? -
@oliverio nein da der Fully Kiosk das Tablet Komplett Sperrt und nur noch die eingestellte Webseite dargestellt wird.
-
@andibr sagte in Daten für externe verfügbar machen:
Eigentlich könnte man ja auch einfach ein Handy nutzen?
Ja wenn darauf Android läuft.
-
@jey-cee
aha,
also der fully kiosk ist dann der einzige schutz?
weil aufs netz muss der ja schon zugreifen?
und wenn ich böse bin und im browser die adresse direkt eingebe? -
Evtl ist mein Gedanke ja viel zu simpel, erfüllt aber seinen Zweck.
Warum nicht einen telegram bot erstellen in den du die Temperaturen sendest.
Sie kann den Bot ja auf stumm stellen, so stört er nicht.P. S.
Falls du das mit der online Datenbank machst erkläre das mal, hab ich beim letzten mL nicht geschafft ^^.EDIT
Alternativ könnte man die Daten lokal in eine HTML schreiben und per ftp auf einen Server laden. -
@oliverio sagte in Daten für externe verfügbar machen:
und wenn ich böse bin und im browser die adresse direkt eingebe?
Das kannst du ja mal Probieren ohne Adresszeile.
-
Check. Habe beendet. Chrome geöffnet.
VoilaInd falls dieses Gerät abgeschlossen ist, sofern das überhaupt zuverlässig geht. Die meisten Kiosk Systeme sind auch vor physischem Zugriff auf Tasten geschützt,
Dann kann ja jedes andere Gerät im selben Netz dann auf Iobroker zugreifen
Da find ich die anderen Lösungen mit Telegram oder Webseite regelmäßig hochladen sicherer
-
Die benötigen Schritte für die Website hab ich in 2 verschiedenen Skripten am laufen.
Eine html schreiben klappt wunderbar und ein upluad via curl auch.
In die html kann man ja aicu easy ein Screenshot von grafana, flot oder echarts einbinden (bei echarts kannst du das Bild auch direkt im Skript generieren lassen).
EDIT:
Wie ich das mit der html mache habe ich hier für einen anderen Anwendungsfall beschrieben.Kann man sich schon formatieren und im Browser öffnen.
Den upluad kann man dann mit
curl -k "sftp://83.46.38.23:22/CurlPutTest/" --user "testuser:testpassword" -T "C:\test\testfile.xml" --ftp-create-dirs
erledigen.
-
@oliverio sagte in Daten für externe verfügbar machen:
Habe beendet. Chrome geöffnet.
VoilaDann war es nicht richtig eingerichtet, sonst lässst sich die App nicht beenden. Selbst bei einem Neustart vom Gerät kommt man nicht an der App vorbei.
@oliverio sagte in Daten für externe verfügbar machen:
Die meisten Kiosk Systeme sind auch vor physischem Zugriff auf Tasten geschützt,
Das ist richtig. Aber wenn ich mich recht erinnere lassen sich auch die Tasten soweit Sperren das keine Interaktion möglich ist auf OS ebene.
Aber ist klar wenn jemand einen weg finden will hält ihn auch ein WLAN Passwort nicht auf.
-
Danke für die Hinweise. Wie bereits beschrieben, werde ich mich hüten meinen Mieter in irgend welcher Weise Zugriff auf mein Netzwerk zu geben. Bevor ich das mache, müssen sie darauf verzichten oder in den Keller laufen und die Thremometer am Boiler ablesen.
Es wäre sicher möglich mittels VLAN und fully-Kisok eine sichere Lösung zu bauen, aber der Aufwand scheint mir doch eher hoch zu sein. Was mich aber mehr stört: Ich bin dann für ein weiteres Gerät verantwortlich, d.h. wenn es nicht läuft muss man schauen". Das fällt eben bei einer WWW-Seite ganz weg, sprich ich bin nicht verantwortlich für das Anzeigegerät und ein neuer Mieter braucht auch keine weitere Instruktion.
In der Zwischenzeit habe ich mich auch mit meinem Hosting Admin unterhalten. Damit ich mit dem Iob auf die MySQL zugreifen kann, benötige ich einen "SSH-Tunnel". Wie das auch immer mit Iob herzustellen ist, habe ich noch nicht verstanden. Sobald die Datensätze mal in der externen MySQL sind, scheint es nicht mehr so ein grosses Problem zu sein. Da werde ich morgen mal meine Arbeitskollegen fragen, die machen das immer mal wieder.
Einen etwas anderen Weg den ich mir noch gedacht habe: Man könnte ja mit einem Skript ein MySQL Backup mit den entsprechenden Datensätzen machen, und das Backup dann extern importieren.
-
Warum nicht die html Tabelle?
Mit getHistory könnte man gezielt Bereiche abfragen und darstellen. -
-
Wäre auch eine Lösung, nur habe ich noch nicht ganz verstanden wie du das html erstellst. Kannst du mir evt. dein Skript mal kopieren (ich stehe da etwas am Berg)?
Fürs erste würde eine Art unsichtbare Tabelle schon genügen.
Beispiel:
Boiler oben: 75.0
Boiler mitte: 50.0
Boiler unten: 35.0Fürs erste sicher eine Möglichkeit.
Das mit dem Upload lässt sich sicher mit Blockly oder Linux-Cron machen, quasi alle 5min einfach das neue html hochladen per ftp. -
@oliverio said in Daten für externe verfügbar machen:
So wie ich das Mail von meinem Hoster verstehe, muss der MySQL-Client (also der SQL-Adapter) den Tunnel direkt zur Datenbank aufbauen. Das ganz doofe an der Sache ist hier eben noch das er mir ein Beispiel angehängt hat für die MySQL Workbench und ich kein Win und keine MySQL Workbench installiert habe. Auch der HeidiSQL Client verwendet nur das doofe Win-Tool "plink.exe", damit hat man aber auf Linux so seine Mühe.
-
Bekommen nachher Besuch.
Bastel da heute abend am Sofa was.Mit dem getHistory weiß ich nicht genau wie es geht.
Evtl kann da jmd was zu schreiben?
Dass man eine Liste mit Wert und Zeitstemlel aus Zeitraum x bekommt?
Am besten, dass man es in Blockly verwenden kann.Sonst muss man sich die im Skript selber mit aufnehmen. Die Frage ist dann nur, ob die letzten x Werte, ein Zeitraum oder sons wie.
EDIT
Für drin Beispiel braucht man ja nichtmals eine Tabelle. Sind ja nur Zeilen am Stück.EDIT2 :
@andibr sagte in Daten für externe verfügbar machen:
Fürs erste würde eine Art unsichtbare Tabelle schon genügen.
Beispiel:
Boiler oben: 75.0
Boiler mitte: 50.0
Boiler unten: 35.0Reicht dir immer die aktuelle Temperatur?
Brauchst du keinen Verlauf?EDIT 3:
Wenn es dir wie in Edit 2 reicht, kannst du 1 zu 1 mein Skript für das PDF nehmen.
Bei dem curl wo ich das PDF generiere den curl den ich oben gepostst hab. Den Block zum versenden vom PDF einfach entfernen.
Beim html erstellen nimmst du einfach einen Textbaustein und bastelts das zusammen. Zum testen erstmal nur wie es oben steht was dir reichen würde. Ganz ohne html Code. Wenn man es formatieren will, kann man den nachträglich rein machen. Es reicht erstmal, wenn die Dateiendung .htm oder .html ist.
-
Je, ich habe es mal geschaft ein "html" zusammen zubasteln
.Jetzt kommt noch der Schritt das dann hoch automatisch hoch zu laden.
-
Wunderbar, auch wenn du viele Angaben drinnen hast die es garnicht zwingend braucht.
Hochladen kannst du es jetzt mit einem exec Block und dem Inhalt:
curl -k "sftp://83.46.38.23:22/CurlPutTest/" --user "testuser:testpassword" -T "C:\test\testfile.xml" --ftp-create-dirs
Exec muss in den Settings des JavaScript Adapter aktiviert sein.
EDIT:
Für eine neue Zeile würde ich nicht den Blockly Baustein nehmen <br> generiert in HTML einen Zeilenumbruch mit <p> einen neuen Absatz.Für Tabellen nehme ich immer einen Onlinegenerator.
Wenn man da dann css deaktiviert bekommt man sehr gute vorlagen.Hier gibt's leicht erklärt die wichtigsten Befehle zur Formatierung.
https://www.loewenstark.com/wissen/html/texte/