FB.Switch (Web-App-Mod)

Euer Thema passt nirgendwo anders rein? Dann gehört es hier hin!

Update Jessie auf Stretch —> erfolgreich

Beitragvon Macmissionar » Mi 27. Dez 2017, 11:50

Hallo zusammen,

über die Feiertage habe ich jetzt mal Zeit und Mut gehabt, meinen Pi als FB.Switch-Server upzudaten. Habe mich mal in die Materie eingelesen und weiß nun mehr über den Namen Jessie usw. Irgendwo hatte ich was gelesen, daß jemand Streß hatte beim Update von Jessie auf die (seit Sommer 2017) aktuelle Version Stretch.

Jedenfalls habe ich meinen Pi ganz heruntergefahren und die Karte im MacBook richtig "gebackuped", auch manuell mittels sudo dd if=/dev/disk2 of=~/Documents/raspberrypi.dmg.

Danach hatte ich ein 15,93 GB großes DMG meines Pi-Herzens (16 GB Karte); welches ich – soviel nehme ich vorweg, glücklicher Weise nicht brauche.

Nach dieser Anleitung: https://www.elektronik-kompendium.de/sites/raspberry-pi/2204031.htm bin ich dann vorgegangen.

Jetzt, nach gut einer Stunde, läuft alles weiterhin problemlos. Siri, manuell usw. Ich weiß also nicht, ob das überhaupt für was gut war, aber wenn es auch jemand macht, um zukunftssicher zu sein – Stretch läuft auch mit Homebridge und allen Plugins problemlos.
Macmissionar
 
Beiträge: 47
Registriert: Mo 30. Mai 2016, 23:56

Re: FB.Switch (Web-App-Mod)

Beitragvon smoker » Mi 27. Dez 2017, 19:35

Gut zu wissen :D
Danke für den Test....
smoker
 
Beiträge: 72
Registriert: Mo 22. Apr 2013, 16:16

Re: FB.Switch (Web-App-Mod)

Beitragvon Pischi » Mo 1. Jan 2018, 21:11

Macmissionar hat geschrieben:

Ein altes Kernproblem bleibt jedoch: Wenn man zum Beispiel sagt, alle Geräte im Wohnzimmer aus, dann macht Siri das mittels homebridge sehr zuverlässig – innerhalb kürzester Zeit werden alle Geräte geschaltet. Und hier liegt das Problem: Immer, immer wieder wird leider die Config zerschossen, da FB.Switch da einfach unsauber arbeitet und sich vermutlich Lese- und Schreibvorgänge gegenseitig überholen.

Dann landen immer wieder unsaubere Schmierzeichen in der config und auch wenn homebridge dann noch läuft, funzt gar nichts mehr, da FB.Switch selbst nicht mehr arbeiten kann. Beim Aufruf erscheint dann nur eine einzige Zeile "Kann Konfiguration nicht lesen …".

Meine Idee, da hapert es aber dann an php und ich stelle das in der Hoffnung hier rein, daß sich mr.berni dem annimmt, ist folgende:

In der Hauptseite wird, wannimmer ein Aufruf vorgenommen wird (ob vom Timer, von den Aktionen, manuell oder von außen, sprich Siri, egal, immer), nicht einfach an den Execute-Handler übergeben, sondern erst dann, wenn ein globaler "ichbinbeschäftigt"-Marker false ist.

So, wenn er false ist, dann wird an den ausführenden Teil übergeben. Das allererste, was der macht, ist den marker auf true zu setzen, und am Ende, unmittelbar vor seiner Rückgabe, auf false.

In Pseudo-Code so:

Code: Alles auswählen
idle()
  ...
  if geraetschalten is true then
  repeat
    if beschäftigt is false then
      my action(device)
      exit repeat
      delay 0,5s
     end if
   end repeat
   end if
end idle

action(device)
  set beschaeftigt to true
  ...
  #geräte schalten
  ...
  set beschäftigt to false
end action


Dadurch wird nun, falls eine Schalttirade auf FB.Switch einprasselt, er immer wieder in der Hauptschleife erst dann an den Ausführer übergeben, bis der intern fertig ist.

Ich habe dieses Konzept in einigen meiner Programm drin, um eben die Threadsicherheit zu gewähren. Das klappt dort auch sehr zuverlässig. Wäre schön, wenn das umgesetzt werden würde. Denn dann bräuchte ich folgendes Hilfsscript "Config reparieren", welches ich gut erreichbar in meinem Netzwerk auf zwei Macs liegen habe, nicht mehr:

Code: Alles auswählen
tell application "Terminal"
   do script ""
   delay 0.7
   my execCmd("ssh benutzer@192.168.xxx.xxx", 1)
   my execCmd("kennwort", 1.7)
   my execCmd("cp '/var/www/html/fb.switch/data/config SIK.xml' '/var/www/html/fb.switch/data/config.xml'", 1)
   my execCmd("sudo chmod -R 777 /var/www/html/fb.switch/data/", 1)
   my execCmd("logout", 0.5)
   my execCmd("logout", 0)
end tell

on execCmd(cmd, wait)
   tell application "System Events"
      tell application process "Terminal"
         set frontmost to true
         keystroke cmd
         keystroke return
      end tell
   end tell
   delay wait
end execCmd


Das Script ist also etwas aufgebohrt und muß nun das Terminal ansprechen, da der chmod-Befehl (der war auf meiner QNAP nicht nötig) sonst nicht abgesetzt werden kann.


Hallo und ein frohes neues Jahr,

wurde zu dem Problem der zerschossenen Confi schon etwas gefunden ?
Ich habe leider auch öfters mal das Problem, wenn ich eine Szene über Siri oder die Home APP auslöse,
das sich die Config zerschießt oder mache ich irgend wo noch einen grundlegenden Fehler?
im Anhang habe ich mal eine zerschossene Config angehängt, die Fehlermeldung gehört zu der defekten Config.
Kann die Konfiguration (/var/www/html/FB.Switch-dev/data/config.xml) nicht laden! Opening and ending tag mismatch: iid line 268 and device Opening and ending tag mismatch: id line 268 and devices Opening and ending tag mismatch: device line 267 and config Premature end of data in tag devices line 45 Premature end of data in tag config line 2

Gruß
Pischi
 
Beiträge: 12
Registriert: Do 30. Nov 2017, 22:55

Re: FB.Switch (Web-App-Mod)

Beitragvon Pischi » Mo 1. Jan 2018, 21:38

Hier noch die Config.
Dateianhänge
config.xml
defekte Config
(11.64 KiB) 22-mal heruntergeladen
Pischi
 
Beiträge: 12
Registriert: Do 30. Nov 2017, 22:55

Re: FB.Switch (Web-App-Mod)

Beitragvon Macmissionar » Mi 3. Jan 2018, 00:38

Hallo Pischi,

zu dem Problem hatte sich mrberni damals geäußert im Sinne von, daß eine Threadsicherheit sinnvoll wäre und er sich Gedanken macht; konkret geschehen ist da glaube ich bislang nichts; auch der Farbslider steht noch auf der Wunschliste.

Jedoch muß ich sagen, daß sich mein Problem enorm verringert (aufgelöst will nicht sagen, wobei es schon ewig nicht mehr aufgetreten ist) hat, seitdem ich komplett auf den Raspberry Pi umgestiegen bin. Also wo das früher immer auftrat, da lief zwar Homebridge auf dem Pi, FB.Switch selbst jedoch auf meinem inzwischen doch betagten, aber zuverlässigen QNAP NAS T412. Seit ich umgezogen bin, kann ich auch viel schneller schalten.

Mein Pi, ein Zero W, ist ohnehin viel schneller – und die Schreibzugriffe auch, vielleicht liegt es daran. Was verwendest Du denn für ein System?
Macmissionar
 
Beiträge: 47
Registriert: Mo 30. Mai 2016, 23:56

Re: FB.Switch (Web-App-Mod)

Beitragvon mrberni » Mi 3. Jan 2018, 10:43

Sehr komisch... Da steht in der config ein "<id>35<iid>" statt ein "<id>35</id>". Vermute das wird das (oder mindestens ein) Problem sein.

Vermute da schreiben zwei Threads oder so gleichzeitig an der Datei rum. Aber wie gesagt ich hab das bei mir zuhause (4 Touch-Devices in der Wohnung verteilt auf denen FB.Switch als "Schalter" läuft + diverse Timer) noch nie hingekriegt. Da werden auch mal Timer- und manuelle Aktionen gleichzeitig gemacht. Danach stimmt dann der gespeicherte Devicestatus nicht immer, aber kaputt war da noch nie was.

Zur Threadsicherheit hatte ich mir mal Gedanken gemacht, aber der Aufwand das umzusetzen war dann (im Verhältnis zu meiner verfügbaren Freizeit) doch zu groß... :(

Gruß
Heute Morgen gab es Kaffee mit Red Bull anstatt Wasser. Nach 10 Minuten auf der Autobahn fiel mir auf, dass ich mein Auto vergessen habe… :shock:

Meine WebApp-Mod: FB.Switch
MiLight-WiFi-Bridge auf einem ESP8266
Benutzeravatar
mrberni
 
Beiträge: 266
Registriert: Fr 5. Jun 2015, 12:42

Re: FB.Switch (Web-App-Mod)

Beitragvon onkeldave » Mi 3. Jan 2018, 15:30

Moin,
ich weiß nicht genau, ob es zum Thema passt:
Auf meinem Qnap NAS gibt es die Möglichkeit, das man nicht zulässt, das eine Datei von zwei Benutzern mit Schreibrechten geöffnet wird. Das nennt sich OPLOCKS oder so, kann aber sein, das es nur für Samba Freigaben gilt...
Aber ich würde auch immer dazu raten, das Webserver für FB.switch auf einem Pi zu installieren.
Denken ist wie googlen, nur krasser!
---------------------------------------------------
Banana Pi mit SSD
FB.Switch auf Apache2
433MHz Sender
Brennenstuhl Gateway
1-Wire Temperatursensoren
4-Kanal Relais Karte über GPIO
onkeldave
 
Beiträge: 381
Registriert: Sa 23. Aug 2014, 14:04

Re: FB.Switch (Web-App-Mod)

Beitragvon Pischi » Mi 3. Jan 2018, 16:12

Hallo ,
es ist alles zusammen auf dem PI installiert und läuft auch eigentlich nahe zu perfekt.
Ich bekomme das mit dem zerschießen der Config auch nicht nachgestellt :? wenn ich verschiedene Schalter
hintereinander schalte oder eine in Home erstellte Szene auslöse funktioniert es danach meistens auch weiter.
Wenn die Config einen Fehler wie z.B.
"<id>35<iid>" statt ein "<id>35</id>" oder " <sendCommandsOnlyOnc>>false</sendCommandsOnlyOnce> statt <sendCommandsOnlyOnce>false</sendCommandsOnlyOnce>
wurden die betreffenden Schalter nicht einmal angesprochen.

ich habe das ganze system auch schon komplett neu gemacht da ich dachte irgend etwas kaputtgespielt zu haben :D
Pischi
 
Beiträge: 12
Registriert: Do 30. Nov 2017, 22:55

PHP7-Problem?

Beitragvon Macmissionar » Mi 10. Jan 2018, 23:17

Hallo mrberni,

ich habe jetzt auf meinem Pi PHP7 installiert. Nun habe ich das Problem, daß die Temperaturabfrage nicht mehr geht; er meldet beim Laden im gelben Feld "Indoor-Outdoor-Temp-Check FAILED!". Wenn ich den Außensensor aktiviere (da ich keinen habe, habe ich den von innen genommen), kommt die Meldung "FBdect200 Energy-Data-Check FAILED!"

Es scheint wirklich ein Anzeigeproblem der Oberfläche zu sein, denn Siri kann mir die Temperatur weiterhin nennen. Also scheint die Schnittstelle zu Fritz zu funktionieren.

Es ist unmittelbar nach der PHP7-Installation aufgetreten. Ich habe die Version PHP Version 7.0.27-0+deb9u1 drauf und die neueste dev-Version von FB.Switch, eben vor ca. 10 Minuten geladen.

Danke für eine Hilfe. Sonst müßte ich irgendwie wieder php 5.6 organisieren.
Macmissionar
 
Beiträge: 47
Registriert: Mo 30. Mai 2016, 23:56

Re: FB.Switch (Web-App-Mod)

Beitragvon Macmissionar » Mi 10. Jan 2018, 23:41

Ergänzung:

Habe im Threadverlauf gelesen, daß es schon mal einer mit Problemen gab. Ich habe inzwischen mit sudo apt-get install php-curl erfolgreich php-curl nachinstalliert, trotzdem kommt noch die Meldung "FBdect200 Energy-Data-Check FAILED!"
Macmissionar
 
Beiträge: 47
Registriert: Mo 30. Mai 2016, 23:56

VorherigeNächste

Zurück zu Allgemeine Diskussion

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast