FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: saschaev am 26 November 2019, 14:11:52

Titel: Position bei Ftui
Beitrag von: saschaev am 26 November 2019, 14:11:52
Ich hätte da eine Frage zu Ftui .
Mit data-row=" " data-col=" "
Stellt man ja die Position ein
Aber die Positionen werden nicht eingehalte.
Wenn ich das Widget Zisterne Inhalt auf
data-row="3" data-col="1" setzte packt mir ftui es ganz oben links hinein.


<!DOCTYPE html>
<html>
<head>
<!--
/* FHEM tablet ui */
/*
* Just another dashboard for FHEM
*
         * Version: 1.3.5
* Requires: jQuery v1.7+, font-awesome, jquery.gridster, jquery.toast
* URL: https://github.com/knowthelist/fhem-tablet-ui
*
* - create a new folder named 'tablet' in /<fhem-path>/www
* - copy all files incl. sub folders into /<fhem-path>/www/tablet
* - add 'define tablet_ui HTTPSRV tablet ./www/tablet Tablet Frontend' in fhem.cfg
* - Tadaaa! A new fhem ui in http://<fhem-url>:8083/fhem/tablet/
*/
-->
<title>FHEM-Tablet-UI</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,9 user-scalable=no" />
<meta name="widget_base_width" content="116">
<meta name="widget_base_height" content="131">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="longpoll_type" content="websocket">
    <meta name="longpoll" content="1">
    <meta name="toast" content="1">
    <meta name='debug' content='0'>
<meta name="debug" content="0"> <!-- 1=output to console;0=not output -->

<link rel="stylesheet" href="/fhem/tablet/lib/jquery.gridster.min.css" />
<link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui.css" />
<link rel="stylesheet" href="/fhem/tablet/lib/font-awesome.min.css" />
<link rel="stylesheet" href="/fhem/tablet/lib/jquery.toast.min.css" />
<link rel="stylesheet" href="/fhem/tablet/lib/powerange.min.css" />
<link rel="stylesheet" href="/fhem/tablet/lib/openautomation.css" />


<script type="text/javascript" src="/fhem/pgm2/jquery.min.js"></script>
        <script type="text/javascript" src="/fhem/tablet/lib/jquery.knob.mod.min.js"></script>
<script type="text/javascript" src="/fhem/tablet/lib/jquery.toast.min.js"></script>
<script type="text/javascript" src="/fhem/tablet/lib/jquery.circlemenu.js"></script>
<script type="text/javascript" src="/fhem/tablet/lib/powerange.min.js"></script>
<script type="text/javascript" src="/fhem/tablet/lib/jquery.gridster.min.js"></script>
        <script type="text/javascript" src="/fhem/tablet/lib/fa-multi-button.min.js"></script>
<script type="text/javascript" src="/fhem/tablet/js/fhem-tablet-ui.js"></script>

<!-- Enable this lines for usage with WebViewControl --><!-- -->
<script type="text/javascript" src="/fhem/pgm2/cordova-2.3.0.js"></script>
<script type="text/javascript" src="/fhem/js/webviewcontrol.js"></script>
<script type="text/javascript">var wvcDevices = {'12345': 'Tablet'}; var wvcUserCssFile="webviewcontrol.css"</script>
<!-- End for WebViewControl -->

</head>
<body>

<!-- available class: container,left,right,cell,narrow,darker,big,bigger,small,thin,large,wider -->
<!-- available data-type: symbol,dimmer,homestatus,label,push,sonder ,switch,thermostat,volume,weather -->





<!-- ============ Teichtemeratur ============= -->
<!-- ====================================== -->

<div class="gridster">
<ul>
<li data-row="1" data-col="1" data-sizex="1" data-sizey="1">
        <header>Teich</header>
<div data-device="Teich"
<div data-type="label"  data-get="temperature"
data-unit="C"
data-fix="1"
          class="cell tall">
</div>
</li>

<!-- ============ Schuppentemeratur=============->
<!-- ====================================== -->

<div class="gridster">
<ul>
<li data-row="1" data-col="2" data-sizex="1" data-sizey="1">
        <header>Schuppen</header>
<div data-device="Schuppen"
<div data-type="label"  data-get="temperature"
data-unit="C"
data-fix="1"
          class="cell tall">
</div>
</li>


<!-- ============ Aussentemeratur=============->
<!-- ====================================== -->

<div class="gridster">
<ul>
</li><li data-row="1" data-col="3" data-sizex="1" data-sizey="1">
        <header>Aussentemperatur</header>
<div data-device="Aussentemperatur"
<div data-type="label"  data-get="temperature"
data-unit="C"
data-fix="1"
    class="cell tall">
    </div>
</li>



<!-- ============= Temperatur Verlauf ================ -->
<!-- ====================================== -->
<li data-row="5" data-col="1" data-sizex="3" data-sizey="1">
<header>Temperaturen</header>
<div data-type="svgplot" data-device="SVG_Teich_Log_1" data-gplotfile="SVG_Teich_Log_1" data-logdevice="Teich_Log" data-logfile="CURRENT" data-refresh="300">
</div>
</li>


<!-- ============= Uhr/Datum ================ -->
<!-- ====================================== -->


<li data-row="1" data-col="4" data-sizex="2" data-sizey="1">

<header>Uhrzeit</header>
<div data-type="clock"
data-format="H:i:s"
data-interval="1000"
class="blue great thin" style="margin-top: -5px">
</div>
<div data-type="clock"
data-format="l, d.m.Y"
data-shortday-length="3"
data-interval="1000"
class="">
</div>
</li>
<!-- ============ Füttern=============->
<!-- ====================================== -->

<li data-row="3" data-col="4" data-sizex="2" data-sizey="1">

<div data-type="label" class="cell">Füttern</div>
            <div data-type="push"
data-icon="fa-power-off"
                 data-device="Fuettern "
                 data-on-color="black"
                 data-off-color="#808080"
                 data-on-background-color="cornflowerblue"
                 data-off-background-color="#3D4C66"
                 class="bigger">

        </div>
    </li>

<!-- ============ Zisterne Inhalt=============->
<!-- ====================================== -->

<li data-row="6" data-col="1" data-sizex="2" data-sizey="1">


<div data-type="label" class="cell">Abfrage Zisterne Inhalt</div>
            <div data-type="push"
data-icon="fa-power-off"
                 data-device="WasserstandZisterne "
                 data-on-color="black"
                 data-off-color="#808080"
                 data-on-background-color="cornflowerblue"
                 data-off-background-color="#3D4C66"
class="bigger">
</div>
    </li>

<!-- ============ Zisterne Inhalt Anzeige=============->
<!-- ====================================== -->

<li data-row="3" data-col="3" data-sizex="1" data-sizey="1">
<header>Zisterne Inhalt</header>
       
<div class="bigger top-space-2x ">
<div data-type="label"
          data-device="Zisterne_Inhalt"
  data-unit="cm">
         

</div>
</li>



</body>
</html>
</li>

Titel: Antw:Position bei Ftui
Beitrag von: amenomade am 26 November 2019, 16:27:10
FTUI mit gridster versucht, die verschiedene Kacheln, optimal zu platzieren. Wenn Platz fehlt, verschiebt er. Und genauso wenn etwas oben frei ist, nimmt er diesen Platz. Man kann auch die Kacheln per Drag & Drop umorganisieren.

Mit meta gridster_disable kannst Du das ein bisschen beeinflüssen.
https://wiki.fhem.de/wiki/FTUI_Layout_Gridster

Titel: Antw:Position bei Ftui
Beitrag von: saschaev am 26 November 2019, 16:47:23
Nein das habe ich noch nicht probiert. Aber wie kann es sein wenn ich Position 3/1 auswähle er mir es bei 1/1 hinlegt und was anderes verdeckt.
Titel: Antw:Position bei Ftui
Beitrag von: amenomade am 26 November 2019, 17:10:31
Wahrscheinlich weil Du mehrere divs mit class="gridster" hast
Siehe schon verlinkte Doku
Titel: Antw:Position bei Ftui
Beitrag von: saschaev am 26 November 2019, 17:28:06
Ja stimmt,  das war es.
Hast mir schon wieder geholfen.  Danke
Titel: Antw:Position bei Ftui
Beitrag von: saschaev am 26 November 2019, 18:18:07
Vieleicht kannst du mir ja dabei auch helfen.....
Möchte eine Formel zur Berechnung des Zisterneninhaltes in das Python Skript schreiben.
7,5^2*20*(ARCCOS((7,5-Fuelstand)/7,5)-(7,5-Fuelstand)*WURZEL(2*7,5*Fuelstand -Fuelstand^2)/7,5^2)

So bekomme ich den Fehler


    Liter =   7,5^2*20*(ARCCOS((7,5-Fuelstand)/7,5)-(7,5-Fuelstand)*WURZEL(2*7,5*Fuelstand -Fuelstand^2)/7,5^2)
NameError: global name 'ARCCOS' is not defined

Titel: Antw:Position bei Ftui
Beitrag von: amenomade am 26 November 2019, 18:25:28
Python2 stellt die Arkuskosinus Funktion über den math Modul zur Verfügung (math ist immer geladen)
Die Funktion heisst acos()

Wurzel ist sqrt()
Titel: Antw:Position bei Ftui
Beitrag von: saschaev am 26 November 2019, 19:12:41

import math
      Liter =  7,5^2*20*(math.acos((7,5-Fuelstand)/7,5)-(7,5-Fuelstand)*math.sqrt(2*7,5*Fuelstand -Fuelstand^2)/7,5^2)

Fehler

    Liter =  7,5^2*20*(math.acos((7,5-Fuelstand)/7,5)-(7,5-Fuelstand)*math.sqrt(2*7,5*Fuelstand -Fuelstand^2)/7,5^2)
TypeError: unsupported operand type(s) for /: 'tuple' and 'int'
Titel: Antw:Position bei Ftui
Beitrag von: amenomade am 26 November 2019, 19:47:46
7.5 statt 7,5
** statt ^

Das hättest Du auch selbst finden können.... Ich helfe gerne, aber bitte nicht für Sachen, die man in einem Augenblick mit Google finden kann. Du kannst auch python Dokus lesen
Titel: Antw:Position bei Ftui
Beitrag von: saschaev am 26 November 2019, 19:57:51

import math
      Liter =  7.5^2*20*(math.acos((7.5-Fuelstand)/7.5)-(7.5-Fuelstand)*math.sqrt(2*7.5*Fuelstand-Fuelstand^2)/7.5^2)


Ja hast recht.  Hatte ich auch schon gefunden.  Aber jetzt das

Traceback (most recent call last):
  File "/home/pi/zisterne.py", line 125, in <module>
    main()
  File "/home/pi/zisterne.py", line 87, in main
    Liter =  7.5^2*20*(math.acos((7.5-Fuelstand)/7.5)-(7.5-Fuelstand)*math.sqrt(2*7.5*Fuelstand-Fuelstand^2)/7.5^2)
ValueError: math domain error
Titel: Antw:Position bei Ftui
Beitrag von: amenomade am 26 November 2019, 20:27:41
Hast Du alle Korrekturen gemacht, die ich geschrieben habe? Das waren nur 2 Zeilen...................................; :-\ :-X

Die math domain error kriegst Du wenn Du z.B. acos (wert) mit wert > 1 kalkulieren willst, oder sqrt von negativen Werte
Titel: Antw:Position bei Ftui
Beitrag von: saschaev am 26 November 2019, 20:59:16


import cmath
      Liter =  7.5**2*20*(cmath.acos((7.5-Fuelstand)/7.5)-(7.5-Fuelstand)*cmath.sqrt(2*7.5*Fuelstand-Fuelstand**2)/7.5**2)
      Zeit = time.time()

      ZeitStempel = datetime.datetime.fromtimestamp(Zeit).strftime('%Y-%m-%d_%H:%M:%S')

      print (ZeitStempel),("Zisterne Fuelhoehe: %.1f cm" % Fuelstand),("Liter: %.0f l" % Liter)


Damit läuft das Skript durch,  aber mit Fehler

019-11-26_20:40:42 Zisterne Fuelhoehe: 180.7 cm
Traceback (most recent call last):
  File "/home/pi/zisterne.py", line 125, in <module>
    main()
  File "/home/pi/zisterne.py", line 92, in main
    print (ZeitStempel),("Zisterne Fuelhoehe: %.1f cm" % Fuelstand),("Liter: %.0f l" % Liter)
TypeError: float argument required, not complex
Titel: Antw:Position bei Ftui
Beitrag von: amenomade am 26 November 2019, 21:07:07
Weil Du math durch cmath ersetzt hast

cmath ist für https://de.wikipedia.org/wiki/Komplexe_Zahl, was hier total Unsinn ist
>>> Liter =  7.5**2*20*(cmath.acos((7.5-Fuelstand)/7.5)-(7.5-Fuelstand)*cmath.sqrt(2*7.5*Fuelstand-Fuelstand**2)/7.5**2)
>>> print Liter
(3534.29173529+595090.78626j)
Titel: Antw:Position bei Ftui
Beitrag von: saschaev am 26 November 2019, 21:21:31

import math
      Liter =  7.5**2*20*(math.acos((7.5-Fuelstand)/7.5)-(7.5-Fuelstand)*math.sqrt(2*7.5*Fuelstand-Fuelstand**2)/7.5**2)



Bekomme ich aber wieder diesen Fehler


Traceback (most recent call last):
  File "/home/pi/zisterne.py", line 125, in <module>
    main()
  File "/home/pi/zisterne.py", line 87, in main
    Liter =  7.5**2*20*(math.acos((7.5-Fuelstand)/7.5)-(7.5-Fuelstand)*math.sqrt(2*7.5*Fuelstand-Fuelstand**2)/7.5**2)
ValueError: math domain error

Titel: Antw:Position bei Ftui
Beitrag von: amenomade am 26 November 2019, 21:41:39
Ja, wie gesagt, weil deine Formel versucht arccos (wert) zu kalkulieren, wo wert nicht zwischen -1 und 1

Vermutlich ein Einheitsproblem:

V=r^2*L*(ARCCOS((r-t)/r)-(r-t)*WURZEL(2*r*t-t^2)/r^2)

r=7.5 ... Meter?
L = 20 ... Meter?
t = Fuelstand = HIER MUSS DANN AUCH METER = 1.807 Meter und nicht 180.7

Alle müssen die gleiche Einheit haben, sonst ist die Kalkulation entweder falsch oder... gar nicht machbar
Titel: Antw:Position bei Ftui
Beitrag von: saschaev am 26 November 2019, 21:49:15
Ja stimmt, ist ein Denkfehler von mir gewesen.
Die eingetragenen Werte sin in dcm um auf Liter zu kommen
Titel: Antw:Position bei Ftui
Beitrag von: saschaev am 27 November 2019, 15:47:59
Damit hat es geklappt


import math
      Liter = 7.5**2*20*(math.acos((7.5-(Fuelstand/10))/7.5)-(7.5-(Fuelstand/10))*math.sqrt(2*7.5*(Fuelstand/10)-(Fuelstand/10)**2)/7.5**2)