Hauptmenü

Position bei Ftui

Begonnen von saschaev, 26 November 2019, 14:11:52

Vorheriges Thema - Nächstes Thema

saschaev

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>


amenomade

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

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

saschaev

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.

amenomade

Wahrscheinlich weil Du mehrere divs mit class="gridster" hast
Siehe schon verlinkte Doku
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

saschaev

Ja stimmt,  das war es.
Hast mir schon wieder geholfen.  Danke

saschaev

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


amenomade

Python2 stellt die Arkuskosinus Funktion über den math Modul zur Verfügung (math ist immer geladen)
Die Funktion heisst acos()

Wurzel ist sqrt()
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

saschaev


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'

amenomade

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
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

saschaev


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

amenomade

#10
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
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

saschaev



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

amenomade

#12
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)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

saschaev


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


amenomade

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
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus