@negalein Tennisball von der Decke baumeln lassen. Berührt dieser die Scheibe, steht das Auto passend.
NEWS
Best posts made by peterfido
-
RE: Anzeige ob Auto passend stehtposted in Off Topic
-
RE: VIS -> keine gültige Lizenz gefundenposted in Error/Bug
Ich hatte zwar keine Probleme beim Serverausfall, hätte diese allerdings bekommen können. Daher habe ich nun auch den Gegenwert eines Freitags-Dönermann-Besuchs investiert und die offline Lizenz erworben.
Eine Karenzzeit von wenigen Tagen würde der kostenlosen Lizenz nicht schaden. Steam z.b. lässt einen auch kostenlos ein paar Tage offline spielen. Der Telekom Receiver fährt offline allerdings nicht hoch, so dass auch nichts aufgenommenes gesehen werden kann. So war es zumindest "damals", als ich noch Entertain-Kunde war. Möglich, dass die Telekom da nachgebessert hat.
Über KNX habe ich mich, als es relativ neu war, erkundigt. Was die da an Lizenzgebühren verlangt hatten, war schon nicht ohne. Wenn diese Lizenz auch benötigt wird, um an dem Adapter zu arbeiten, ist ein Preis gerechtfertigt. Obwohl ich es nicht nutze, halte ich auch da ein paar Tage Karenzzeit für vorteilhaft. 4 oder 5 Tage, um z.B. von Karfreitag bis Ostermontag überbrücken zu können, halte ich, auch für VIS, für angemessen und @Bluefox könnte im Fall der Fälle entspannt Oster-frei haben.
-
RE: Dockerinstallation auf Synology Firewalleinstellungenposted in Docker
@mkaiser96
Für sowas gibt es für kleines Geld Webhoster. Wenn da einer einbricht, ist das Netzwerk zuhause weiterhin sicher.Ich hatte vor Jahren eine Fotoalbum-Anwendung bei einem Hoster laufen. Das Sichten der Log-Dateien brachte weitere Erkenntnisse. Die Angreifer kommen nicht über die Haupttür, sondern testen alle möglichen Deeplinks aus. Das Absichern hat wohl mehr Zeit in Anspruch genommen, als das Einrichten und Pflegen der Inhalte. Ständig prüfen, ob es Updates gibt und diese einspielen. Zusätzlich regelmäßig in die Logs schauen, wo und wie die bösen Hacker / deren Skripte es aktuell versuchen. Tägliche Backups beim Hoster. Die Login-Seiten verändert, so dass eine IP nach vier Fehlversuchen automatisch geblockt wurde, die Anmeldeseite umgebogen, wer die originale aufgerufen hatte, wurde direkt geblock, und und und.
Da der Hauptgedanke, auch Fotos anderer zu bekommen, eh nicht klappte, da die anderen immer nur geholt, aber nix hochgeladen haben, habe ich das Projekt irgendwann eingestampft und lasse die Website aus Nostalgiegründen jetzt nur noch lokal laufen.
Zuhause sind nur die Ports für das VPN freigegeben, alles andere geschieht darüber.
-
RE: Multicast / SMA-EM / USG / Netztrennungposted in ioBroker Allgemein
Für Multicast über alle Netzwerke habe ich unter Dienste den MDNS aktiviert. Alle Netzwerke, die irgendwie übergreifend sein müssen, z.B. zum Drucken, pihole, Mediaserver, etc., sind als Unternehmen eingerichtet. Getrennt werden die dann durch Firewall-Regeln. Exposed Host habe ich nicht genutzt. Das Doppel-NAT stört nicht. Im Gegenteil sehe ich das als weitere Hürde, falls die Fritzbox oder das USG mal eine Sicherheitslücke haben sollten.
Dann die Firewall-Regeln hauptsächlich in LAN IN ergänzt. Also welches Netzwerk darf auf welches Netzwerk, oder auch nur Einzelgerät, zugreifen. Dann habe ich noch die IP-Adresse der Fritzbox selbst für die meisten Netzwerke gesperrt.
In LAN OUT ist nur die Regel für die Geräte mit Internetverbot ergänzt.
In WAN IN nur zusätzlich die eine Regel für die SIP-Telefonie. Dafür braucht es in der Fritzbox auch noch eine Route. Die Portweiterleitungen für das VPN sind auch in der Fritzbox einzutragen.
Trunk ist der Kofferraum, wo alles drin ist. Also Management LAN ohne TAG, alle anderen Netzwerke getaggt. Da nicht alle Geräte mit getaggten VLANs klar kommen, werden diese an den Ports wieder "enttaggt". Für die Endgeräte ist das dann wie ein "normales" Netzwerk. Die PVID setzt man dann, um den Daten vom Endgerät in den Trunk wieder ein TAG zu verpassen. Die ist also normal gleich der VLAN -ID. Bei Unifi nicht nötig, bei den von mir auch eingesetzten managebaren Zyxel-Switchen schon.
Proxmox kann mit den Tags umgehen. Das heißt, der NUC hängt an einem Trunk-Port. Proxmox selbst läuft dann im Management LAN, die virtuellen Maschinen dann auf den VLANs, die man bei den Netzwerkkarten konfiguriert.
-
RE: Speicherplatz des Proxmox voll - aber womit?posted in Proxmox
@guitardoc Die PVE bietet soweit alles notwendige per Weboberfläche. Die Konsole vom Host braucht man nur anfassen, wenn man da zusätzliche Programme wie z.B. NUT lokal statt auf einer VM installieren möchte.
Ich bevorzuge immer noch VMs. Diese sind kernelunabhängig. Spätestens, wenn ein Gerät durchgeschliffen werden soll, sind diese arg im Vorteil.
Um deine USB Platte zu prüfen, reicht auch ein PC, auf welchem Linux (als Livesystem (von USB)) läuft.
Wenn du diese in einer VM testen wollen würdest, müsstest du die ganze USB Festplatte erstmal dort einbinden.
Vor einem PVE Update am besten erstmal die Foren durchlesen. Im Proxmox-Forum findet man schnell heraus, wenn es Probleme geben sollte. Dann die Updates immer so zwei, drei Wochen verzögert einspielen. Dann sind fehlerhafte Updates meist schon zurückgezogen.
-
RE: Strommessung Backofen 3-Pasen (Starkstrom), MQTTposted in Hardware
@martinp Die Teile sehen aber abenteuerlich aus. Die Trennung / Isolierung lässt sich auf der Platine nicht erkennen. Die Abstände sind mir zu klein und gefräst ist da auch nichts. Da hätte ich Angst um die Geräte, welche am TTL Port sitzen und den Taster würde ich auch nicht mit blossem Finger drücken wollen.

Ein fertiger Zähler von z.B. Eastron , Orno oder B + G E Tech mit Modbus bietet in einem berührungssicherem Gehäuse normal Spannung, Strom, Scheinleistung, Wirkleistung, Zählerstand, Frequenz.
-
Modbus als Slaveposted in Praktische Anwendungen (Showcase)
Hallo,
anbei ein Beispiel, wie der Modbus Adapter als Slave genutzt werden kann.
Als Gegenpart habe ich Node-Red (node-red-contrib-modbus) auf dem selben ioBroker auf meinem Testsystem genutzt.Die Einstellungen vom Modbus-Adapter sind wie folgt:





Ein Javascript unterstützt mit einer Uhr und kopieren der empfangen Werte in die Ausgangsregister. Die Uhr muss von Hand aktualisiert werden, damit die nicht in die Tests reingrätscht.
//Modbus Test createState('0_userdata.0.Modbus.Uhrakt', { type: 'boolean', def: false, role: 'value' }); function Uhr(){ var today = new Date(); var Stunde = today.getHours(); var Minute = today.getMinutes(); var Sekunde = today.getSeconds(); var Wochentag = today.getDay(); var Tag = today.getDate(); var Monat = today.getMonth()+1; var Jahr = today.getFullYear(); setState("modbus.0.inputRegisters.30001",Stunde); setState("modbus.0.inputRegisters.30002",Minute); setState("modbus.0.inputRegisters.30003",Sekunde); setState("modbus.0.inputRegisters.30004",Tag); setState("modbus.0.inputRegisters.30005",Monat); setState("modbus.0.inputRegisters.30006",Jahr); setState("modbus.0.holdingRegisters.40001",Stunde); setState("modbus.0.holdingRegisters.40002",Minute); setState("modbus.0.holdingRegisters.40003",Sekunde); setState("modbus.0.holdingRegisters.40004",Tag); setState("modbus.0.holdingRegisters.40005",Monat); setState("modbus.0.holdingRegisters.40006",Jahr); } on({id: /modbus.0.coils.*/, change: 'ne'}, function (dp) { log(dp.id); var nr = dp.id.substring(15); if(nr.length == 1){ nr = "0"+nr; } nr="modbus.0.discreteInputs.100"+nr; setState(nr,dp.state.val); }); on({id: "0_userdata.0.Modbus.Uhrakt", change: 'any'}, function (dp) { Uhr(); });Node-Red Übersicht:

Node-Red Export:
[ { "id": "076b7140f384fc31", "type": "tab", "label": "Flow 2", "disabled": false, "info": "", "env": [] }, { "id": "43e4d53f0aa39c48", "type": "inject", "z": "076b7140f384fc31", "name": "Uhr lesen", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 220, "y": 100, "wires": [ [ "ef3b8568dabbb9a9" ] ] }, { "id": "ef3b8568dabbb9a9", "type": "modbus-getter", "z": "076b7140f384fc31", "name": "FC4 lesen", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "unitid": "1", "dataType": "InputRegister", "adr": "0", "quantity": "6", "server": "8f608791ee2c56ec", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": false, "delayOnStart": false, "startDelayTime": "", "x": 390, "y": 100, "wires": [ [ "70de74696eb9b0a9" ], [] ] }, { "id": "785e128808df5243", "type": "modbus-getter", "z": "076b7140f384fc31", "name": "HR 3 lesen", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "unitid": "1", "dataType": "HoldingRegister", "adr": "0", "quantity": "6", "server": "8f608791ee2c56ec", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": false, "delayOnStart": false, "startDelayTime": "", "x": 390, "y": 200, "wires": [ [ "a8f80e0b0790e348" ], [] ] }, { "id": "9dd6f491f92368e1", "type": "catch", "z": "076b7140f384fc31", "name": "", "scope": null, "uncaught": false, "x": 180, "y": 620, "wires": [ [ "67f50288d77837d7" ] ] }, { "id": "67f50288d77837d7", "type": "debug", "z": "076b7140f384fc31", "name": "debug", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 410, "y": 620, "wires": [] }, { "id": "8237112949c7f3af", "type": "modbus-getter", "z": "076b7140f384fc31", "name": "Discrete Inputs lesen", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "logIOActivities": false, "unitid": "1", "dataType": "Input", "adr": "0", "quantity": "16", "server": "8f608791ee2c56ec", "useIOFile": false, "ioFile": "", "useIOForPayload": false, "emptyMsgOnFail": false, "keepMsgProperties": false, "delayOnStart": false, "startDelayTime": "", "x": 400, "y": 520, "wires": [ [ "911846b7835d27b1" ], [] ] }, { "id": "afdcf980395e649d", "type": "inject", "z": "076b7140f384fc31", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 210, "y": 200, "wires": [ [ "785e128808df5243" ] ] }, { "id": "7b47194372033d3a", "type": "inject", "z": "076b7140f384fc31", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 190, "y": 380, "wires": [ [ "38dce709eb85f4cd" ] ] }, { "id": "dad7162bfc539315", "type": "inject", "z": "076b7140f384fc31", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 190, "y": 520, "wires": [ [ "8237112949c7f3af" ] ] }, { "id": "70de74696eb9b0a9", "type": "function", "z": "076b7140f384fc31", "name": "Input Register", "func": "\nnode.status({ text: msg.payload[3] + \".\" + msg.payload[4] + \".\" + msg.payload[5] + \", \" + msg.payload[0] + \":\" + msg.payload[1] + \":\" + msg.payload[2] });\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 840, "y": 80, "wires": [ [] ] }, { "id": "a8f80e0b0790e348", "type": "function", "z": "076b7140f384fc31", "name": "Holding Register", "func": "\nnode.status({ text: msg.payload[3] + \".\" + msg.payload[4] + \".\" + msg.payload[5] + \", \" + msg.payload[0] + \":\" + msg.payload[1] + \":\" + msg.payload[2] });\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 850, "y": 180, "wires": [ [] ] }, { "id": "911846b7835d27b1", "type": "function", "z": "076b7140f384fc31", "name": "Discrete Inputs", "func": "\nnode.status({ text: msg.payload[0] + \",\" + msg.payload[1] + \",\" + msg.payload[2] + \",\" + msg.payload[3] + \",\" + msg.payload[4] + \",\" + msg.payload[5] + \",\" + msg.payload[6] + \",\" + msg.payload[7] + \",\" + msg.payload[8] + \",\" + msg.payload[9] + \",\" + msg.payload[10] + \",\" + msg.payload[11] + \",\" + msg.payload[12] + \",\" + msg.payload[13] + \",\" + msg.payload[14] + \",\" + msg.payload[15] });\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 780, "y": 520, "wires": [ [] ] }, { "id": "f6bbf853944e2b8e", "type": "inject", "z": "076b7140f384fc31", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "0_userdata.0.Modbus.Uhrakt", "payload": "true", "payloadType": "bool", "x": 290, "y": 40, "wires": [ [ "2ecfa1e07d7ac8ce" ] ] }, { "id": "2ecfa1e07d7ac8ce", "type": "ioBroker out", "z": "076b7140f384fc31", "name": "", "topic": "", "ack": "false", "autoCreate": "false", "stateName": "", "role": "", "payloadType": "", "readonly": "", "stateUnit": "", "stateMin": "", "stateMax": "", "x": 540, "y": 40, "wires": [] }, { "id": "e0e451832374cbb0", "type": "modbus-write", "z": "076b7140f384fc31", "name": "FC 15 Coils schreiben", "showStatusActivities": true, "showErrors": true, "showWarnings": true, "unitid": "77", "dataType": "MCoils", "adr": "0", "quantity": "16", "server": "8f608791ee2c56ec", "emptyMsgOnFail": false, "keepMsgProperties": false, "delayOnStart": false, "startDelayTime": "", "x": 900, "y": 380, "wires": [ [], [] ] }, { "id": "2a3a2f3bd75e5784", "type": "inject", "z": "076b7140f384fc31", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "false", "payloadType": "bool", "x": 190, "y": 440, "wires": [ [ "38dce709eb85f4cd" ] ] }, { "id": "38dce709eb85f4cd", "type": "function", "z": "076b7140f384fc31", "name": "Coils erstellen", "func": "var bool = msg.payload;\nmsg.payload = [bool, !bool, bool, !bool, bool, !bool, bool, !bool, bool, !bool, bool, !bool, bool, !bool, bool, !bool]\nnode.status({ text: msg.payload[0] + \",\" + msg.payload[1] + \",\" + msg.payload[2] + \",\" + msg.payload[3] + \",\" + msg.payload[4] + \",\" + msg.payload[5] + \",\" + msg.payload[6] + \",\" + msg.payload[7] + \",\" + msg.payload[8] + \",\" + msg.payload[9] + \",\" + msg.payload[10] + \",\" + msg.payload[11] + \",\" + msg.payload[12] + \",\" + msg.payload[13] + \",\" + msg.payload[14] + \",\" + msg.payload[15] });\n\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 380, "y": 380, "wires": [ [ "e0e451832374cbb0" ] ] }, { "id": "f49483843b20ed8f", "type": "modbus-write", "z": "076b7140f384fc31", "name": "Mehrere Register schreiben", "showStatusActivities": false, "showErrors": false, "showWarnings": true, "unitid": "1", "dataType": "MHoldingRegisters", "adr": "0", "quantity": "6", "server": "8f608791ee2c56ec", "emptyMsgOnFail": false, "keepMsgProperties": false, "delayOnStart": false, "startDelayTime": "", "x": 680, "y": 300, "wires": [ [], [] ] }, { "id": "13dc061ca308d6c3", "type": "function", "z": "076b7140f384fc31", "name": "Werte erstellen", "func": "var fak = 1;\nif(msg.payload){\n fak=10;\n}\nmsg.payload = [1 * fak, 2 * fak, 3 * fak, 4 * fak, 5 * fak, 6 * fak]\nnode.status({ text: msg.payload[0] + \",\" + msg.payload[1] + \",\" + msg.payload[2] + \",\" + msg.payload[3] + \",\" + msg.payload[4] + \",\" + msg.payload[5]});\n\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 380, "y": 300, "wires": [ [ "f49483843b20ed8f" ] ] }, { "id": "9929366dd363ba55", "type": "inject", "z": "076b7140f384fc31", "name": "*10", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "true", "payloadType": "bool", "x": 190, "y": 280, "wires": [ [ "13dc061ca308d6c3" ] ] }, { "id": "6e7c45f923caa5db", "type": "inject", "z": "076b7140f384fc31", "name": "*1", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "false", "payloadType": "bool", "x": 190, "y": 320, "wires": [ [ "13dc061ca308d6c3" ] ] }, { "id": "8f608791ee2c56ec", "type": "modbus-client", "name": "", "clienttype": "tcp", "bufferCommands": true, "stateLogEnabled": false, "queueLogEnabled": true, "failureLogEnabled": true, "tcpHost": "127.0.0.1", "tcpPort": "502", "tcpType": "DEFAULT", "serialPort": "/dev/ttyUSB", "serialType": "RTU-BUFFERD", "serialBaudrate": "9600", "serialDatabits": "8", "serialStopbits": "1", "serialParity": "none", "serialConnectionDelay": "100", "serialAsciiResponseStartDelimiter": "0x3A", "unit_id": "77", "commandDelay": "1", "clientTimeout": "1000", "reconnectOnTimeout": true, "reconnectTimeout": "2000", "parallelUnitIdsAllowed": true, "showErrors": true, "showWarnings": true, "showLogs": true } ]Man kann die Uhr stellen, die Werte ablegen und wieder einlesen.
-
RE: Status 504 bei Grafana auf dem raspiposted in Grafana
@homoran Meines Wissens nach mittels
sudo apt-mark hold grafana sudo apt-mark hold influxdb2-cli sudo apt-mark hold influxdb2Rückgängig geht das mit
sudo apt-mark unhold ....Thomas Braun war schneller

-
RE: ESP32 als Wifi Access Point?posted in Microcontroller
@dieter_p Es gibt wohl Projekte, welche den ESP32 als AP oder gar Router nutzen.
Das ist aber immer langsamer als ein 16 Euro TP-Link WR841n. -
RE: Kostenpflichtige iobroker Adapterposted in ioBroker Allgemein
Moin,
ich stehe kostenpflichtigen Adaptern kritisch gegenüber.
Als ich mich damals mit KNX auseindersetzen wollte, wurde mir klar, dass das durchaus eine "Gelddruckmaschine" für die Entwickler / Hersteller / Whatever zu sein scheint. Für reines Interesse war mir das einfach zu teuer. Also verwarf ich den Gedanken an KNX wieder.
Wenn es Adapter gibt, die zukünftig Geld kosten sollen, wird es wohl darauf hinaus laufen, dass der ein oder andere die Updates abschaltet und mit der letzten lauffähigen kostenlosen Version arbeiten. Das Image von ioBroker könnte dadurch in Mitleidenschaft gezogen werden. (veraltet / unsicher, etc.)
Jetzt die andere Seite: Angenommen, ich habe in teure Hard- und Software investiert. Nennen wir sie ruhig als Beispiel KNX. Diese möchte ich, auch aufgrund meiner Fertigkeiten, in ioBroker einbinden. Also programmiere ich einen Adapter dafür. Gibt es Updates, muss ich den Adapter pflegen. Das kostet Zeit und evtl. sogar Geld für KNX Software - und Hardware. Denn der Adapter soll auch mit Aktoren umgehen können, die ich selbst nicht habe. >> Welche Möglichkeiten gibt es, um die eigenen Kosten so gering wie möglich zu halten?
- Hardware-Spenden durch Boardkollegen, die mir gewünscht integrierte Hardware zur Verfügung stellen? - Darauf bauen würde ich nicht.
- Hardware, welche mir der Hersteller kostenfrei zur Verfügung stellt, damit das Projekt hier neue Kunden akquiriert? - Die Wahrscheinlichkeit ist gering.
- Ich betrachte es als teures Hobby und kaufe alle möglichen Aktoren, womöglich in Varianten auf eigene Rechnung - Wohl kaum.
Da bleibt wohl bald nur Gewerbe anmelden und Adapter vermarkten. << Damit würde ich mich allerdings auch verpflichtet fühlen, dass alle Aktoren laufen, Updates zeitnah kommen und hier und da wohl Support geleistet werden muss.
Was, wenn ich einen Adapter programmiere, was mich Zeit, Nerven, Recherche und evtl. viel Kaffee kostet?
- Nutze ich täglich kostenlos Adapter anderer Boardkollegen?
- Ist es einer meiner Hobbies?
- Leisten evtl. Boardkollegen kostenlos Support für die Nutzer "meines" Adapters?
- Muss ich dann nicht ioBroker irgendwie an dem Gewinn beteiligen?
Lohnt es sich also, dafür evtl. ein Gewerbe anzumelden und Geld dafür zu verlangen?
Sicher - das mit dem Gewerbe wird kaum einer machen. Andererseits ist die Gefahr, dass ein zahlender "Kunde", welcher sich, aus welchen Gründen auch immer, dazu motiviert sieht, dem Finanzamt einen Tipp zu geben, nicht auszuschließen.
Latest posts made by peterfido
-
RE: Höhere Mathematik: Vorzeichen ggf. entfernenposted in Blockly
@hans_999 Ich nutze kein Blockly. In Javascript nimmt man Math.abs(wert)
-
RE: Angebot für Kiosk Appposted in Marktplatz
@smintlife
Ein Test mit go2rtc als Zwischenstation lässt die rtsp abspielen. Das nutzt jetzt nicht wirklich, da Fully die Streams von go2rtc auch abspielt. Allerdings beide mit einer gewissen Latenz, da erst go2rtc die Streams von Protect holt, und dann die Kiosk Apps von go2rtc. Da ist mir die Latenz zu groß, daher klingt Deine Kiosk-App da mit der direkten Unterstützung von rtsp vielversprechender.Ich habe eben die Kiosk App auf meinem Tablet in der Küche versucht zu installieren. Die wird für das Gerät (Android 8.1.0) nicht angeboten. Somit kann ich da nichts weiter testen. Fully läuft da in der Version vom Oktober diesen Jahres. Evtl. kannst du die Kompatibilität nach älteren Andoid-Versionen vergrößern.
-
RE: Angebot für Kiosk Appposted in Marktplatz
@smintlife Sichere Verbindung wundert mich, da ich extra von rtsps auf rtsp ändern muss. Lasse ich rtsps, dann verweigern auch VLC und Tynicam die Wiedergabe.
Bei Unifi Protect kann man nicht mehr einstellen. Die Audio-Streams sind da Standard. Welche Codecs das Galaxy Tab A7 hardwareseitig unterstützt, weiß ich nicht. Andere werden andere Tablets haben. Im Wohnzimmer / für Smarthome allgemein gehe ich eher von älteren Geräten aus. Somit bleibt da nur ein Software-Codec. Ich kann es auch nicht mit dem aktuellen Tab S8 testen, da ich dort ein anderes Google Konto nutze und somit die Kiosk App nicht mal eben kostenlos installieren kann.
-
RE: Angebot für Kiosk Appposted in Marktplatz
@smintlife Danke, klingt gut. Könnte allerdingsn icht das Problem sein. Eben getestet_ Tinycam free spielt es auch unter TCP ab. Unter Stream Infos steht:
Protokoll: RTSP over TCP Sichere Verbindung: Ja - wundert mich etwas Angezeigte Bilder: 30.0 - fps schwankt +- 0.3 fps Empfangene Bilder: 30.0 - fps. schwankt +- 0.3 fps Ausgelassene Bilder 0% Datenrate: 52 - 132 KB/s - während des kurzen Tests Auflösung: 1600x1200 Codec: H264 SWInteressanterweise gibt es auch Bild unter Protokoll HTTP.
Unter RTSP over UDP Multicast gibt es kein Bild.
Undefiniert, try to guess bringt auch ein Bild, verääte dann aber das Protokoll nicht.Im Unifi Protect kann ich drei verschiedene Qualitäten / Auflösungen einstellen, die kleineren Auflösungen bringen aber keine Abhilfe. Eine Änderung allerdings schon:
Hohe Auflösung:

Kleine Auflösung: bleibt dauerhaft animiert.

Edit: Codec Infos aus VLC:

-
RE: Angebot für Kiosk Appposted in Marktplatz
@smintlife Die neue Version ist installiert. Ich habe einen zweiten Tab eingerichtet, wo der rtsp Stream einer Unifi Kamera angezeigt werden soll.
Es zeigt nur ein schwarzes Bild mit einem kleinen Wiederholen-Kreis in der Mitte des Bildschirms an. Der selbe Link in VLC eingefügt, spielt das Video ab. Die Unterstützung von rtsp war der Grund, von Fully zu wechseln. Ich nutze einen unverschlüsselten Stream unter rtsp://IP:7447/streamid
Edit: tinycam free spielt es auch ab. Da muss ich bei Protokoll rtsp over udp angeben.
-
RE: Angebot für Kiosk Appposted in Marktplatz
@smintlife Der Code wurde jetzt freigegeben und die App habe ich installiert. Muss mich damit noch befassen und eine eigene Seite erstellen, da die Auflösung anders als bei Fully ist. Es fehlt etwas vom rechten Rand. Am Wochenende mache ich evtl. weiter. Mal schauen, wie ich die View so einrichte, dass die nächste Seite mit dem RTSP Stream läuft, während ein Datenpunkt aktiv ist.
Aufgefallen ist mir, dass es wohl kein einfaches Beenden durch von links swipen und dann Exit Knopf oder so gibt.
-
RE: Frame with weather api shows “404 page not found”posted in Visualization
@eduardo Als Adresse muss nur die URL rein, nicht der iFrame-Code drumherum. Also nur
https://api.wetteronline.de/wetterwidget?gid=10382&modeid=CW2&seourl=berlin&locationname=Berlin&lang=de -
RE: Angebot für Kiosk Appposted in Marktplatz
@smintlife Die App steht in keinen guten Sternen. Da ich auf dem Wohzimmer-Tablet ein separates Google-Konto habe, bin ich eben zu Netto, einen 5 Euro Gutschein kaufen und dann sagt der Play-Store, dass es da ein Problem mit dem Code gibt. Jetzt will Google meinen Bon und Co prüfen, was wohl mehrere Wochen dauern kann. Wie lange wird der Preis von 4,99€ stabil bleiben?
-
RE: Puppeteer Adapterposted in ioBroker Allgemein
@oliverio Ein altes Android Tablet, welches Android 4.4.2 als höchste Version bekommen hat, habe ich, bis auf eine Flot-Grafik, manuell per Node-Red gefüllt. Die Flot-Grafik lasse ich jetzt minütlich unter /dev/shm im RAM ablegen, und kann da auch prima per Node-Red dran und ans Tablet ausliefern.
Der Javascript-Adapter hat alle Parameter mit Fragezeichen? als fehlerhaft markiert. Daher habe ich alle Fragezeichen entfernt. Der Parameter quality wird nicht mehr unterstützt. Bei path muss der Dateiname mit rein, sonst gibt es eine Fehlermeldung, welche danach aussieht, dass der Ordner als Ziel genutzt wird. Ein paar Semikolon und Kommas musste ich auch noch korrigieren,
Bei der Installation musste ich chromium noch manuell nachinstallieren.
peter@iob:~$ sudo apt install chromium -yIn der Instanz noch Externen Browser anhaken und den Pfad angeben.
/usr/bin/chromiumMein aktuelles Skript:
-
RE: Alexa-Anbindung eines Dimmers mit Node-REDposted in Node-Red
@schnipsel71 Häng mal hinter Spots ein Debug-Node mit der Konfig komplettes Nachrichtenobjekt. Dann Alexa bitten, die Helligkeit auf 33 Prozent zu setzen. Die Ausgabe des Debug-Nodes hier posten.
Beispiel: Wenn ich sage, Alexa, Gartenlicht 30 Prozent, kommt Folgendes raus:

Meine Rückmeldung an Alexa sieht so aus:
