Neues Modul: BOTVAC (für Neato BotVac Connected)

Begonnen von vuffiraa, 02 April 2016, 22:12:29

Vorheriges Thema - Nächstes Thema

vuffiraa

Zitat von: the ratman am 06 Juni 2019, 17:30:04
servus,

könntest du bitte die hardgecodeten styles bei den weblink stats raus machen? (hoffe, die sind von dir und nicht vom weblinks-autor)
ist ein horror, diese weblinks brauchbar an mein (und warscheinlich jedes andere) design anzupassen. nicht mal !important hilf da weiter *g*.

im speziellen gehts da um<style> .botvac tbody {border-top: 1px solid gray; border-bottom: 1px solid gray;} .botvac th, .botvac td {text-align: center; padding-right: 1em;} .botvac caption {text-align: left; padding-bottom: 1em; margin-bottom: 1em;}</style>und<meta charset="utf-8">ist wohl auch ned wirklich nötig.

Die Syles kommen tatsächlich aus dem Modul. Damit passt die Tabelle bei mir ins Design, was das mitgelieferte f18 ist.

Gibt es einen empfohlenen Weg für so einen Fall? Oder sollte man mit den vorhandenen Möglichkeiten auskommen?
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

the ratman

empfohlen weiß ich ned, aber eigentlich kann ja jeder in sein css seine styles eintragen.
das gemeine in dem fall ist ja eigentlich nur, dass sich die styles aus dem modul nicht überschreiben lassen, nicht mal mit "!importent". so kriegst du z.b. das bold für überschriften nie raus

wenns nach mir ginge, würd ich ALLE styles aus modulen raus werfen. das müsste dann sowieso alles durch die eigenen styles abgedeckt sein.
→do↑p!dnʇs↓shit←

Ellert

Zitat von: the ratman am 07 Juni 2019, 11:50:17
empfohlen weiß ich ned, aber eigentlich kann ja jeder in sein css seine styles eintragen.
das gemeine in dem fall ist ja eigentlich nur, dass sich die styles aus dem modul nicht überschreiben lassen, nicht mal mit "!importent". so kriegst du z.b. das bold für überschriften nie raus

wenns nach mir ginge, würd ich ALLE styles aus modulen raus werfen. das müsste dann sowieso alles durch die eigenen styles abgedeckt sein.
Du könntest das, was get liefert nachbearbeiten, z.B. die Styles ersetzen.
$html =~ s/<style>.*<\/style>/dein style/g;
weblink bietet die Möglichkeit Perlcode auszuführen und HTML zurückzugeben.

the ratman

wow - zuerst könnte ich fragen, was css überhaupt in modulen zu suchen hat, wenns doch eh für jedes dumme style in fhem ein eigenes css gibt, dass du dann auch noch mit css in anderen modulen (z.b. readingsgroup, ...) erweitern/ergänzen/überschreiben kannst.

ich mein: regex is ja echt super, aber man muß es auch ned für jeden furz verwenden. schon gar ned, wenn leute eh nur ihre "fleißaufgabe" rausnehmen müssten.
und wenn wir schon dabei sind: das hier ist in sachen css eh schon jammern auf hohem niveau - da gibts schlimmere module ... am aller schlimmsten die detailansicht vom floorplan. das ding kriegst du nicht gebändigt per eigenem css. gut, is mir egal, weil die ausgabe des fp passt.
→do↑p!dnʇs↓shit←

vuffiraa

Ich habe gerade eine neue Version eingecheckt. Dabei sind die Änderungsvorschläge von Eilert übernommen und der Wunsch vom ratman.
Also:
- neuer pollingMode
- preferences Service wird abgerufen, falls unterstützt. Dabei habe ich die Parameter *ChangeReminderInterval so angepasst, dass sie nicht die Minuten des Intervals beinhalten, sondern direkt die Monate. Das sollte übersichtlicher sein ;-)
- die Trennung der Boundaries kann durch jegliche Whitespaces vorgenommen werden, z.B. Leerzeichen, Zeilenumbruch oder Tabulator.
- bei der Statistikaufbereitung wurde das style-Element entfernt. Die Tabelle wurde daher leicht geändert, damit es insgesamt (hoffentlich) annehmbar aussieht.

Schöne Pfingsten!
VuffiRaa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

the ratman

→do↑p!dnʇs↓shit←

Ellert

#576
Zitat von: vuffiraa am 09 Juni 2019, 21:14:54
Ich habe gerade eine neue Version eingecheckt. Dabei sind die Änderungsvorschläge von Eilert übernommen und der Wunsch vom ratman.
Also:
- neuer pollingMode
- preferences Service wird abgerufen, falls unterstützt. Dabei habe ich die Parameter *ChangeReminderInterval so angepasst, dass sie nicht die Minuten des Intervals beinhalten, sondern direkt die Monate. Das sollte übersichtlicher sein ;-)
- die Trennung der Boundaries kann durch jegliche Whitespaces vorgenommen werden, z.B. Leerzeichen, Zeilenumbruch oder Tabulator.
- bei der Statistikaufbereitung wurde das style-Element entfernt. Die Tabelle wurde daher leicht geändert, damit es insgesamt (hoffentlich) annehmbar aussieht.

Schöne Pfingsten!
VuffiRaa
Danke fürs einbauen.

Es hat sich ein Fehler eingeschlichen, bei der Konstruktion des Setters robotSounds.

robotSounds erscheint nicht in der Liste der Setter für preferences:basic-2, da 'basic-2' !~ /()|(basic-1)/ nicht wahr wird, denn "keinZeichen" matcht immer.

Die Hilfe ist nicht ganz stimmig, die Werte lauten jetzt on und off.

set <name> pollingMode <1|0>
set polling on by 1 (default) or off by 0 like attribut disable.

set <name> robotSounds <true|false>
set sounds on by true or off false.

vuffiraa

Zitat von: Ellert am 10 Juni 2019, 08:32:54
Danke fürs einbauen.

Es hat sich ein Fehler eingeschlichen, bei der Konstruktion des Setters robotSounds.

robotSounds erscheint nicht in der Liste der Setter für preferences:basic-2, da 'basic-2' !~ /()|(basic-1)/ nicht wahr wird, denn "keinZeichen" matcht immer.

Die Hilfe ist nicht ganz stimmig, die Werte lauten jetzt on und off.

set <name> pollingMode <1|0>
set polling on by 1 (default) or off by 0 like attribut disable.

set <name> robotSounds <true|false>
set sounds on by true or off false.

Ok, Fehler sollten jetzt behoben sein...
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Ellert

Zitat von: vuffiraa am 10 Juni 2019, 14:15:08
Ok, Fehler sollten jetzt behoben sein...
Noch nicht ganz.

Gültige Werte für robotSounds in der API sind true und false. Den Setter hast Du auf on und off geändert.

Es scheint kein Mapping von on/off nach true/false zu geben, denn das Setzen von on/off kommt in der API nicht als true/false an.

Wenn ich den $usage .= " robotSounds:on,off" auf $usage .= " robotSounds:true,false" ändere dann funktioniert es.

vuffiraa

Zitat von: Ellert am 10 Juni 2019, 18:26:41
Noch nicht ganz.

Gültige Werte für robotSounds in der API sind true und false. Den Setter hast Du auf on und off geändert.

Es scheint kein Mapping von on/off nach true/false zu geben, denn das Setzen von on/off kommt in der API nicht als true/false an.

Wenn ich den $usage .= " robotSounds:on,off" auf $usage .= " robotSounds:true,false" ändere dann funktioniert es.

Was man halt nicht selber prüfen kann... Was steht den eigentlich im Reading, wenn "Preferences" abgefragt werden? True/False oder 1/0?
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Ellert

Im Reading pref_robotSounds steht true und false kleingeschrieben nach enem statusRequest.

vuffiraa

Hab das Setzen der Werte angepasst. Im Reading steht jetzt, so wie bei anderen Werten 0/1 und über tragen wird true/false.

Ich hoffe mal, jetzt klappt es.
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

Ellert

Zitat von: vuffiraa am 10 Juni 2019, 19:47:29
Hab das Setzen der Werte angepasst. Im Reading steht jetzt, so wie bei anderen Werten 0/1 und über tragen wird true/false.

Ich hoffe mal, jetzt klappt es.
Ja, jetzt klappt es, set on/off im Modul wird in der App entsprechend angezeigt und eine Änderung der Toneinstellung in der App wird auch ins Reading des BOTVAC-Gerätes übernommen.

Vielen Dank noch mal.

abc2006

Gude,
seit langem hab ich mal wieder Zeit für FHEM.
Dabei ist mir doch glatt aufgefallen, dass mein NEATO zwar behauptet, er mache MAP-cleaning, aber trotz aktivierter NoGo-Linien diese ignoriert.
Die letzten Tage hatte ich das Problem, dass der Robo bei Map-Reinigung (egal ob durch FHEM oder die App aktiviert) nur einen halben Meter vorgefahren ist, dann keine Lust mehr hatte und zurück zur Ladestation ist.
Daraufhin habe ich die Karte gelöscht und eine neue anlegen lassen. In dieser habe ich dann die NoGo-Linien neu eingezeichnet. Heute morgen bei der Reinigung hat er diese dann auch beachtet (bis er sich im Bad eingesperrt hat xD), vielleicht kam er auch nur einfach nicht dazu, dort zu saugen, wo er nicht darf. Gerade eben habe ich ihn dann noch einmal losgeschickt, und obwohl er behauptet "map cleaning" ignoriert er die Linien vollständig.
Habe gerade gesehen, dass ich verbose 5 eingeschaltet habe, wenn also bedarf an irgend etwas aus dem Log besteht, kann ich das gerne rausgreppen...
Oder liegt eine Fehlbedienung vor?
Braucht Ihr noch Infos zur Einschätzung?
Edit: die Karte mit den eingezeichneten Linien kann ich senden, sobald der robo fertig ist ... evtl wird auch ersichtlich, dass er die Linien ignoriert hat...
Danke für die Hilfe, das Modul ist echt klasse!
Stephan


Internals:
   CHANGED   
   DEF        abc2006@gmx.de neato 300
   EMAIL      abc2006@gmx.de
   FUUID      5c844717-f33f-4040-2466-da78b7ebbefda099
   INTERVAL   300
   NAME       NEATO_Nippi
   NR         524
   SERVICES   houseCleaning:basic-4, manualCleaning:basic-1, findMe:basic-1, generalInfo:basic-1, IECTest:advanced-1, schedule:basic-2, spotCleaning:basic-3, wifi:basic-1, logCopy:basic-1, maps:basic-2, softwareUpdate:basic-1, preferences:basic-2
   STATE      Map cleaning
   TYPE       BOTVAC
   VENDOR     neato
   HELPER:
   OLDREADINGS:
   READINGS:
     2019-07-15 17:06:21   action          11
     2019-02-03 14:36:26   alert           
     2019-01-27 21:59:39   batteryAuthorizationStatus genuine
     2018-12-29 21:04:20   batteryManufacturingDate 2090-10-12
     2019-07-15 17:49:00   batteryPercent  27
     2019-07-15 17:49:03   batteryTimeToEmpty 34
     2019-07-15 17:02:25   batteryTimeToFullCharge 0
     2019-07-15 08:44:37   batteryTotalCharges 133
     2018-12-29 21:04:20   batteryVendor   Panasonic
     2019-07-14 18:52:41   cleaningCategory map
     2019-06-24 10:45:29   cleaningMode    turbo
     2018-12-18 18:35:24   cleaningModifier normal
     2018-12-18 18:35:24   cleaningNavigationMode normal
     2019-02-24 14:04:26   cleaningSpotHeight 0
     2019-02-24 14:04:26   cleaningSpotWidth 0
     2019-07-15 17:02:20   dockHasBeenSeen 1
     2019-07-15 16:42:20   error           
     2019-06-23 20:22:46   firmware        4.4.1-113
     2019-06-21 00:01:45   firmwareLatest  4.4.1-113
     2019-07-14 19:33:47   floorplan_0_boundaries {"type":"polyline","vertices":[[0.7542,0.5337],[0.7556,0.5818]],"name":"","color":"#000000","enabled":true},
{"type":"polyline","vertices":[[0.6844,0.477],[0.6499,0.3801]],"name":"","color":"#000000","enabled":true}
     2019-07-14 19:33:45   floorplan_0_id  2019-07-14T15:31:44Z
     2019-07-14 19:33:45   floorplan_0_name eg
     2019-06-24 11:23:36   floorplan_0_zones
     2019-07-15 17:02:20   isCharging      0
     2019-07-15 17:02:20   isDocked        0
     2018-12-18 18:35:24   isScheduleEnabled 0
     2018-12-18 18:36:00   macAddr         74e182986d21
     2019-07-06 10:49:10   map_area        0.536
     2019-07-14 19:33:45   map_area_per_time 0.9
     2019-07-15 16:42:26   map_base_count  1
     2019-07-14 19:33:45   map_category    4
     2019-07-15 16:42:26   map_cleaned_area 38.7152
     2019-07-15 16:42:26   map_cleaned_with_persistent_map_id 2019-07-14T15:31:44Z
     2019-07-15 16:42:26   map_date        2019-07-15 09:27:11
     2019-07-15 16:42:26   map_delocalized 1
     2019-07-14 19:33:45   map_discharge_per_time 0.6
     2019-07-15 16:42:26   map_duration    45.3
     2019-07-15 16:42:26   map_end_orientation_relative_degrees 307
     2019-07-15 16:42:26   map_error       UI_ERROR_NAVIGATION_PathProblems_ReturningHome
     2019-07-15 16:42:26   map_expected_area 134
     2019-07-15 16:42:26   map_expected_time 156
     2019-07-15 16:42:26   map_id          2019-07-15T06:41:53Z
     2019-07-15 16:42:26   map_is_docked   0
     2019-07-09 00:02:12   map_launched_from app
     2019-07-09 00:02:12   map_mode        2
     2019-07-09 00:02:12   map_modifier    1
     2019-07-09 00:02:12   map_navigation_mode 1
     2019-07-15 16:42:26   map_run_charge_at_end 67
     2019-07-15 16:42:26   map_run_charge_at_start 96
     2019-07-15 16:42:26   map_run_discharge 29
     2019-07-15 16:42:26   map_status      incomplete
     2019-07-09 00:02:12   map_suspended_cleaning_charging_count 0
     2019-07-14 19:33:45   map_time_in_error 0
     2019-07-14 12:18:55   map_time_in_pause 0
     2019-07-09 00:02:12   map_time_in_suspended_cleaning 0
     2019-07-09 00:02:12   map_valid_as_persistent_map 0
     2019-07-09 00:02:12   map_version     1
     2018-12-18 18:35:23   model           BotVacD7Connected
     2018-12-18 18:36:00   name            Nippi
     2018-12-18 18:35:23   nucleoUrl       https://nucleo.neatocloud.com:4443
     2019-07-08 04:11:36   pref_brushChangeReminderInterval 6
     2019-07-08 04:11:36   pref_dirtbinAlertReminderInterval 90
     2019-07-08 04:11:36   pref_filterChangeReminderInterval 1
     2019-07-08 04:11:36   pref_robotSounds 1
     2019-07-09 17:34:29   result          ok
     2018-12-18 18:36:00   robot           1
     2018-12-18 18:35:25   scheduleEnabled 0
     2018-12-18 18:36:00   serial          OPS18718-74E182986D21
     2019-07-15 17:06:21   state           Map cleaning
     2019-07-15 16:57:23   stateId         2
   helper:
     MAPS:
       HASH(0x942f230)
       HASH(0x8276ca8)
       HASH(0x8215b48)
       HASH(0x84b0ca0)
       HASH(0x8254bf0)
       HASH(0x87f4988)
       HASH(0x87818d0)
       HASH(0x964cf58)
       HASH(0x83dfa98)
       HASH(0x82083f8)
       HASH(0x8388970)
       HASH(0x9338e80)
       HASH(0x948bfb8)
       HASH(0x82c7370)
       HASH(0x8e0f810)
       HASH(0x82c74a8)
       HASH(0x95c5388)
       HASH(0x95c5148)
       HASH(0xa4efa28)
       HASH(0x87862f8)
Attributes:
   actionInterval 30
   comment    nippi
   room       neato
   verbose    5
   webCmd     startCleaning:stop:sendToBase


FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

abc2006

Leider gibts für heute nur eine Karte, und zwar die in der der Robo feststeckt.
Jetzt muss er erstmal laden, danach dann ein neuer versuch ;)
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX